As we require a c++11 compliant compiler, the #if __cplusplus >= 201103L conditional build is always true.
Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin gcc/ChangeLog: * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT. * system.h (STATIC_ASSERT): Define always as static_assert. --- gcc/basic-block.h | 5 +---- gcc/system.h | 9 +-------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/gcc/basic-block.h b/gcc/basic-block.h index e3fff1f6975..21a9b24dbf9 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -158,10 +158,7 @@ struct GTY((chain_next ("%h.next_bb"), chain_prev ("%h.prev_bb"))) basic_block_d /* This ensures that struct gimple_bb_info is smaller than struct rtl_bb_info, so that inlining the former into basic_block_def is the better choice. */ -typedef int __assert_gimple_bb_smaller_rtl_bb - [(int) sizeof (struct rtl_bb_info) - - (int) sizeof (struct gimple_bb_info)]; - +STATIC_ASSERT (sizeof (rtl_bb_info) >= sizeof (gimple_bb_info)); #define BB_FREQ_MAX 10000 diff --git a/gcc/system.h b/gcc/system.h index 1688b763ef5..48145951337 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -801,14 +801,7 @@ extern void fancy_abort (const char *, int, const char *) #define STATIC_CONSTANT_P(X) (__builtin_constant_p (X) && (X)) -/* static_assert (COND, MESSAGE) is available in C++11 onwards. */ -#if __cplusplus >= 201103L -#define STATIC_ASSERT(X) \ - static_assert ((X), #X) -#else -#define STATIC_ASSERT(X) \ - typedef int assertion1[(X) ? 1 : -1] ATTRIBUTE_UNUSED -#endif +#define STATIC_ASSERT(X) static_assert ((X), #X) /* Provide a fake boolean type. We make no attempt to use the C99 _Bool, as it may not be available in the bootstrap compiler, -- 2.36.0