make gcc_plugin compilable for gcc 3.6.0
MODIFY
instrumentation/afl-gcc-cmplog-pass.so.cc
instrumentation/afl-gcc-cmplog-pass.so.cc
@@ -244,7 +244,7 @@ struct afl_cmplog_pass : afl_base_pass {
tree t = build_nonstandard_integer_type(sz, 1);
tree s = make_ssa_name(t);
- gimple *g = gimple_build_assign(s, VIEW_CONVERT_EXPR,
+ gimple g = gimple_build_assign(s, VIEW_CONVERT_EXPR,
build1(VIEW_CONVERT_EXPR, t, lhs));
lhs = s;
gsi_insert_before(&gsi, g, GSI_SAME_STMT);
@@ -264,7 +264,7 @@ struct afl_cmplog_pass : afl_base_pass {
if (!is_gimple_val(lhs)) {
tree s = make_ssa_name(t);
- gimple *g = gimple_build_assign(s, lhs);
+ gimple g = gimple_build_assign(s, lhs);
lhs = s;
gsi_insert_before(&gsi, g, GSI_SAME_STMT);
@@ -274,7 +274,7 @@ struct afl_cmplog_pass : afl_base_pass {
if (!is_gimple_val(rhs)) {
tree s = make_ssa_name(t);
- gimple *g = gimple_build_assign(s, rhs);
+ gimple g = gimple_build_assign(s, rhs);
rhs = s;
gsi_insert_before(&gsi, g, GSI_SAME_STMT);
@@ -282,7 +282,7 @@ struct afl_cmplog_pass : afl_base_pass {
/* Insert the call. */
tree att = build_int_cst(t8u, attr);
- gimple *call;
+ gimple call;
if (pass_n)
call = gimple_build_call(fn, 4, lhs, rhs, att,
build_int_cst(t8u, sz / 8 - 1));
@@ -305,7 +305,7 @@ struct afl_cmplog_pass : afl_base_pass {
gimple_stmt_iterator gsi = gsi_last_bb(bb);
if (gsi_end_p(gsi)) continue;
- gimple *stmt = gsi_stmt(gsi);
+ gimple stmt = gsi_stmt(gsi);
if (gimple_code(stmt) == GIMPLE_COND) {

MODIFY
instrumentation/afl-gcc-cmptrs-pass.so.cc
instrumentation/afl-gcc-cmptrs-pass.so.cc
@@ -241,7 +241,7 @@ struct afl_cmptrs_pass : afl_base_pass {
for (gimple_stmt_iterator gsi = gsi_after_labels(bb); !gsi_end_p(gsi);
gsi_next(&gsi)) {
- gimple *stmt = gsi_stmt(gsi);
+ gimple stmt = gsi_stmt(gsi);
/* We're only interested in GIMPLE_CALLs. */
if (gimple_code(stmt) != GIMPLE_CALL) continue;
@@ -292,7 +292,7 @@ struct afl_cmptrs_pass : afl_base_pass {
if (!is_gimple_val(c)) {
tree s = make_ssa_name(tp8u);
- gimple *g = gimple_build_assign(s, c);
+ gimple g = gimple_build_assign(s, c);
c = s;
gsi_insert_before(&gsi, g, GSI_SAME_STMT);
@@ -302,7 +302,7 @@ struct afl_cmptrs_pass : afl_base_pass {
}
- gimple *call = gimple_build_call(fn, 2, arg[0], arg[1]);
+ gimple call = gimple_build_call(fn, 2, arg[0], arg[1]);
gsi_insert_before(&gsi, call, GSI_SAME_STMT);
}

MODIFY
instrumentation/afl-gcc-common.h
instrumentation/afl-gcc-common.h
@@ -498,3 +498,10 @@ struct afl_base_pass : gimple_opt_pass {
} // namespace
+// compatibility for older gcc versions
+#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= \
+ 60200 /* >= version 6.2.0 */
+#define gimple gimple *
+#else
+#define gimple gimple
+#endif

MODIFY
instrumentation/afl-gcc-pass.so.cc
instrumentation/afl-gcc-pass.so.cc
*/
#include "afl-gcc-common.h"
+#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= \
+ 60200 /* >= version 6.2.0 */
#include "memmodel.h"
+#endif
/* This plugin, being under the same license as GCC, satisfies the
"GPL-compatible Software" definition in the GCC RUNTIME LIBRARY

make gcc_plugin compilable for gcc 3.6.0