gcc-plugins: remove code for GCC versions older than 4.9
authorMasahiro Yamada <masahiroy@kernel.org>
Wed, 2 Dec 2020 13:49:29 +0000 (22:49 +0900)
committerKees Cook <keescook@chromium.org>
Fri, 4 Dec 2020 22:09:41 +0000 (14:09 -0800)
Documentation/process/changes.rst says the minimal GCC version is 4.9.
Hence, BUILDING_GCC_VERSION is greater than or equal to 4009.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20201202134929.99883-1-masahiroy@kernel.org
scripts/gcc-plugins/gcc-common.h
scripts/gcc-plugins/gcc-generate-gimple-pass.h
scripts/gcc-plugins/gcc-generate-ipa-pass.h
scripts/gcc-plugins/gcc-generate-rtl-pass.h
scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h
scripts/gcc-plugins/latent_entropy_plugin.c
scripts/gcc-plugins/randomize_layout_plugin.c
scripts/gcc-plugins/sancov_plugin.c
scripts/gcc-plugins/stackleak_plugin.c
scripts/gcc-plugins/structleak_plugin.c

index 9ad76b7..0c08761 100644 (file)
 #include "cfgloop.h"
 #include "cgraph.h"
 #include "opts.h"
-
-#if BUILDING_GCC_VERSION == 4005
-#include <sys/mman.h>
-#endif
-
-#if BUILDING_GCC_VERSION >= 4007
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
-#endif
-
-#if BUILDING_GCC_VERSION >= 4006
-/*
- * The c-family headers were moved into a subdirectory in GCC version
- * 4.7, but most plugin-building users of GCC 4.6 are using the Debian
- * or Ubuntu package, which has an out-of-tree patch to move this to the
- * same location as found in 4.7 and later:
- * https://sources.debian.net/src/gcc-4.6/4.6.3-14/debian/patches/pr45078.diff/
- */
 #include "c-family/c-common.h"
-#else
-#include "c-common.h"
-#endif
-
-#if BUILDING_GCC_VERSION <= 4008
-#include "tree-flow.h"
-#else
 #include "tree-cfgcleanup.h"
 #include "tree-ssa-operands.h"
 #include "tree-into-ssa.h"
-#endif
-
-#if BUILDING_GCC_VERSION >= 4008
 #include "is-a.h"
-#endif
-
 #include "diagnostic.h"
 #include "tree-dump.h"
 #include "tree-pass.h"
-#if BUILDING_GCC_VERSION >= 4009
 #include "pass_manager.h"
-#endif
 #include "predict.h"
 #include "ipa-utils.h"
 
 #include "stringpool.h"
 #endif
 
-#if BUILDING_GCC_VERSION >= 4009
 #include "attribs.h"
 #include "varasm.h"
 #include "stor-layout.h"
 #include "tree-eh.h"
 #include "stmt.h"
 #include "gimplify.h"
-#endif
-
 #include "gimple.h"
-
-#if BUILDING_GCC_VERSION >= 4009
 #include "tree-ssa-operands.h"
 #include "tree-phinodes.h"
 #include "tree-cfg.h"
 #include "gimple-iterator.h"
 #include "gimple-ssa.h"
 #include "ssa-iterators.h"
-#endif
 
 #if BUILDING_GCC_VERSION >= 5000
 #include "builtins.h"
 void debug_dominance_info(enum cdi_direction dir);
 void debug_dominance_tree(enum cdi_direction dir, basic_block root);
 
-#if BUILDING_GCC_VERSION == 4006
-void debug_gimple_stmt(gimple);
-void debug_gimple_seq(gimple_seq);
-void print_gimple_seq(FILE *, gimple_seq, int, int);
-void print_gimple_stmt(FILE *, gimple, int, int);
-void print_gimple_expr(FILE *, gimple, int, int);
-void dump_gimple_stmt(pretty_printer *, gimple, int, int);
-#endif
-
 #ifndef __unused
 #define __unused __attribute__((__unused__))
 #endif
@@ -190,372 +145,12 @@ struct register_pass_info NAME##_pass_info = {   \
        .pos_op = POS,                          \
 }
 
