mirror of git://gcc.gnu.org/git/gcc.git
Use static_assert for STATIC_ASSERT for C++11 onwards
C++11 has a static_assert (COND, MESSAGE) which gives more readable error messages for STATIC_ASSERT than our current implementation. This patch makes us use it if __cplusplus >= 201103L There's also a provisional static_assert (COND) in C++1z, but presumably we should wait until that one is fully standardized before using it. gcc/ChangeLog: * system.h (STATIC_ASSERT): Use static_assert if building with C++11 onwards. From-SVN: r238786
This commit is contained in:
parent
270430ff3e
commit
81a12b7606
|
|
@ -1,3 +1,8 @@
|
|||
2016-07-27 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
* system.h (STATIC_ASSERT): Use static_assert if building
|
||||
with C++11 onwards.
|
||||
|
||||
2016-07-27 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/72517
|
||||
|
|
|
|||
|
|
@ -752,9 +752,14 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
|
|||
#define STATIC_CONSTANT_P(X) (false && (X))
|
||||
#endif
|
||||
|
||||
/* Until we can use C++11's static_assert. */
|
||||
/* 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
|
||||
|
||||
/* Provide a fake boolean type. We make no attempt to use the
|
||||
C99 _Bool, as it may not be available in the bootstrap compiler,
|
||||
|
|
|
|||
Loading…
Reference in New Issue