From 3999d26ead93990b244ada078073fb58fb8bb5be Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 5 Feb 2015 15:52:20 -0800 Subject: Add ersatz _Static_assert on older C hosts * misc/sys/cdefs.h (_Static_assert): Define a substitute, if on a pre-C11 C platform that is not known to support _Static_assert. --- misc/sys/cdefs.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'misc') diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index 09ee352e1f..99e94cce86 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -399,6 +399,14 @@ # endif #endif +#if (!defined _Static_assert && !defined __cplusplus \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ + && (!__GNUC_PREREQ (4, 6) || defined __STRICT_ANSI__)) +# define _Static_assert(expr, diagnostic) \ + extern int (*__Static_assert_function (void)) \ + [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] +#endif + #include #if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH -- cgit v1.2.1