diff options
author | Lucas De Marchi <lucas.demarchi@intel.com> | 2015-02-26 13:02:04 -0300 |
---|---|---|
committer | Lucas De Marchi <lucas.demarchi@intel.com> | 2015-02-26 13:15:14 -0300 |
commit | 16a62c7ab3846a1996624cccc0e16dd4adb5deb0 (patch) | |
tree | a746b3b7333885cdf7fea4141cc6bb97a4f8c3ba | |
parent | 481ad14550087c77c9df6d117c7a975a38a4ad33 (diff) | |
download | kmod-16a62c7ab3846a1996624cccc0e16dd4adb5deb0.tar.gz |
shared: avoid checking for __STDC_VERSION__
Since we pass -std=gnu99 to the compiler __STDC_VERSION__ is defined to
199901. Even in this case we can use _Noreturn. Delegate the testing to
the configure phase with a compile test.
In future we want to stop using AC_PROG_CC_99 and start using the new
AC_PROG_CC from autoconf 2.70, which tries to choose the most recent
standard.
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | shared/macro.h | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 3ba65cc..ecf3e83 100644 --- a/configure.ac +++ b/configure.ac @@ -65,6 +65,14 @@ AC_COMPILE_IFELSE( AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) +AC_MSG_CHECKING([whether _Noreturn is supported]) +AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([[_Noreturn int foo(void) { exit(0); }]])], + [AC_DEFINE([HAVE_NORETURN], [1], [Define if _Noreturn is available]) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + + ##################################################################### # --with- ##################################################################### diff --git a/shared/macro.h b/shared/macro.h index a081a49..4fc5405 100644 --- a/shared/macro.h +++ b/shared/macro.h @@ -63,7 +63,7 @@ /* Define C11 noreturn without <stdnoreturn.h> and even on older gcc * compiler versions */ #ifndef noreturn -#if __STDC_VERSION__ >= 201112L +#if defined(HAVE_NORETURN) #define noreturn _Noreturn #else #define noreturn __attribute__((noreturn)) |