X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fmacro.h;h=79bee0396c3a52c4bed07f28f1878915bad8b282;hb=db69869f264af2d1afcdd3e573e0e9fdd5bef065;hp=2b5b3fdfe0038e3c74e419441f7621f68aad9d29;hpb=ec202eae8e84a4c99f054f771cb832046cb8769f;p=elogind.git diff --git a/src/shared/macro.h b/src/shared/macro.h index 2b5b3fdfe..79bee0396 100644 --- a/src/shared/macro.h +++ b/src/shared/macro.h @@ -30,7 +30,6 @@ #define _printf_(a,b) __attribute__ ((format (printf, a, b))) #define _alloc_(...) __attribute__ ((alloc_size(__VA_ARGS__))) #define _sentinel_ __attribute__ ((sentinel)) -#define _noreturn_ __attribute__((noreturn)) #define _unused_ __attribute__ ((unused)) #define _destructor_ __attribute__ ((destructor)) #define _pure_ __attribute__ ((pure)) @@ -300,7 +299,8 @@ do { \ _found; \ }) -/* Define C11 thread_local attribute even on older compilers */ +/* Define C11 thread_local attribute even on older gcc compiler + * version */ #ifndef thread_local /* * Don't break on glibc < 2.16 that doesn't define __STDC_NO_THREADS__ @@ -313,4 +313,14 @@ do { \ #endif #endif +/* Define C11 noreturn without and even on older gcc + * compiler versions */ +#ifndef noreturn +#if __STDC_VERSION__ >= 201112L +#define noreturn _Noreturn +#else +#define noreturn __attribute__((noreturn)) +#endif +#endif + #include "log.h"