-#if BUILDING_GCC_VERSION == 4005
-#define FOR_EACH_LOCAL_DECL(FUN, I, D)                 \
-       for (tree vars = (FUN)->local_decls, (I) = 0;   \
-               vars && ((D) = TREE_VALUE(vars));       \
-               vars = TREE_CHAIN(vars), (I)++)
-#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
-#define FOR_EACH_VEC_ELT(T, V, I, P) \
-       for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
-#define TODO_rebuild_cgraph_edges 0
-#define SCOPE_FILE_SCOPE_P(EXP) (!(EXP))
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-typedef struct varpool_node *varpool_node_ptr;
-
-static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
-{
-       tree fndecl;
-
-       if (!is_gimple_call(stmt))
-               return false;
-       fndecl = gimple_call_fndecl(stmt);
-       if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
-               return false;
-       return DECL_FUNCTION_CODE(fndecl) == code;
-}
-
-static inline bool is_simple_builtin(tree decl)
-{
-       if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL)
-               return false;
-
-       switch (DECL_FUNCTION_CODE(decl)) {
-       /* Builtins that expand to constants. */
-       case BUILT_IN_CONSTANT_P:
-       case BUILT_IN_EXPECT:
-       case BUILT_IN_OBJECT_SIZE:
-       case BUILT_IN_UNREACHABLE:
-       /* Simple register moves or loads from stack. */
-       case BUILT_IN_RETURN_ADDRESS:
-       case BUILT_IN_EXTRACT_RETURN_ADDR:
-       case BUILT_IN_FROB_RETURN_ADDR:
-       case BUILT_IN_RETURN:
-       case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
-       case BUILT_IN_FRAME_ADDRESS:
-       case BUILT_IN_VA_END:
-       case BUILT_IN_STACK_SAVE:
-       case BUILT_IN_STACK_RESTORE:
-       /* Exception state returns or moves registers around. */
-       case BUILT_IN_EH_FILTER:
-       case BUILT_IN_EH_POINTER:
-       case BUILT_IN_EH_COPY_VALUES:
-       return true;
-
-       default:
-       return false;
-       }
-}
-
-static inline void add_local_decl(struct function *fun, tree d)
-{
-       gcc_assert(TREE_CODE(d) == VAR_DECL);
-       fun->local_decls = tree_cons(NULL_TREE, d, fun->local_decls);
-}
-#endif
-
-#if BUILDING_GCC_VERSION <= 4006
-#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
-#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP)
-#define EDGE_PRESERVE 0ULL
-#define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x"
-#define flag_fat_lto_objects true
-
-#define get_random_seed(noinit) ({                                             \
-       unsigned HOST_WIDE_INT seed;                                            \
-       sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed);    \
-       seed * seed; })
-
-#define int_const_binop(code, arg1, arg2)      \
-       int_const_binop((code), (arg1), (arg2), 0)
-
-static inline bool gimple_clobber_p(gimple s __unused)
-{
-       return false;
-}
-
-static inline bool gimple_asm_clobbers_memory_p(const_gimple stmt)
-{
-       unsigned i;
-
-       for (i = 0; i < gimple_asm_nclobbers(stmt); i++) {
-               tree op = gimple_asm_clobber_op(stmt, i);
-
-               if (!strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "memory"))
-                       return true;
-       }
-
-       return false;
-}
-
-static inline tree builtin_decl_implicit(enum built_in_function fncode)
-{
-       return implicit_built_in_decls[fncode];
-}
-
-static inline int ipa_reverse_postorder(struct cgraph_node **order)
-{
-       return cgraph_postorder(order);
-}
-
-static inline struct cgraph_node *cgraph_create_node(tree decl)
-{
-       return cgraph_node(decl);
-}
-
-static inline struct cgraph_node *cgraph_get_create_node(tree decl)
-{
-       struct cgraph_node *node = cgraph_get_node(decl);
-
-       return node ? node : cgraph_node(decl);
-}
-
-static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
-{
-       return node->analyzed && !node->thunk.thunk_p && !node->alias;
-}
-
-static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void)
-{
-       struct cgraph_node *node;
-
-       for (node = cgraph_nodes; node; node = node->next)
-               if (cgraph_function_with_gimple_body_p(node))
-                       return node;
-       return NULL;
-}
-
-static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
-{
-       for (node = node->next; node; node = node->next)
-               if (cgraph_function_with_gimple_body_p(node))
-                       return node;
-       return NULL;
-}
-
-static inline bool cgraph_for_node_and_aliases(cgraph_node_ptr node, bool (*callback)(cgraph_node_ptr, void *), void *data, bool include_overwritable)
-{
-       cgraph_node_ptr alias;
-
-       if (callback(node, data))
-               return true;
-
-       for (alias = node->same_body; alias; alias = alias->next) {
-               if (include_overwritable || cgraph_function_body_availability(alias) > AVAIL_OVERWRITABLE)
-                       if (cgraph_for_node_and_aliases(alias, callback, data, include_overwritable))
-                               return true;
-       }
-
-       return false;
-}
-
-#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
-       for ((node) = cgraph_first_function_with_gimple_body(); (node); \
-               (node) = cgraph_next_function_with_gimple_body(node))
-
-static inline void varpool_add_new_variable(tree decl)
-{
-       varpool_finalize_decl(decl);
-}
-#endif
-
-#if BUILDING_GCC_VERSION <= 4007
-#define FOR_EACH_FUNCTION(node)        \
-       for (node = cgraph_nodes; node; node = node->next)
-#define FOR_EACH_VARIABLE(node)        \
-       for (node = varpool_nodes; node; node = node->next)
-#define PROP_loops 0
-#define NODE_SYMBOL(node) (node)
-#define NODE_DECL(node) (node)->decl
-#define INSN_LOCATION(INSN) RTL_LOCATION(INSN)
-#define vNULL NULL
-
-static inline int bb_loop_depth(const_basic_block bb)
-{
-       return bb->loop_father ? loop_depth(bb->loop_father) : 0;
-}
-
-static inline bool gimple_store_p(gimple gs)
-{
-       tree lhs = gimple_get_lhs(gs);
-
-       return lhs && !is_gimple_reg(lhs);
-}
-
-static inline void gimple_init_singleton(gimple g __unused)
-{
-}
-#endif
-
-#if BUILDING_GCC_VERSION == 4007 || BUILDING_GCC_VERSION == 4008
-static inline struct cgraph_node *cgraph_alias_target(struct cgraph_node *n)
-{
-       return cgraph_alias_aliased_node(n);
-}
-#endif
-
-#if BUILDING_GCC_VERSION <= 4008
-#define ENTRY_BLOCK_PTR_FOR_FN(FN)     ENTRY_BLOCK_PTR_FOR_FUNCTION(FN)
-#define EXIT_BLOCK_PTR_FOR_FN(FN)      EXIT_BLOCK_PTR_FOR_FUNCTION(FN)
-#define basic_block_info_for_fn(FN)    ((FN)->cfg->x_basic_block_info)
-#define n_basic_blocks_for_fn(FN)      ((FN)->cfg->x_n_basic_blocks)
-#define n_edges_for_fn(FN)             ((FN)->cfg->x_n_edges)
-#define last_basic_block_for_fn(FN)    ((FN)->cfg->x_last_basic_block)
-#define label_to_block_map_for_fn(FN)  ((FN)->cfg->x_label_to_block_map)
-#define profile_status_for_fn(FN)      ((FN)->cfg->x_profile_status)
-#define BASIC_BLOCK_FOR_FN(FN, N)      BASIC_BLOCK_FOR_FUNCTION((FN), (N))
-#define NODE_IMPLICIT_ALIAS(node)      (node)->same_body_alias
-#define VAR_P(NODE)                    (TREE_CODE(NODE) == VAR_DECL)
-
-static inline bool tree_fits_shwi_p(const_tree t)
-{
-       if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
-               return false;
-
-       if (TREE_INT_CST_HIGH(t) == 0 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) >= 0)
-               return true;
-
-       if (TREE_INT_CST_HIGH(t) == -1 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) < 0 && !TYPE_UNSIGNED(TREE_TYPE(t)))
-               return true;
-
-       return false;
-}
-
-static inline bool tree_fits_uhwi_p(const_tree t)
-{
-       if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
-               return false;
-
-       return TREE_INT_CST_HIGH(t) == 0;
-}
-
-static inline HOST_WIDE_INT tree_to_shwi(const_tree t)
-{
-       gcc_assert(tree_fits_shwi_p(t));
-       return TREE_INT_CST_LOW(t);
-}
-
-static inline unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
-{
-       gcc_assert(tree_fits_uhwi_p(t));
-       return TREE_INT_CST_LOW(t);
-}
-
-static inline const char *get_tree_code_name(enum tree_code code)
-{
-       gcc_assert(code < MAX_TREE_CODES);
-       return tree_code_name[code];
-}
-
-#define ipa_remove_stmt_references(cnode, stmt)
-
-typedef union gimple_statement_d gasm;
-typedef union gimple_statement_d gassign;
-typedef union gimple_statement_d gcall;
-typedef union gimple_statement_d gcond;
-typedef union gimple_statement_d gdebug;
-typedef union gimple_statement_d ggoto;
-typedef union gimple_statement_d gphi;
-typedef union gimple_statement_d greturn;
-
-static inline gasm *as_a_gasm(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const gasm *as_a_const_gasm(const_gimple stmt)
-{
-       return stmt;
-}
-
-static inline gassign *as_a_gassign(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const gassign *as_a_const_gassign(const_gimple stmt)
-{
-       return stmt;
-}
-
-static inline gcall *as_a_gcall(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const gcall *as_a_const_gcall(const_gimple stmt)
-{
-       return stmt;
-}
-
-static inline gcond *as_a_gcond(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const gcond *as_a_const_gcond(const_gimple stmt)
-{
-       return stmt;
-}
-
-static inline gdebug *as_a_gdebug(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
-{
-       return stmt;
-}
-
-static inline ggoto *as_a_ggoto(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const ggoto *as_a_const_ggoto(const_gimple stmt)
-{
-       return stmt;
-}
-
-static inline gphi *as_a_gphi(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const gphi *as_a_const_gphi(const_gimple stmt)
-{
-       return stmt;
-}
-
-static inline greturn *as_a_greturn(gimple stmt)
-{
-       return stmt;
-}
-
-static inline const greturn *as_a_const_greturn(const_gimple stmt)
-{
-       return stmt;
-}
-#endif
-
-#if BUILDING_GCC_VERSION == 4008
-#define NODE_SYMBOL(node) (&(node)->symbol)
-#define NODE_DECL(node) (node)->symbol.decl
-#endif
-
-#if BUILDING_GCC_VERSION >= 4008
 #define add_referenced_var(var)
 #define mark_sym_for_renaming(var)
 #define varpool_mark_needed_node(node)
 #define create_var_ann(var)
 #define TODO_dump_func 0
 #define TODO_dump_cgraph 0
-#endif
 
 #if BUILDING_GCC_VERSION <= 4009
 #define TODO_verify_il 0
@@ -676,7 +271,6 @@ static inline const greturn *as_a_const_greturn(const_gimple stmt)
 }
 #endif
 
-#if BUILDING_GCC_VERSION >= 4009
 #define TODO_ggc_collect 0
 #define NODE_SYMBOL(node) (node)
 #define NODE_DECL(node) (node)->decl
@@ -687,7 +281,6 @@ static inline opt_pass *get_pass_for_id(int id)
 {
        return g->get_passes()->get_pass_for_id(id);
 }
-#endif
 
 #if BUILDING_GCC_VERSION >= 5000 && BUILDING_GCC_VERSION < 6000
 /* gimple related */
index f20797e..5178082 100644 (file)
 #define TODO_FLAGS_FINISH 0
 #endif
 
-#if BUILDING_GCC_VERSION >= 4009
 namespace {
 static const pass_data _PASS_NAME_PASS_DATA = {
-#else
-static struct gimple_opt_pass _PASS_NAME_PASS = {
-       .pass = {
-#endif
                .type                   = GIMPLE_PASS,
                .name                   = _PASS_NAME_NAME,
-#if BUILDING_GCC_VERSION >= 4008
                .optinfo_flags          = OPTGROUP_NONE,
-#endif
 #if BUILDING_GCC_VERSION >= 5000
 #elif BUILDING_GCC_VERSION == 4009
                .has_gate               = _HAS_GATE,
@@ -102,12 +95,8 @@ static struct gimple_opt_pass _PASS_NAME_PASS = {
                .properties_destroyed   = PROPERTIES_DESTROYED,
                .todo_flags_start       = TODO_FLAGS_START,
                .todo_flags_finish      = TODO_FLAGS_FINISH,
-#if BUILDING_GCC_VERSION < 4009
-       }
-#endif
 };
 
-#if BUILDING_GCC_VERSION >= 4009
 class _PASS_NAME_PASS : public gimple_opt_pass {
 public:
        _PASS_NAME_PASS() : gimple_opt_pass(_PASS_NAME_PASS_DATA, g) {}
@@ -128,7 +117,6 @@ public:
 #else
        virtual unsigned int execute(void) { return _EXECUTE(); }
 #endif
-#endif
 };
 }
 
index 92bb4f3..c34ffec 100644 (file)
 #define FUNCTION_TRANSFORM_TODO_FLAGS_START 0
 #endif
 
-#if BUILDING_GCC_VERSION >= 4009
 namespace {
 static const pass_data _PASS_NAME_PASS_DATA = {
-#else
-static struct ipa_opt_pass_d _PASS_NAME_PASS = {
-       .pass = {
-#endif
                .type                   = IPA_PASS,
                .name                   = _PASS_NAME_NAME,
-#if BUILDING_GCC_VERSION >= 4008
                .optinfo_flags          = OPTGROUP_NONE,
-#endif
 #if BUILDING_GCC_VERSION >= 5000
 #elif BUILDING_GCC_VERSION == 4009
                .has_gate               = _HAS_GATE,
@@ -170,23 +163,8 @@ static struct ipa_opt_pass_d _PASS_NAME_PASS = {
                .properties_destroyed   = PROPERTIES_DESTROYED,
                .todo_flags_start       = TODO_FLAGS_START,
                .todo_flags_finish      = TODO_FLAGS_FINISH,
-#if BUILDING_GCC_VERSION < 4009
-       },
-       .generate_summary               = _GENERATE_SUMMARY,
-       .write_summary                  = _WRITE_SUMMARY,
-       .read_summary                   = _READ_SUMMARY,
-#if BUILDING_GCC_VERSION >= 4006
-       .write_optimization_summary     = _WRITE_OPTIMIZATION_SUMMARY,
-       .read_optimization_summary      = _READ_OPTIMIZATION_SUMMARY,
-#endif
-       .stmt_fixup                     = _STMT_FIXUP,
-       .function_transform_todo_flags_start    = FUNCTION_TRANSFORM_TODO_FLAGS_START,
-       .function_transform             = _FUNCTION_TRANSFORM,
-       .variable_transform             = _VARIABLE_TRANSFORM,
-#endif
 };
 
-#if BUILDING_GCC_VERSION >= 4009
 class _PASS_NAME_PASS : public ipa_opt_pass_d {
 public:
        _PASS_NAME_PASS() : ipa_opt_pass_d(_PASS_NAME_PASS_DATA,
@@ -206,7 +184,6 @@ public:
        virtual bool gate(function *) { return _GATE(); }
 #else
        virtual bool gate(void) { return _GATE(); }
-#endif
 #endif
 
        virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
index d69cd80..d14614f 100644 (file)
 #define TODO_FLAGS_FINISH 0
 #endif
 
-#if BUILDING_GCC_VERSION >= 4009
 namespace {
 static const pass_data _PASS_NAME_PASS_DATA = {
-#else
-static struct rtl_opt_pass _PASS_NAME_PASS = {
-       .pass = {
-#endif
                .type                   = RTL_PASS,
                .name                   = _PASS_NAME_NAME,
-#if BUILDING_GCC_VERSION >= 4008
                .optinfo_flags          = OPTGROUP_NONE,
-#endif
 #if BUILDING_GCC_VERSION >= 5000
 #elif BUILDING_GCC_VERSION == 4009
                .has_gate               = _HAS_GATE,
@@ -102,12 +95,8 @@ static struct rtl_opt_pass _PASS_NAME_PASS = {
                .properties_destroyed   = PROPERTIES_DESTROYED,
                .todo_flags_start       = TODO_FLAGS_START,
                .todo_flags_finish      = TODO_FLAGS_FINISH,
-#if BUILDING_GCC_VERSION < 4009
-       }
-#endif
 };
 
-#if BUILDING_GCC_VERSION >= 4009
 class _PASS_NAME_PASS : public rtl_opt_pass {
 public:
        _PASS_NAME_PASS() : rtl_opt_pass(_PASS_NAME_PASS_DATA, g) {}
@@ -136,12 +125,6 @@ opt_pass *_MAKE_PASS_NAME_PASS(void)
 {
        return new _PASS_NAME_PASS();
 }
-#else
-struct opt_pass *_MAKE_PASS_NAME_PASS(void)
-{
-       return &_PASS_NAME_PASS.pass;
-}
-#endif
 
 /* clean up user provided defines */
 #undef PASS_NAME
index 06800bc..ef6f4c2 100644 (file)
 #define TODO_FLAGS_FINISH 0
 #endif
 
-#if BUILDING_GCC_VERSION >= 4009
 namespace {
 static const pass_data _PASS_NAME_PASS_DATA = {
-#else
-static struct simple_ipa_opt_pass _PASS_NAME_PASS = {
-       .pass = {
-#endif
                .type                   = SIMPLE_IPA_PASS,
                .name                   = _PASS_NAME_NAME,
-#if BUILDING_GCC_VERSION >= 4008
                .optinfo_flags          = OPTGROUP_NONE,
-#endif
 #if BUILDING_GCC_VERSION >= 5000
 #elif BUILDING_GCC_VERSION == 4009
                .has_gate               = _HAS_GATE,
@@ -102,12 +95,8 @@ static struct simple_ipa_opt_pass _PASS_NAME_PASS = {
                .properties_destroyed   = PROPERTIES_DESTROYED,
                .todo_flags_start       = TODO_FLAGS_START,
                .todo_flags_finish      = TODO_FLAGS_FINISH,
-#if BUILDING_GCC_VERSION < 4009
-       }
-#endif
 };
 
-#if BUILDING_GCC_VERSION >= 4009
 class _PASS_NAME_PASS : public simple_ipa_opt_pass {
 public:
        _PASS_NAME_PASS() : simple_ipa_opt_pass(_PASS_NAME_PASS_DATA, g) {}
@@ -136,12 +125,6 @@ opt_pass *_MAKE_PASS_NAME_PASS(void)
 {
        return new _PASS_NAME_PASS();
 }
-#else
-struct opt_pass *_MAKE_PASS_NAME_PASS(void)
-{
-       return &_PASS_NAME_PASS.pass;
-}
-#endif
 
 /* clean up user provided defines */
 #undef PASS_NAME
index cbe1d6c..9dced66 100644 (file)
@@ -125,11 +125,7 @@ static tree handle_latent_entropy_attribute(tree *node, tree name,
                                                bool *no_add_attrs)
 {
        tree type;
-#if BUILDING_GCC_VERSION <= 4007
-       VEC(constructor_elt, gc) *vals;
-#else
        vec<constructor_elt, va_gc> *vals;
-#endif
 
        switch (TREE_CODE(*node)) {
        default:
@@ -181,11 +177,7 @@ static tree handle_latent_entropy_attribute(tree *node, tree name,
                        if (fld)
                                break;
 
-#if BUILDING_GCC_VERSION <= 4007
-                       vals = VEC_alloc(constructor_elt, gc, nelt);
-#else
                        vec_alloc(vals, nelt);
-#endif
 
                        for (fld = lst; fld; fld = TREE_CHAIN(fld)) {
                                tree random_const, fld_t = TREE_TYPE(fld);
@@ -225,11 +217,7 @@ static tree handle_latent_entropy_attribute(tree *node, tree name,
                        elt_size_int = TREE_INT_CST_LOW(elt_size);
                        nelt = array_size_int / elt_size_int;
 
-#if BUILDING_GCC_VERSION <= 4007
-                       vals = VEC_alloc(constructor_elt, gc, nelt);
-#else
                        vec_alloc(vals, nelt);
-#endif
 
                        for (i = 0; i < nelt; i++) {
                                tree cst = size_int(i);
index bd29e4e..334741a 100644 (file)
@@ -590,16 +590,12 @@ static void register_attributes(void *event_data, void *data)
        randomize_layout_attr.name              = "randomize_layout";
        randomize_layout_attr.type_required     = true;
        randomize_layout_attr.handler           = handle_randomize_layout_attr;
-#if BUILDING_GCC_VERSION >= 4007
        randomize_layout_attr.affects_type_identity = true;
-#endif
 
        no_randomize_layout_attr.name           = "no_randomize_layout";
        no_randomize_layout_attr.type_required  = true;
        no_randomize_layout_attr.handler        = handle_randomize_layout_attr;
-#if BUILDING_GCC_VERSION >= 4007
        no_randomize_layout_attr.affects_type_identity = true;
-#endif
 
        randomize_considered_attr.name          = "randomize_considered";
        randomize_considered_attr.type_required = true;
index caff4a6..23bd023 100644 (file)
@@ -80,10 +80,8 @@ static void sancov_start_unit(void __unused *gcc_data, void __unused *user_data)
        nothrow_attr = tree_cons(get_identifier("nothrow"), NULL, NULL);
        decl_attributes(&sancov_fndecl, nothrow_attr, 0);
        gcc_assert(TREE_NOTHROW(sancov_fndecl));
-#if BUILDING_GCC_VERSION > 4005
        leaf_attr = tree_cons(get_identifier("leaf"), NULL, NULL);
        decl_attributes(&sancov_fndecl, leaf_attr, 0);
-#endif
 }
 
 __visible int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
@@ -106,11 +104,7 @@ __visible int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gc
        };
 
        /* BBs can be split afterwards?? */
-#if BUILDING_GCC_VERSION >= 4009
        PASS_INFO(sancov, "asan", 0, PASS_POS_INSERT_BEFORE);
-#else
-       PASS_INFO(sancov, "nrv", 1, PASS_POS_INSERT_BEFORE);
-#endif
 
        if (!plugin_default_version_check(version, &gcc_version)) {
                error(G_("incompatible gcc/plugin versions"));
index 48e141e..e9db7dc 100644 (file)
@@ -80,10 +80,8 @@ static bool is_alloca(gimple stmt)
        if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA))
                return true;
 
-#if BUILDING_GCC_VERSION >= 4007
        if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA_WITH_ALIGN))
                return true;
-#endif
 
        return false;
 }
@@ -322,7 +320,7 @@ static void remove_stack_tracking_gcall(void)
 
                /* Delete the stackleak_track_stack() call */
                delete_insn_and_edges(insn);
-#if BUILDING_GCC_VERSION >= 4007 && BUILDING_GCC_VERSION < 8000
+#if BUILDING_GCC_VERSION < 8000
                if (GET_CODE(next) == NOTE &&
                    NOTE_KIND(next) == NOTE_INSN_CALL_ARG_LOCATION) {
                        insn = next;
index b9ef2e1..29b480c 100644 (file)
@@ -68,9 +68,7 @@ static void register_attributes(void *event_data, void *data)
 {
        user_attr.name                  = "user";
        user_attr.handler               = handle_user_attribute;
-#if BUILDING_GCC_VERSION >= 4007
        user_attr.affects_type_identity = true;
-#endif
 
        register_attribute(&user_attr);
 }
@@ -137,11 +135,9 @@ static void initialize(tree var)
                if (!gimple_assign_single_p(stmt))
                        continue;
                rhs1 = gimple_assign_rhs1(stmt);
-#if BUILDING_GCC_VERSION >= 4007
                /* ... of a non-clobbering expression... */
                if (TREE_CLOBBER_P(rhs1))
                        continue;
-#endif
                /* ... to our variable... */
                if (gimple_get_lhs(stmt) != var)
                        continue;