From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1851) id 7379E3856DE7; Wed, 4 May 2022 13:40:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7379E3856DE7 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Martin Liska To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/marxin/heads/fold-GCC_VERSION-for-old)] Fold GCC_VERSION >= $old_release to TRUE. X-Act-Checkin: gcc X-Git-Author: Martin Liska X-Git-Refname: refs/users/marxin/heads/fold-GCC_VERSION-for-old X-Git-Oldrev: 0aa9aa76bbf53213fb60ad36bd999726dc75aa98 X-Git-Newrev: 0abce8d65f9224fadc69c0d11b9035bba8a51093 Message-Id: <20220504134052.7379E3856DE7@sourceware.org> Date: Wed, 4 May 2022 13:40:52 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2022 13:40:52 -0000 https://gcc.gnu.org/g:0abce8d65f9224fadc69c0d11b9035bba8a51093 commit 0abce8d65f9224fadc69c0d11b9035bba8a51093 Author: Martin Liska Date: Tue Feb 1 12:40:59 2022 +0100 Fold GCC_VERSION >= $old_release to TRUE. Diff: --- gcc/bitmap.cc | 73 +------------------------------ gcc/bitmap.h | 18 ++------ gcc/config/ia64/ia64.cc | 5 +-- gcc/config/rs6000/rs6000.h | 2 - gcc/cp/cp-tree.h | 4 +- gcc/cp/tree.cc | 2 +- gcc/defaults.h | 2 +- gcc/diagnostic-core.h | 4 -- gcc/dwarf2cfi.cc | 4 +- gcc/dwarf2out.cc | 16 +++---- gcc/fortran/gfortran.h | 4 -- gcc/gcc.cc | 2 - gcc/genautomata.cc | 6 +-- gcc/genconditions.cc | 9 +--- gcc/genmatch.cc | 12 ------ gcc/genmodes.cc | 4 +- gcc/genoutput.cc | 2 +- gcc/ggc-page.cc | 9 ---- gcc/ggc-tests.cc | 2 - gcc/ggc.h | 4 -- gcc/hwint.cc | 104 --------------------------------------------- gcc/hwint.h | 32 ++------------ gcc/ira-int.h | 6 +-- gcc/jit/jit-common.h | 4 -- gcc/machmode.h | 20 --------- gcc/output.h | 4 -- gcc/pretty-print.h | 4 -- gcc/rtl.cc | 2 +- gcc/rtl.h | 6 +-- gcc/sbitmap.cc | 37 ++-------------- gcc/stringpool.h | 2 - gcc/system.h | 62 +++------------------------ gcc/tree-vrp.cc | 5 --- gcc/tree.cc | 2 +- gcc/tree.h | 20 ++------- gcc/var-tracking.cc | 2 +- gcc/vec.h | 8 +--- gcc/wide-int.cc | 2 +- 38 files changed, 52 insertions(+), 454 deletions(-) diff --git a/gcc/bitmap.cc b/gcc/bitmap.cc index 88c329f9325..a19d8cddea5 100644 --- a/gcc/bitmap.cc +++ b/gcc/bitmap.cc @@ -1081,33 +1081,6 @@ bitmap_get_aligned_chunk (const_bitmap head, unsigned int chunk, return (ptr->bits[word_num] >> bit_num) & max_value; } -#if GCC_VERSION < 3400 -/* Table of number of set bits in a character, indexed by value of char. */ -static const unsigned char popcount_table[] = -{ - 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, - 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, - 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, - 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, - 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, - 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, - 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, - 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8, -}; - -static unsigned long -bitmap_popcount (BITMAP_WORD a) -{ - unsigned long ret = 0; - unsigned i; - - /* Just do this the table way for now */ - for (i = 0; i < BITMAP_WORD_BITS; i+= 8) - ret += popcount_table[(a >> i) & 0xff]; - return ret; -} -#endif - /* Count and return the number of bits set in the bitmap word BITS. */ static unsigned long bitmap_count_bits_in_word (const BITMAP_WORD *bits) @@ -1116,13 +1089,9 @@ bitmap_count_bits_in_word (const BITMAP_WORD *bits) for (unsigned ix = 0; ix != BITMAP_ELEMENT_WORDS; ix++) { -#if GCC_VERSION >= 3400 /* Note that popcountl matches BITMAP_WORD in type, so the actual size of BITMAP_WORD is not material. */ count += __builtin_popcountl (bits[ix]); -#else - count += bitmap_popcount (bits[ix]); -#endif } return count; } @@ -1201,13 +1170,9 @@ bitmap_single_bit_set_p (const_bitmap a) for (ix = 0; ix != BITMAP_ELEMENT_WORDS; ix++) { -#if GCC_VERSION >= 3400 /* Note that popcountl matches BITMAP_WORD in type, so the actual size of BITMAP_WORD is not material. */ count += __builtin_popcountl (elt->bits[ix]); -#else - count += bitmap_popcount (elt->bits[ix]); -#endif if (count > 1) return false; } @@ -1244,31 +1209,9 @@ bitmap_first_set_bit (const_bitmap a) found_bit: bit_no += ix * BITMAP_WORD_BITS; -#if GCC_VERSION >= 3004 gcc_assert (sizeof (long) == sizeof (word)); bit_no += __builtin_ctzl (word); -#else - /* Binary search for the first set bit. */ -#if BITMAP_WORD_BITS > 64 -#error "Fill out the table." -#endif -#if BITMAP_WORD_BITS > 32 - if (!(word & 0xffffffff)) - word >>= 32, bit_no += 32; -#endif - if (!(word & 0xffff)) - word >>= 16, bit_no += 16; - if (!(word & 0xff)) - word >>= 8, bit_no += 8; - if (!(word & 0xf)) - word >>= 4, bit_no += 4; - if (!(word & 0x3)) - word >>= 2, bit_no += 2; - if (!(word & 0x1)) - word >>= 1, bit_no += 1; - - gcc_checking_assert (word & 1); -#endif + return bit_no; } @@ -1302,22 +1245,8 @@ bitmap_last_set_bit (const_bitmap a) gcc_assert (elt->bits[ix] != 0); found_bit: bit_no += ix * BITMAP_WORD_BITS; -#if GCC_VERSION >= 3004 gcc_assert (sizeof (long) == sizeof (word)); bit_no += BITMAP_WORD_BITS - __builtin_clzl (word) - 1; -#else - /* Hopefully this is a twos-complement host... */ - BITMAP_WORD x = word; - x |= (x >> 1); - x |= (x >> 2); - x |= (x >> 4); - x |= (x >> 8); - x |= (x >> 16); -#if BITMAP_WORD_BITS > 32 - x |= (x >> 32); -#endif - bit_no += bitmap_popcount (x) - 1; -#endif return bit_no; } diff --git a/gcc/bitmap.h b/gcc/bitmap.h index 7fba443aff1..e7bf67a5474 100644 --- a/gcc/bitmap.h +++ b/gcc/bitmap.h @@ -708,20 +708,10 @@ bmp_iter_next (bitmap_iterator *bi, unsigned *bit_no) static inline void bmp_iter_next_bit (bitmap_iterator * bi, unsigned *bit_no) { -#if (GCC_VERSION >= 3004) - { - unsigned int n = __builtin_ctzl (bi->bits); - gcc_assert (sizeof (unsigned long) == sizeof (BITMAP_WORD)); - bi->bits >>= n; - *bit_no += n; - } -#else - while (!(bi->bits & 1)) - { - bi->bits >>= 1; - *bit_no += 1; - } -#endif + unsigned int n = __builtin_ctzl (bi->bits); + gcc_assert (sizeof (unsigned long) == sizeof (BITMAP_WORD)); + bi->bits >>= n; + *bit_no += n; } /* Advance to the next nonzero bit of a single bitmap, we will have diff --git a/gcc/config/ia64/ia64.cc b/gcc/config/ia64/ia64.cc index f9fb681a36c..445a391f0f8 100644 --- a/gcc/config/ia64/ia64.cc +++ b/gcc/config/ia64/ia64.cc @@ -6213,11 +6213,8 @@ ia64_safe_type (rtx_insn *insn) If a predicate register is written by an AND.ORCM we set WRITTEN_BY_AND to true; if it was written by an OR.ANDCM we set WRITTEN_BY_OR to true. */ -#if GCC_VERSION >= 4000 #define RWS_FIELD_TYPE __extension__ unsigned short -#else -#define RWS_FIELD_TYPE unsigned int -#endif + struct reg_write_state { RWS_FIELD_TYPE write_count : 2; diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 523256a5c9d..4e83372a291 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -2586,9 +2586,7 @@ typedef struct GTY(()) machine_function #define TARGET_SUPPORTS_WIDE_INT 1 -#if (GCC_VERSION >= 3000) #pragma GCC poison TARGET_FLOAT128 OPTION_MASK_FLOAT128 MASK_FLOAT128 -#endif /* Whether a given VALUE is a valid 16 or 34-bit signed integer. */ #define SIGNED_INTEGER_NBIT_P(VALUE, N) \ diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 8d7cf240b68..7b240a8b87d 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -632,7 +632,7 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX]; #define BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK(NODE) \ TREE_CHECK(NODE,BOUND_TEMPLATE_TEMPLATE_PARM) -#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007) +#if defined ENABLE_TREE_CHECKING /* Returns t iff the node can have a TEMPLATE_INFO field. */ @@ -2998,7 +2998,7 @@ struct GTY(()) lang_decl { #define STRIP_TEMPLATE(NODE) \ (TREE_CODE (NODE) == TEMPLATE_DECL ? DECL_TEMPLATE_RESULT (NODE) : NODE) -#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007) +#if defined ENABLE_TREE_CHECKING #define LANG_DECL_MIN_CHECK(NODE) __extension__ \ ({ struct lang_decl *lt = DECL_LANG_SPECIFIC (NODE); \ diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index ed0d0d22950..98175bfeb11 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -6129,7 +6129,7 @@ cp_tree_c_finish_parsing () deleted_copy_types = NULL; } -#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007) +#if defined ENABLE_TREE_CHECKING /* Complain that some language-specific thing hanging off a tree node has been accessed improperly. */ diff --git a/gcc/defaults.h b/gcc/defaults.h index 7c7a80e596e..fbd4d8e5ae6 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -949,7 +949,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define DEFAULT_USE_CXA_ATEXIT 0 #endif -#if GCC_VERSION >= 3000 && defined IN_GCC +#ifdef IN_GCC /* These old constraint macros shouldn't appear anywhere in a configuration using MD constraint definitions. */ #endif diff --git a/gcc/diagnostic-core.h b/gcc/diagnostic-core.h index 286954ac2f8..0df0c896406 100644 --- a/gcc/diagnostic-core.h +++ b/gcc/diagnostic-core.h @@ -60,11 +60,7 @@ extern const char *trim_filename (const char *); /* None of these functions are suitable for ATTRIBUTE_PRINTF, because each language front end can extend them with its own set of format specifiers. We must use custom format checks. */ -#if (CHECKING_P && GCC_VERSION >= 4001) || GCC_VERSION == BUILDING_GCC_VERSION #define ATTRIBUTE_GCC_DIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m, n))) ATTRIBUTE_NONNULL(m) -#else -#define ATTRIBUTE_GCC_DIAG(m, n) ATTRIBUTE_NONNULL(m) -#endif extern void internal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2) ATTRIBUTE_NORETURN; extern void internal_error_no_backtrace (const char *, ...) diff --git a/gcc/dwarf2cfi.cc b/gcc/dwarf2cfi.cc index ab7c5cc5b27..6aae3bdb5aa 100644 --- a/gcc/dwarf2cfi.cc +++ b/gcc/dwarf2cfi.cc @@ -45,9 +45,7 @@ along with GCC; see the file COPYING3. If not see totally replaced in this file; make sure it stays that way. */ #undef DWARF2_UNWIND_INFO #undef DWARF2_FRAME_INFO -#if (GCC_VERSION >= 3000) - #pragma GCC poison DWARF2_UNWIND_INFO DWARF2_FRAME_INFO -#endif +#pragma GCC poison DWARF2_UNWIND_INFO DWARF2_FRAME_INFO #ifndef INCOMING_RETURN_ADDR_RTX #define INCOMING_RETURN_ADDR_RTX (gcc_unreachable (), NULL_RTX) diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index 5681b01749a..d31818f999d 100644 --- a/gcc/dwarf2out.cc +++ b/gcc/dwarf2out.cc @@ -133,9 +133,7 @@ int vms_file_stats_name (const char *, long long *, long *, char *, int *); totally replaced in this file; make sure it stays that way. */ #undef DWARF2_UNWIND_INFO #undef DWARF2_FRAME_INFO -#if (GCC_VERSION >= 3000) - #pragma GCC poison DWARF2_UNWIND_INFO DWARF2_FRAME_INFO -#endif +#pragma GCC poison DWARF2_UNWIND_INFO DWARF2_FRAME_INFO /* The size of the target's pointer type. */ #ifndef PTR_SIZE @@ -3370,10 +3368,8 @@ bool dwarf2out_default_as_loc_support (void) { return DWARF2_ASM_LINE_DEBUG_INFO; -#if (GCC_VERSION >= 3000) -# undef DWARF2_ASM_LINE_DEBUG_INFO -# pragma GCC poison DWARF2_ASM_LINE_DEBUG_INFO -#endif +#undef DWARF2_ASM_LINE_DEBUG_INFO +#pragma GCC poison DWARF2_ASM_LINE_DEBUG_INFO } /* Return true if GCC configure detected assembler support for views @@ -3383,10 +3379,8 @@ bool dwarf2out_default_as_locview_support (void) { return DWARF2_ASM_VIEW_DEBUG_INFO; -#if (GCC_VERSION >= 3000) -# undef DWARF2_ASM_VIEW_DEBUG_INFO -# pragma GCC poison DWARF2_ASM_VIEW_DEBUG_INFO -#endif +#undef DWARF2_ASM_VIEW_DEBUG_INFO +#pragma GCC poison DWARF2_ASM_VIEW_DEBUG_INFO } /* A bit is set in ZERO_VIEW_P if we are using the assembler-supported diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 7bf1d5a0452..7baab4bfceb 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -1072,11 +1072,7 @@ typedef struct /* In order for the "gfc" format checking to work correctly, you must have declared a typedef locus first. */ -#if GCC_VERSION >= 4001 #define ATTRIBUTE_GCC_GFC(m, n) __attribute__ ((__format__ (__gcc_gfc__, m, n))) ATTRIBUTE_NONNULL(m) -#else -#define ATTRIBUTE_GCC_GFC(m, n) ATTRIBUTE_NONNULL(m) -#endif /* Suppress error messages or re-enable them. */ diff --git a/gcc/gcc.cc b/gcc/gcc.cc index bb07cc244e3..c5b92b380b2 100644 --- a/gcc/gcc.cc +++ b/gcc/gcc.cc @@ -163,9 +163,7 @@ env_manager::restore () } /* Forbid other uses of getenv and putenv. */ -#if (GCC_VERSION >= 3000) #pragma GCC poison getenv putenv -#endif diff --git a/gcc/genautomata.cc b/gcc/genautomata.cc index e43314e4ea3..a290122f62c 100644 --- a/gcc/genautomata.cc +++ b/gcc/genautomata.cc @@ -879,7 +879,7 @@ struct state_ainsn_table /* Macros to access members of unions. Use only them for access to union members of declarations and regexps. */ -#if CHECKING_P && (GCC_VERSION >= 2007) +#if CHECKING_P #define DECL_UNIT(d) __extension__ \ (({ __typeof (d) const _decl = (d); \ @@ -1070,7 +1070,7 @@ regexp_mode_check_failed (enum regexp_mode mode, exit (1); } -#else /* #if CHECKING_P && (GCC_VERSION >= 2007) */ +#else /* #if CHECKING_P */ #define DECL_UNIT(d) (&(d)->decl.unit) #define DECL_BYPASS(d) (&(d)->decl.bypass) @@ -1088,7 +1088,7 @@ regexp_mode_check_failed (enum regexp_mode mode, #define REGEXP_ALLOF(r) (&(r)->regexp.allof) #define REGEXP_ONEOF(r) (&(r)->regexp.oneof) -#endif /* #if CHECKING_P && (GCC_VERSION >= 2007) */ +#endif /* #if CHECKING_P */ #define XCREATENODE(T) ((T *) create_node (sizeof (T))) #define XCREATENODEVEC(T, N) ((T *) create_node (sizeof (T) * (N))) diff --git a/gcc/genconditions.cc b/gcc/genconditions.cc index f63a3f495c5..8845309fd91 100644 --- a/gcc/genconditions.cc +++ b/gcc/genconditions.cc @@ -58,7 +58,6 @@ write_header (void) /* It is necessary, but not entirely safe, to include the headers below\n\ in a generator program. As a defensive measure, don't do so when the\n\ table isn't going to have anything in it. */\n\ -#if GCC_VERSION >= 3001\n\ \n\ /* Do not allow checking to confuse the issue. */\n\ #undef CHECKING_P\n\ @@ -108,8 +107,7 @@ write_header (void) extern rtx_insn *insn;\n\ extern rtx ins1;\n\ extern rtx operands[];\n\ -\n\ -#endif /* gcc >= 3.0.1 */\n"); +\n"); } /* Write out one entry in the conditions table, using the data pointed @@ -170,12 +168,11 @@ struct c_test\n\ vary at run time. It works in 3.0.1 and later; 3.0 only when not\n\ optimizing. */\n\ \n\ -#if GCC_VERSION >= 3001\n\ static const struct c_test insn_conditions[] = {\n"); traverse_c_tests (write_one_condition, 0); - puts (" { nullptr, -1 }\n};\n#endif /* gcc >= 3.0.1 */\n"); + puts (" { nullptr, -1 }\n};\n"); } /* Emit code which will convert the C-format table to a @@ -191,7 +188,6 @@ write_writer (void) " unsigned int i;\n" " const char *p;\n" " puts (\"(define_conditions [\");\n" - "#if GCC_VERSION >= 3001\n" " for (i = 0; i < ARRAY_SIZE (insn_conditions) - 1; i++)\n" " {\n" " printf (\" (%d \\\"\", insn_conditions[i].value);\n" @@ -207,7 +203,6 @@ write_writer (void) " }\n" " puts (\"\\\")\");\n" " }\n" - "#endif /* gcc >= 3.0.1 */\n" " puts (\"])\");\n" " fflush (stdout);\n" "return ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE;\n" diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc index 2eda7300821..a10a51b0c13 100644 --- a/gcc/genmatch.cc +++ b/gcc/genmatch.cc @@ -70,9 +70,7 @@ linemap_client_expand_location_to_spelling_point (location_t loc, } static bool -#if GCC_VERSION >= 4001 __attribute__((format (printf, 5, 0))) -#endif diagnostic_cb (cpp_reader *, enum cpp_diagnostic_level errtype, enum cpp_warning_reason, rich_location *richloc, const char *msg, va_list *ap) @@ -115,9 +113,7 @@ notfound: } static void -#if GCC_VERSION >= 4001 __attribute__((format (printf, 2, 3))) -#endif fatal_at (const cpp_token *tk, const char *msg, ...) { rich_location richloc (line_table, tk->src_loc); @@ -128,9 +124,7 @@ fatal_at (const cpp_token *tk, const char *msg, ...) } static void -#if GCC_VERSION >= 4001 __attribute__((format (printf, 2, 3))) -#endif fatal_at (location_t loc, const char *msg, ...) { rich_location richloc (line_table, loc); @@ -141,9 +135,7 @@ fatal_at (location_t loc, const char *msg, ...) } static void -#if GCC_VERSION >= 4001 __attribute__((format (printf, 2, 3))) -#endif warning_at (const cpp_token *tk, const char *msg, ...) { rich_location richloc (line_table, tk->src_loc); @@ -154,9 +146,7 @@ warning_at (const cpp_token *tk, const char *msg, ...) } static void -#if GCC_VERSION >= 4001 __attribute__((format (printf, 2, 3))) -#endif warning_at (location_t loc, const char *msg, ...) { rich_location richloc (line_table, loc); @@ -169,9 +159,7 @@ warning_at (location_t loc, const char *msg, ...) /* Like fprintf, but print INDENT spaces at the beginning. */ static void -#if GCC_VERSION >= 4001 __attribute__((format (printf, 3, 4))) -#endif fprintf_indent (FILE *f, unsigned int indent, const char *format, ...) { va_list ap; diff --git a/gcc/genmodes.cc b/gcc/genmodes.cc index 59850bb070a..0f4d746c157 100644 --- a/gcc/genmodes.cc +++ b/gcc/genmodes.cc @@ -1399,13 +1399,13 @@ emit_insn_modes_inline_h (void) #ifndef GCC_INSN_MODES_INLINE_H\n\ #define GCC_INSN_MODES_INLINE_H"); - puts ("\n#if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001\n"); + puts ("\n#if !defined (USED_FOR_TARGET)\n"); emit_mode_size_inline (); emit_mode_nunits_inline (); emit_mode_inner_inline (); emit_mode_unit_size_inline (); emit_mode_unit_precision_inline (); - puts ("#endif /* GCC_VERSION >= 4001 */"); + puts ("#endif"); puts ("\ \n\ diff --git a/gcc/genoutput.cc b/gcc/genoutput.cc index 6bb03e2864f..853bec0201d 100644 --- a/gcc/genoutput.cc +++ b/gcc/genoutput.cc @@ -291,7 +291,7 @@ output_insn_data (void) break; } - printf ("#if GCC_VERSION >= 2007\n__extension__\n#endif\n"); + printf ("\n__extension__\n"); printf ("\nconst struct insn_data_d insn_data[] = \n{\n"); for (d = idata; d; d = d->next) diff --git a/gcc/ggc-page.cc b/gcc/ggc-page.cc index 7a7a1b0901f..8fe07b80066 100644 --- a/gcc/ggc-page.cc +++ b/gcc/ggc-page.cc @@ -568,11 +568,7 @@ push_by_depth (page_entry *p, unsigned long *s) G.save_in_use[G.by_depth_in_use++] = s; } -#if (GCC_VERSION < 3001) -#define prefetch(X) ((void) X) -#else #define prefetch(X) __builtin_prefetch (X) -#endif #define save_in_use_p_i(__i) \ (G.save_in_use[__i]) @@ -1340,12 +1336,7 @@ ggc_internal_alloc (size_t size, void (*f)(void *), size_t s, size_t n while (~entry->in_use_p[word] == 0) ++word; -#if GCC_VERSION >= 3004 bit = __builtin_ctzl (~entry->in_use_p[word]); -#else - while ((entry->in_use_p[word] >> bit) & 1) - ++bit; -#endif hint = word * HOST_BITS_PER_LONG + bit; } diff --git a/gcc/ggc-tests.cc b/gcc/ggc-tests.cc index 620989489b6..d028da339e6 100644 --- a/gcc/ggc-tests.cc +++ b/gcc/ggc-tests.cc @@ -180,10 +180,8 @@ int test_struct_with_dtor::dtor_call_count; static void test_finalization () { -#if GCC_VERSION >= 4003 ASSERT_FALSE (need_finalization_p ()); ASSERT_TRUE (need_finalization_p ()); -#endif /* Create some garbage. */ const int count = 10; diff --git a/gcc/ggc.h b/gcc/ggc.h index aeec1bafb9b..0f72f368a72 100644 --- a/gcc/ggc.h +++ b/gcc/ggc.h @@ -170,11 +170,7 @@ template inline bool need_finalization_p () { -#if GCC_VERSION >= 4003 return !__has_trivial_destructor (T); -#else - return true; -#endif } template diff --git a/gcc/hwint.cc b/gcc/hwint.cc index e53e0bf7906..fa2df400842 100644 --- a/gcc/hwint.cc +++ b/gcc/hwint.cc @@ -21,110 +21,6 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" -#if GCC_VERSION < 3004 - -/* The functions clz_hwi, ctz_hwi, ffs_hwi, floor_log2, ceil_log2, - and exact_log2 are defined as inline functions in hwint.h - if GCC_VERSION >= 3004. - The definitions here are used for older versions of GCC and - non-GCC bootstrap compilers. */ - -/* Given X, an unsigned number, return the largest int Y such that 2**Y <= X. - If X is 0, return -1. */ - -int -floor_log2 (unsigned HOST_WIDE_INT x) -{ - int t = 0; - - if (x == 0) - return -1; - - if (HOST_BITS_PER_WIDE_INT > 64) - if (x >= HOST_WIDE_INT_1U << (t + 64)) - t += 64; - if (HOST_BITS_PER_WIDE_INT > 32) - if (x >= HOST_WIDE_INT_1U << (t + 32)) - t += 32; - if (x >= HOST_WIDE_INT_1U << (t + 16)) - t += 16; - if (x >= HOST_WIDE_INT_1U << (t + 8)) - t += 8; - if (x >= HOST_WIDE_INT_1U << (t + 4)) - t += 4; - if (x >= HOST_WIDE_INT_1U << (t + 2)) - t += 2; - if (x >= HOST_WIDE_INT_1U << (t + 1)) - t += 1; - - return t; -} - -/* Given X, an unsigned number, return the least Y such that 2**Y >= X. */ - -int -ceil_log2 (unsigned HOST_WIDE_INT x) -{ - return x == 0 ? 0 : floor_log2 (x - 1) + 1; -} - -/* Return the logarithm of X, base 2, considering X unsigned, - if X is a power of 2. Otherwise, returns -1. */ - -int -exact_log2 (unsigned HOST_WIDE_INT x) -{ - if (!pow2p_hwi (x)) - return -1; - return floor_log2 (x); -} - -/* Given X, an unsigned number, return the number of least significant bits - that are zero. When X == 0, the result is the word size. */ - -int -ctz_hwi (unsigned HOST_WIDE_INT x) -{ - return x ? floor_log2 (least_bit_hwi (x)) : HOST_BITS_PER_WIDE_INT; -} - -/* Similarly for most significant bits. */ - -int -clz_hwi (unsigned HOST_WIDE_INT x) -{ - return HOST_BITS_PER_WIDE_INT - 1 - floor_log2 (x); -} - -/* Similar to ctz_hwi, except that the least significant bit is numbered - starting from 1, and X == 0 yields 0. */ - -int -ffs_hwi (unsigned HOST_WIDE_INT x) -{ - return 1 + floor_log2 (least_bit_hwi (x)); -} - -/* Return the number of set bits in X. */ - -int -popcount_hwi (unsigned HOST_WIDE_INT x) -{ - int i, ret = 0; - size_t bits = sizeof (x) * CHAR_BIT; - - for (i = 0; i < bits; i += 1) - { - ret += x & 1; - x >>= 1; - } - - return ret; -} - -#endif /* GCC_VERSION < 3004 */ - - /* Compute the greatest common divisor of two numbers A and B using Euclid's algorithm. */ diff --git a/gcc/hwint.h b/gcc/hwint.h index c160bea0cb2..f3b5a779a65 100644 --- a/gcc/hwint.h +++ b/gcc/hwint.h @@ -28,18 +28,16 @@ #define HOST_LONG_LONG_FORMAT "ll" #endif -/* If HAVE_LONG_LONG and SIZEOF_LONG_LONG aren't defined, but - GCC_VERSION >= 3000, assume this is the second or later stage of a +/* If HAVE_LONG_LONG and SIZEOF_LONG_LONG aren't defined + assume this is the second or later stage of a bootstrap, we do have long long, and it's 64 bits. (This is required by C99; we do have some ports that violate that assumption but they're all cross-compile-only.) Just in case, force a constraint violation if that assumption is incorrect. */ #if !defined HAVE_LONG_LONG -# if GCC_VERSION >= 3000 -# define HAVE_LONG_LONG 1 -# define SIZEOF_LONG_LONG 8 +# define HAVE_LONG_LONG 1 +# define SIZEOF_LONG_LONG 8 extern char sizeof_long_long_must_be_8[sizeof (long long) == 8 ? 1 : -1]; -# endif #endif #ifdef HAVE_LONG_LONG @@ -160,26 +158,6 @@ pow2p_hwi (unsigned HOST_WIDE_INT x) return x && pow2_or_zerop (x); } -#if GCC_VERSION < 3004 - -extern int clz_hwi (unsigned HOST_WIDE_INT x); -extern int ctz_hwi (unsigned HOST_WIDE_INT x); -extern int ffs_hwi (unsigned HOST_WIDE_INT x); - -/* Return the number of set bits in X. */ -extern int popcount_hwi (unsigned HOST_WIDE_INT x); - -/* Return log2, or -1 if not exact. */ -extern int exact_log2 (unsigned HOST_WIDE_INT); - -/* Return floor of log2, with -1 for zero. */ -extern int floor_log2 (unsigned HOST_WIDE_INT); - -/* Return the smallest n such that 2**n >= X. */ -extern int ceil_log2 (unsigned HOST_WIDE_INT); - -#else /* GCC_VERSION >= 3004 */ - /* For convenience, define 0 -> word_size. */ static inline int clz_hwi (unsigned HOST_WIDE_INT x) @@ -251,8 +229,6 @@ exact_log2 (unsigned HOST_WIDE_INT x) return pow2p_hwi (x) ? ctz_hwi (x) : -1; } -#endif /* GCC_VERSION >= 3004 */ - #define HOST_WIDE_INT_MIN (HOST_WIDE_INT) \ (HOST_WIDE_INT_1U << (HOST_BITS_PER_WIDE_INT - 1)) #define HOST_WIDE_INT_MAX (~(HOST_WIDE_INT_MIN)) diff --git a/gcc/ira-int.h b/gcc/ira-int.h index f42a314fa7f..76ce6b4d75c 100644 --- a/gcc/ira-int.h +++ b/gcc/ira-int.h @@ -151,7 +151,7 @@ extern int ira_loop_tree_height; extern ira_loop_tree_node_t ira_bb_nodes; /* Two access macros to the nodes representing basic blocks. */ -#if defined ENABLE_IRA_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_IRA_CHECKING #define IRA_BB_NODE_BY_INDEX(index) __extension__ \ (({ ira_loop_tree_node_t _node = (&ira_bb_nodes[index]); \ if (_node->children != NULL || _node->loop != NULL || _node->bb == NULL)\ @@ -173,7 +173,7 @@ extern ira_loop_tree_node_t ira_bb_nodes; extern ira_loop_tree_node_t ira_loop_nodes; /* Two access macros to the nodes representing loops. */ -#if defined ENABLE_IRA_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_IRA_CHECKING #define IRA_LOOP_NODE_BY_INDEX(index) __extension__ \ (({ ira_loop_tree_node_t const _node = (&ira_loop_nodes[index]); \ if (_node->children == NULL || _node->bb != NULL \ @@ -655,7 +655,7 @@ extern int ira_move_loops_num, ira_additional_jumps_num; /* Set, clear or test bit number I in R, a bit vector of elements with minimal index and maximal index equal correspondingly to MIN and MAX. */ -#if defined ENABLE_IRA_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_IRA_CHECKING #define SET_MINMAX_SET_BIT(R, I, MIN, MAX) __extension__ \ (({ int _min = (MIN), _max = (MAX), _i = (I); \ diff --git a/gcc/jit/jit-common.h b/gcc/jit/jit-common.h index 3ff7447fbf3..773a2d8df43 100644 --- a/gcc/jit/jit-common.h +++ b/gcc/jit/jit-common.h @@ -29,11 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-iterator.h" #ifdef GCC_VERSION -#if GCC_VERSION >= 4001 #define GNU_PRINTF(M, N) __attribute__ ((format (gnu_printf, (M), (N)))) -#else -#define GNU_PRINTF(M, N) -#endif #endif const int NUM_GCC_JIT_TYPES = GCC_JIT_TYPE_INT128_T + 1; diff --git a/gcc/machmode.h b/gcc/machmode.h index 45df720df73..d84bdd5797d 100644 --- a/gcc/machmode.h +++ b/gcc/machmode.h @@ -545,12 +545,8 @@ complex_mode::includes_p (machine_mode m) ALWAYS_INLINE poly_uint16 mode_to_bytes (machine_mode mode) { -#if GCC_VERSION >= 4001 return (__builtin_constant_p (mode) ? mode_size_inline (mode) : mode_size[mode]); -#else - return mode_size[mode]; -#endif } /* Return the base GET_MODE_BITSIZE value for MODE. */ @@ -574,13 +570,9 @@ mode_to_precision (machine_mode mode) ALWAYS_INLINE scalar_mode mode_to_inner (machine_mode mode) { -#if GCC_VERSION >= 4001 return scalar_mode::from_int (__builtin_constant_p (mode) ? mode_inner_inline (mode) : mode_inner[mode]); -#else - return scalar_mode::from_int (mode_inner[mode]); -#endif } /* Return the base GET_MODE_UNIT_SIZE value for MODE. */ @@ -588,12 +580,8 @@ mode_to_inner (machine_mode mode) ALWAYS_INLINE unsigned char mode_to_unit_size (machine_mode mode) { -#if GCC_VERSION >= 4001 return (__builtin_constant_p (mode) ? mode_unit_size_inline (mode) : mode_unit_size[mode]); -#else - return mode_unit_size[mode]; -#endif } /* Return the base GET_MODE_UNIT_PRECISION value for MODE. */ @@ -601,12 +589,8 @@ mode_to_unit_size (machine_mode mode) ALWAYS_INLINE unsigned short mode_to_unit_precision (machine_mode mode) { -#if GCC_VERSION >= 4001 return (__builtin_constant_p (mode) ? mode_unit_precision_inline (mode) : mode_unit_precision[mode]); -#else - return mode_unit_precision[mode]; -#endif } /* Return the base GET_MODE_NUNITS value for MODE. */ @@ -614,12 +598,8 @@ mode_to_unit_precision (machine_mode mode) ALWAYS_INLINE poly_uint16 mode_to_nunits (machine_mode mode) { -#if GCC_VERSION >= 4001 return (__builtin_constant_p (mode) ? mode_nunits_inline (mode) : mode_nunits[mode]); -#else - return mode_nunits[mode]; -#endif } /* Get the size in bytes of an object of mode MODE. */ diff --git a/gcc/output.h b/gcc/output.h index 6dea630913a..2fce8b5c19f 100644 --- a/gcc/output.h +++ b/gcc/output.h @@ -115,11 +115,7 @@ extern void output_addr_const (FILE *, rtx); /* Output a string of assembler code, substituting numbers, strings and fixed syntactic prefixes. */ -#if GCC_VERSION >= 3004 #define ATTRIBUTE_ASM_FPRINTF(m, n) __attribute__ ((__format__ (__asm_fprintf__, m, n))) ATTRIBUTE_NONNULL(m) -#else -#define ATTRIBUTE_ASM_FPRINTF(m, n) ATTRIBUTE_NONNULL(m) -#endif extern void fprint_whex (FILE *, unsigned HOST_WIDE_INT); extern void fprint_ul (FILE *, unsigned long); diff --git a/gcc/pretty-print.h b/gcc/pretty-print.h index fc588447460..425ae339ae0 100644 --- a/gcc/pretty-print.h +++ b/gcc/pretty-print.h @@ -374,11 +374,7 @@ extern void pp_separate_with (pretty_printer *, char); /* This header may be included before diagnostics-core.h, hence the duplicate definitions to allow for GCC-specific formats. */ -#if GCC_VERSION >= 3005 #define ATTRIBUTE_GCC_PPDIAG(m, n) __attribute__ ((__format__ (GCC_PPDIAG_STYLE, m ,n))) ATTRIBUTE_NONNULL(m) -#else -#define ATTRIBUTE_GCC_PPDIAG(m, n) ATTRIBUTE_NONNULL(m) -#endif extern void pp_printf (pretty_printer *, const char *, ...) ATTRIBUTE_GCC_PPDIAG(2,3); diff --git a/gcc/rtl.cc b/gcc/rtl.cc index 86c322b19ca..74be7342803 100644 --- a/gcc/rtl.cc +++ b/gcc/rtl.cc @@ -869,7 +869,7 @@ dump_rtx_statistics (void) fprintf (stderr, "-----------------------------------------------\n"); } -#if defined ENABLE_RTL_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_RTL_CHECKING /* Disable warnings about missing quoting in GCC diagnostics for the internal_error calls. Their format strings deliberately don't diff --git a/gcc/rtl.h b/gcc/rtl.h index 488016bb42a..5e77be2f024 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1076,7 +1076,7 @@ is_a_helper ::test (rtx_insn *insn) /* General accessor macros for accessing the fields of an rtx. */ -#if defined ENABLE_RTL_CHECKING && (GCC_VERSION >= 2007) +#if defined ENABLE_RTL_CHECKING /* The bit with a star outside the statement expr and an & inside is so that N can be evaluated only once. */ #define RTL_CHECK1(RTX, N, C1) __extension__ \ @@ -1257,7 +1257,7 @@ extern void rtvec_check_failed_bounds (const_rtvec, int, const char *, int, /* Access an individual rtx flag, with no checking of any kind. */ #define RTX_FLAG(RTX, FLAG) ((RTX)->FLAG) -#if defined ENABLE_RTL_FLAG_CHECKING && (GCC_VERSION >= 2007) +#if defined ENABLE_RTL_FLAG_CHECKING #define RTL_FLAG_CHECK1(NAME, RTX, C1) __extension__ \ ({ __typeof (RTX) const _rtx = (RTX); \ if (GET_CODE (_rtx) != C1) \ @@ -1823,7 +1823,7 @@ enum label_kind LABEL_WEAK_ENTRY /* alternate entry point, exported as weak symbol */ }; -#if defined ENABLE_RTL_FLAG_CHECKING && (GCC_VERSION > 2007) +#if defined ENABLE_RTL_FLAG_CHECKING /* Retrieve the kind of LABEL. */ #define LABEL_KIND(LABEL) __extension__ \ diff --git a/gcc/sbitmap.cc b/gcc/sbitmap.cc index 5ac2b6d0f67..0a6fddadab8 100644 --- a/gcc/sbitmap.cc +++ b/gcc/sbitmap.cc @@ -375,33 +375,6 @@ bitmap_bit_in_range_p (const_sbitmap bmap, unsigned int start, unsigned int end) return (bmap->elms[start_word] & mask) != 0; } -#if GCC_VERSION < 3400 -/* Table of number of set bits in a character, indexed by value of char. */ -static const unsigned char popcount_table[] = -{ - 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, - 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, - 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, - 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, - 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, - 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, - 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7, - 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8, -}; - -static unsigned long -sbitmap_popcount (SBITMAP_ELT_TYPE a) -{ - unsigned long ret = 0; - unsigned i; - - /* Just do this the table way for now */ - for (i = 0; i < HOST_BITS_PER_WIDEST_FAST_INT; i += 8) - ret += popcount_table[(a >> i) & 0xff]; - return ret; -} -#endif - /* Count and return the number of bits set in the bitmap BMAP. */ unsigned int @@ -411,16 +384,12 @@ bitmap_count_bits (const_sbitmap bmap) for (unsigned int i = 0; i < bmap->size; i++) if (bmap->elms[i]) { -#if GCC_VERSION < 3400 - count += sbitmap_popcount (bmap->elms[i]); -#else -# if HOST_BITS_PER_WIDEST_FAST_INT == HOST_BITS_PER_LONG +#if HOST_BITS_PER_WIDEST_FAST_INT == HOST_BITS_PER_LONG count += __builtin_popcountl (bmap->elms[i]); -# elif HOST_BITS_PER_WIDEST_FAST_INT == HOST_BITS_PER_LONGLONG +#elif HOST_BITS_PER_WIDEST_FAST_INT == HOST_BITS_PER_LONGLONG count += __builtin_popcountll (bmap->elms[i]); -# else +#else count += __builtin_popcount (bmap->elms[i]); -# endif #endif } return count; diff --git a/gcc/stringpool.h b/gcc/stringpool.h index 5e301c6011b..b43110cc7a0 100644 --- a/gcc/stringpool.h +++ b/gcc/stringpool.h @@ -33,11 +33,9 @@ extern tree maybe_get_identifier (const char *); known. */ extern tree get_identifier_with_length (const char *, size_t); -#if GCC_VERSION >= 3000 #define get_identifier(str) \ (__builtin_constant_p (str) \ ? get_identifier_with_length ((str), strlen (str)) \ : get_identifier (str)) -#endif #endif // GCC_STRINGPOOL_H diff --git a/gcc/system.h b/gcc/system.h index c5562cc49a3..1688b763ef5 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -596,17 +596,15 @@ extern int vsnprintf (char *, size_t, const char *, va_list); #ifdef __cplusplus #define HAVE_DESIGNATED_INITIALIZERS 0 #else -#define HAVE_DESIGNATED_INITIALIZERS \ - ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) +#define HAVE_DESIGNATED_INITIALIZERS 1 #endif #endif #if !defined(HAVE_DESIGNATED_UNION_INITIALIZERS) #ifdef __cplusplus -#define HAVE_DESIGNATED_UNION_INITIALIZERS (GCC_VERSION >= 4007) +#define HAVE_DESIGNATED_UNION_INITIALIZERS 1 #else -#define HAVE_DESIGNATED_UNION_INITIALIZERS \ - ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) +#define HAVE_DESIGNATED_UNION_INITIALIZERS 1 #endif #endif @@ -722,20 +720,6 @@ extern int vsnprintf (char *, size_t, const char *, va_list); #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) #endif -/* Various error reporting routines want to use __FUNCTION__. */ -#if (GCC_VERSION < 2007) -#ifndef __FUNCTION__ -#define __FUNCTION__ "?" -#endif /* ! __FUNCTION__ */ -#endif - -/* __builtin_expect(A, B) evaluates to A, but notifies the compiler that - the most likely value of A is B. This feature was added at some point - between 2.95 and 3.0. Let's use 3.0 as the lower bound for now. */ -#if (GCC_VERSION < 3000) -#define __builtin_expect(a, b) (a) -#endif - /* Some of the headers included by can use "abort" within a namespace, e.g. "_VSTD::abort();", which fails after we use the preprocessor to redefine "abort" as "fancy_abort" below. */ @@ -781,12 +765,9 @@ extern void fancy_abort (const char *, int, const char *) #if ENABLE_ASSERT_CHECKING #define gcc_assert(EXPR) \ ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0)) -#elif (GCC_VERSION >= 4005) +#else #define gcc_assert(EXPR) \ ((void)(__builtin_expect (!(EXPR), 0) ? __builtin_unreachable (), 0 : 0)) -#else -/* Include EXPR, so that unused variable warnings do not occur. */ -#define gcc_assert(EXPR) ((void)(0 && (EXPR))) #endif #if CHECKING_P @@ -796,21 +777,13 @@ extern void fancy_abort (const char *, int, const char *) #define gcc_checking_assert(EXPR) ((void)(0 && (EXPR))) #endif -#if GCC_VERSION >= 4000 #define ALWAYS_INLINE inline __attribute__ ((always_inline)) -#else -#define ALWAYS_INLINE inline -#endif -#if GCC_VERSION >= 3004 #define WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__)) -#else -#define WARN_UNUSED_RESULT -#endif /* Use gcc_unreachable() to mark unreachable locations (like an unreachable default case of a switch. Do not use gcc_assert(0). */ -#if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING +#if !ENABLE_ASSERT_CHECKING #define gcc_unreachable() __builtin_unreachable () #else #define gcc_unreachable() (fancy_abort (__FILE__, __LINE__, __FUNCTION__)) @@ -826,11 +799,7 @@ extern void fancy_abort (const char *, int, const char *) # define gcc_fallthrough() #endif -#if GCC_VERSION >= 3001 #define STATIC_CONSTANT_P(X) (__builtin_constant_p (X) && (X)) -#else -#define STATIC_CONSTANT_P(X) (false && (X)) -#endif /* static_assert (COND, MESSAGE) is available in C++11 onwards. */ #if __cplusplus >= 201103L @@ -871,12 +840,6 @@ extern void fancy_abort (const char *, int, const char *) /* Some compilers do not allow the use of unsigned char in bitfields. */ #define BOOL_BITFIELD unsigned int -/* GCC older than 4.4 have broken C++ value initialization handling, see - PR11309, PR30111, PR33916, PR82939 and PR84405 for more details. */ -#if GCC_VERSION > 0 && GCC_VERSION < 4004 && !defined(__clang__) -# define BROKEN_VALUE_INITIALIZATION -#endif - /* As the last action in this file, we poison the identifiers that shouldn't be used. Note, luckily gcc-3.0's token-based integrated preprocessor won't trip on poisoned identifiers that arrive from @@ -899,8 +862,6 @@ extern void fancy_abort (const char *, int, const char *) #define realloc xrealloc #endif -#if (GCC_VERSION >= 3000) - /* Note autoconf checks for prototype declarations and includes system.h while doing so. Only poison these tokens if actually compiling gcc, so that the autoconf declaration tests for malloc @@ -1130,8 +1091,6 @@ extern void fancy_abort (const char *, int, const char *) 'if (flag_checking)', or with CHECKING_P macro. */ #pragma GCC poison ENABLE_CHECKING -#endif /* GCC >= 3.0 */ - /* This macro allows casting away const-ness to pass -Wcast-qual warnings. DO NOT USE THIS UNLESS YOU REALLY HAVE TO! It should only be used in certain specific cases. One valid case is where @@ -1151,7 +1110,7 @@ extern void fancy_abort (const char *, int, const char *) #ifdef __cplusplus #define CONST_CAST2(TOTYPE,FROMTYPE,X) (const_cast (X)) #else -#if defined(__GNUC__) && GCC_VERSION > 4000 +#ifdef __GNUC__ /* GCC 4.0.x has a bug where it may ICE on this expression, so does GCC 3.4.x (PR17436). */ #define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq) @@ -1182,13 +1141,9 @@ helper_const_non_const_cast (const char *p) /* Activate certain diagnostics as warnings (not errors via the -Werror flag). */ -#if GCC_VERSION >= 4003 -/* If asserts are disabled, activate -Wuninitialized as a warning (not - an error/-Werror). */ #ifndef ENABLE_ASSERT_CHECKING #pragma GCC diagnostic warning "-Wuninitialized" #endif -#endif #ifdef ENABLE_VALGRIND_ANNOTATIONS # ifdef HAVE_VALGRIND_MEMCHECK_H @@ -1229,13 +1184,8 @@ helper_const_non_const_cast (const char *p) /* In LTO -fwhole-program build we still want to keep the debug functions available for debugger. Mark them as used to prevent removal. */ -#if (GCC_VERSION > 4000) #define DEBUG_FUNCTION __attribute__ ((__used__)) #define DEBUG_VARIABLE __attribute__ ((__used__)) -#else -#define DEBUG_FUNCTION -#define DEBUG_VARIABLE -#endif /* General macro to extract bit Y of X. */ #define TEST_BIT(X, Y) (((X) >> (Y)) & 1) diff --git a/gcc/tree-vrp.cc b/gcc/tree-vrp.cc index 0cbd9d369ca..436fafcaa0f 100644 --- a/gcc/tree-vrp.cc +++ b/gcc/tree-vrp.cc @@ -2955,12 +2955,7 @@ vrp_asserts::find_switch_asserts (basic_block bb, gswitch *last) edge e; struct case_info *ci; size_t n = gimple_switch_num_labels (last); -#if GCC_VERSION >= 4000 unsigned int idx; -#else - /* Work around GCC 3.4 bug (PR 37086). */ - volatile unsigned int idx; -#endif bsi = gsi_for_stmt (last); op = gimple_switch_index (last); diff --git a/gcc/tree.cc b/gcc/tree.cc index 4cf3785270b..ac32282fc11 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -8775,7 +8775,7 @@ get_file_function_name (const char *type) return get_identifier (buf); } -#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_TREE_CHECKING /* Complain that the tree code of NODE does not match the expected 0 terminated list of trailing codes. The trailing code list can be diff --git a/gcc/tree.h b/gcc/tree.h index 8844471e9a5..b503295ced0 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -246,7 +246,7 @@ as_internal_fn (combined_fn code) /* When checking is enabled, errors will be generated if a tree node is accessed incorrectly. The macros die with a fatal error. */ -#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_TREE_CHECKING #define TREE_CHECK(T, CODE) \ (tree_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE))) @@ -2831,16 +2831,12 @@ extern void decl_value_expr_insert (tree, tree); /* The DECL_RTL for NODE, if it is set, or NULL, if it is not set. */ #define DECL_RTL_IF_SET(NODE) (DECL_RTL_SET_P (NODE) ? DECL_RTL (NODE) : NULL) -#if (GCC_VERSION >= 2007) #define DECL_RTL_KNOWN_SET(decl) __extension__ \ ({ tree const __d = (decl); \ gcc_checking_assert (DECL_RTL_SET_P (__d)); \ /* Dereference it so the compiler knows it can't be NULL even \ without assertion checking. */ \ &*DECL_RTL_IF_SET (__d); }) -#else -#define DECL_RTL_KNOWN_SET(decl) (&*DECL_RTL_IF_SET (decl)) -#endif /* In VAR_DECL and PARM_DECL nodes, nonzero means declared `register'. */ #define DECL_REGISTER(NODE) (DECL_WRTL_CHECK (NODE)->decl_common.decl_flag_0) @@ -3448,7 +3444,7 @@ extern tree build_target_option_node (struct gcc_options *opts, extern void prepare_target_option_nodes_for_pch (void); -#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_TREE_CHECKING inline tree tree_check (tree __t, const char *__f, int __l, const char *__g, tree_code __c) @@ -3663,10 +3659,8 @@ tree_int_cst_elt_check (tree __t, int __i, /* Workaround -Wstrict-overflow false positive during profiledbootstrap. */ -# if GCC_VERSION >= 4006 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-overflow" -#endif inline tree * tree_vec_elt_check (tree __t, int __i, @@ -3679,9 +3673,7 @@ tree_vec_elt_check (tree __t, int __i, return &CONST_CAST_TREE (__t)->vec.a[__i]; } -# if GCC_VERSION >= 4006 #pragma GCC diagnostic pop -#endif inline tree * omp_clause_elt_check (tree __t, int __i, @@ -3889,10 +3881,8 @@ non_type_check (const_tree __t, const char *__f, int __l, const char *__g) return __t; } -# if GCC_VERSION >= 4006 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-overflow" -#endif inline const_tree * tree_vec_elt_check (const_tree __t, int __i, @@ -3906,9 +3896,7 @@ tree_vec_elt_check (const_tree __t, int __i, //return &__t->vec.a[__i]; } -# if GCC_VERSION >= 4006 #pragma GCC diagnostic pop -#endif inline const_tree * omp_clause_elt_check (const_tree __t, int __i, @@ -3945,7 +3933,7 @@ tree_operand_length (const_tree node) return TREE_CODE_LENGTH (TREE_CODE (node)); } -#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007) +#ifdef ENABLE_TREE_CHECKING /* Special checks for TREE_OPERANDs. */ inline tree * @@ -4679,7 +4667,7 @@ extern unsigned HOST_WIDE_INT tree_to_uhwi (const_tree) ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE; extern poly_uint64 tree_to_poly_uint64 (const_tree) ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE; -#if !defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 4003) +#ifndef ENABLE_TREE_CHECKING extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT tree_to_shwi (const_tree t) { diff --git a/gcc/var-tracking.cc b/gcc/var-tracking.cc index 7c3ad0a55bd..2a3a0684e97 100644 --- a/gcc/var-tracking.cc +++ b/gcc/var-tracking.cc @@ -404,7 +404,7 @@ int_mem_offset (const_rtx mem) return 0; } -#if CHECKING_P && (GCC_VERSION >= 2007) +#if CHECKING_P /* Access VAR's Ith part's offset, checking that it's not a one-part variable. */ diff --git a/gcc/vec.h b/gcc/vec.h index 3ba7ea7edc2..3cb2772301c 100644 --- a/gcc/vec.h +++ b/gcc/vec.h @@ -295,10 +295,8 @@ va_heap::reserve (vec *&v, unsigned reserve, bool exact } -#if GCC_VERSION >= 4007 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wfree-nonheap-object" -#endif /* Free the heap space allocated for vector V. */ @@ -317,9 +315,7 @@ va_heap::release (vec *&v) v = NULL; } -#if GCC_VERSION >= 4007 #pragma GCC diagnostic pop -#endif /* Allocator type for GC vectors. Notice that we need the structure declaration even if GC is not enabled. */ @@ -2349,8 +2345,6 @@ make_array_slice (T *base, unsigned int size) return array_slice (base, size); } -#if (GCC_VERSION >= 3000) -# pragma GCC poison m_vec m_vecpfx m_vecdata -#endif +#pragma GCC poison m_vec m_vecpfx m_vecdata #endif // GCC_VEC_H diff --git a/gcc/wide-int.cc b/gcc/wide-int.cc index f61b9fefc13..ffd96e6b9d9 100644 --- a/gcc/wide-int.cc +++ b/gcc/wide-int.cc @@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see #define W_TYPE_SIZE HOST_BITS_PER_WIDE_INT /* Do not include longlong.h when compiler is clang-based. See PR61146. */ -#if GCC_VERSION >= 3000 && (W_TYPE_SIZE == 32 || defined (__SIZEOF_INT128__)) && !defined(__clang__) +#if (W_TYPE_SIZE == 32 || defined (__SIZEOF_INT128__)) && !defined(__clang__) typedef unsigned HOST_HALF_WIDE_INT UHWtype; typedef unsigned HOST_WIDE_INT UWtype; typedef unsigned int UQItype __attribute__ ((mode (QI)));