aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhexcoder- <heiko@hexco.de>2022-09-23 23:19:10 +0200
committerhexcoder- <heiko@hexco.de>2022-09-23 23:19:10 +0200
commited54532f29e90bd3e9dd7322d9ed1de8877d9498 (patch)
treeb12b00ce6768529ac7c36c9a634ba69f63c7d78b
parent6ed40d5a08c7b4a82d9287b9412b33640c6c9bf6 (diff)
downloadafl++-ed54532f29e90bd3e9dd7322d9ed1de8877d9498.tar.gz
make gcc_plugin compilable for gcc 3.6.0
-rw-r--r--instrumentation/afl-gcc-cmplog-pass.so.cc16
-rw-r--r--instrumentation/afl-gcc-cmptrs-pass.so.cc8
-rw-r--r--instrumentation/afl-gcc-common.h7
-rw-r--r--instrumentation/afl-gcc-pass.so.cc3
4 files changed, 22 insertions, 12 deletions
diff --git a/instrumentation/afl-gcc-cmplog-pass.so.cc b/instrumentation/afl-gcc-cmplog-pass.so.cc
index 5e5792c3..e42e8bc0 100644
--- a/instrumentation/afl-gcc-cmplog-pass.so.cc
+++ b/instrumentation/afl-gcc-cmplog-pass.so.cc
@@ -243,8 +243,8 @@ 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,
+ tree s = make_ssa_name(t);
+ 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);
@@ -263,8 +263,8 @@ struct afl_cmplog_pass : afl_base_pass {
lhs = fold_convert_loc(UNKNOWN_LOCATION, t, lhs);
if (!is_gimple_val(lhs)) {
- tree s = make_ssa_name(t);
- gimple *g = gimple_build_assign(s, lhs);
+ tree s = make_ssa_name(t);
+ gimple g = gimple_build_assign(s, lhs);
lhs = s;
gsi_insert_before(&gsi, g, GSI_SAME_STMT);
@@ -273,8 +273,8 @@ struct afl_cmplog_pass : afl_base_pass {
rhs = fold_convert_loc(UNKNOWN_LOCATION, t, rhs);
if (!is_gimple_val(rhs)) {
- tree s = make_ssa_name(t);
- gimple *g = gimple_build_assign(s, rhs);
+ tree s = make_ssa_name(t);
+ 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) {
diff --git a/instrumentation/afl-gcc-cmptrs-pass.so.cc b/instrumentation/afl-gcc-cmptrs-pass.so.cc
index e9e2fe0d..0ddbac15 100644
--- a/instrumentation/afl-gcc-cmptrs-pass.so.cc
+++ b/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;
@@ -291,8 +291,8 @@ struct afl_cmptrs_pass : afl_base_pass {
tree c = fold_convert_loc(UNKNOWN_LOCATION, tp8u, arg[i]);
if (!is_gimple_val(c)) {
- tree s = make_ssa_name(tp8u);
- gimple *g = gimple_build_assign(s, c);
+ tree s = make_ssa_name(tp8u);
+ 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);
}
diff --git a/instrumentation/afl-gcc-common.h b/instrumentation/afl-gcc-common.h
index 2b71bd22..766c0eff 100644
--- a/instrumentation/afl-gcc-common.h
+++ b/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
diff --git a/instrumentation/afl-gcc-pass.so.cc b/instrumentation/afl-gcc-pass.so.cc
index 052b3159..2b251075 100644
--- a/instrumentation/afl-gcc-pass.so.cc
+++ b/instrumentation/afl-gcc-pass.so.cc
@@ -125,7 +125,10 @@
*/
#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