public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/marxin/heads/fold-GCC_VERSION-for-old)] Fold GCC_VERSION >= $old_version to TRUE, otherwise to FALSE.
@ 2022-05-05 12:17 Martin Liska
0 siblings, 0 replies; only message in thread
From: Martin Liska @ 2022-05-05 12:17 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:2d70db3c2ae18943bc3a77a8bc6059fbeaf3b266
commit 2d70db3c2ae18943bc3a77a8bc6059fbeaf3b266
Author: Martin Liska <mliska@suse.cz>
Date: Tue Feb 1 12:40:59 2022 +0100
Fold GCC_VERSION >= $old_version to TRUE, otherwise to FALSE.
Right now, the minimal required version of GCC is 4.8.x
that is a version that well supports c++11.
gcc/ChangeLog:
* bitmap.cc (bitmap_popcount):
Fold GCC_VERSION >= $old_version to TRUE, otherwise to FALSE.
(bitmap_count_bits_in_word): Likewise.
(bitmap_single_bit_set_p): Likewise.
(bitmap_first_set_bit): Likewise.
(bitmap_last_set_bit): Likewise.
* bitmap.h (if): Likewise.
* config/ia64/ia64.cc (RWS_FIELD_TYPE): Likewise.
* config/rs6000/rs6000.h (if): Likewise.
* defaults.h: Likewise.
* diagnostic-core.h (if): Likewise.
(ATTRIBUTE_GCC_DIAG): Likewise.
* dwarf2cfi.cc (if): Likewise.
* dwarf2out.cc (if): Likewise.
(DWARF2_ASM_LINE_DEBUG_INFO): Likewise.
(DWARF2_ASM_VIEW_DEBUG_INFO): Likewise.
* gcc.cc (if): Likewise.
* genautomata.cc (struct state_ainsn_table): Likewise.
(regexp_mode_check_failed): Likewise.
(REGEXP_ONEOF): Likewise.
* genconditions.cc (write_header): Likewise.
(write_writer): Likewise.
* genmatch.cc: Likewise.
* genmodes.cc (GCC_INSN_MODES_INLINE_H): Likewise.
* genoutput.cc (output_insn_data): Likewise.
* ggc-page.cc (if): Likewise.
(prefetch): Likewise.
(ggc_internal_alloc): Likewise.
* ggc-tests.cc (test_finalization): Likewise.
* ggc.h (need_finalization_p): Likewise.
* hwint.cc (floor_log2): Likewise.
(ceil_log2): Likewise.
(exact_log2): Likewise.
(ctz_hwi): Likewise.
(clz_hwi): Likewise.
(ffs_hwi): Likewise.
(popcount_hwi): Likewise.
* hwint.h (HAVE_LONG_LONG): Likewise.
(SIZEOF_LONG_LONG): Likewise.
(sizeof_long_long_must_be_8[sizeof): Likewise.
(clz_hwi): Likewise.
(ctz_hwi): Likewise.
(ffs_hwi): Likewise.
(popcount_hwi): Likewise.
(exact_log2): Likewise.
(floor_log2): Likewise.
(ceil_log2): Likewise.
* ira-int.h: Likewise.
* machmode.h (mode_to_bytes): Likewise.
(mode_to_inner): Likewise.
(mode_to_unit_size): Likewise.
(mode_to_unit_precision): Likewise.
(mode_to_nunits): Likewise.
* output.h (ATTRIBUTE_ASM_FPRINTF): Likewise.
* pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Likewise.
* rtl.cc (dump_rtx_statistics): Likewise.
* rtl.h (test): Likewise.
(RTX_FLAG): Likewise.
(enum label_kind): Likewise.
* sbitmap.cc (sbitmap_popcount): Likewise.
(bitmap_count_bits): Likewise.
* stringpool.h (get_identifier_with_length): Likewise.
* system.h (HAVE_DESIGNATED_INITIALIZERS): Likewise.
(HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
(if): Likewise.
(__FUNCTION__): Likewise.
(__builtin_expect): Likewise.
(elif): Likewise.
(gcc_assert): Likewise.
(ALWAYS_INLINE): Likewise.
(WARN_UNUSED_RESULT): Likewise.
(STATIC_CONSTANT_P): Likewise.
(defined): Likewise.
(BROKEN_VALUE_INITIALIZATION): Likewise.
(DEBUG_FUNCTION): Likewise.
(DEBUG_VARIABLE): Likewise.
* tree-vrp.cc (vrp_asserts::find_switch_asserts): Likewise.
* tree.cc (get_file_function_name): Likewise.
* tree.h (as_internal_fn): Likewise.
(if): Likewise.
(DECL_RTL_KNOWN_SET): Likewise.
(prepare_target_option_nodes_for_pch): Likewise.
(tree_operand_length): Likewise.
(tree_to_poly_uint64): Likewise.
* var-tracking.cc (int_mem_offset): Likewise.
* vec.h (if): Likewise.
* wide-int.cc (defined): Likewise.
(if): Likewise.
gcc/cp/ChangeLog:
* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK):
Fold GCC_VERSION >= $old_version to TRUE, otherwise to FALSE.
(STRIP_TEMPLATE): Likewise.
* tree.cc (cp_tree_c_finish_parsing): Likewise.
gcc/fortran/ChangeLog:
* gfortran.h (ATTRIBUTE_GCC_GFC):
Fold GCC_VERSION >= $old_version to TRUE, otherwise to FALSE.
gcc/jit/ChangeLog:
* jit-common.h (GNU_PRINTF):
Fold GCC_VERSION >= $old_version to TRUE, otherwise to FALSE.
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;
}
\f
-#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 663fe7a20fc..e9c3cf2bad0 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -631,7 +631,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. */
@@ -2989,7 +2989,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;
}
\f
-#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
\f
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 <test_struct> ());
ASSERT_TRUE (need_finalization_p <test_struct_with_dtor> ());
-#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<typename T>
inline bool
need_finalization_p ()
{
-#if GCC_VERSION >= 4003
return !__has_trivial_destructor (T);
-#else
- return true;
-#endif
}
template<typename T>
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");
}
\f
-#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 <rtx_note *>::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 <memory> 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<TOTYPE> (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 5e8876d2b38..22df459c53e 100644
--- a/gcc/tree.cc
+++ b/gcc/tree.cc
@@ -8771,7 +8771,7 @@ get_file_function_name (const char *type)
return get_identifier (buf);
}
\f
-#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 82eb8ba39d2..c53d34f6a47 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<T, va_heap, vl_embed> *&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<T, va_heap, vl_embed> *&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<T> (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)));
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-05-05 12:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-05 12:17 [gcc(refs/users/marxin/heads/fold-GCC_VERSION-for-old)] Fold GCC_VERSION >= $old_version to TRUE, otherwise to FALSE Martin Liska
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).