Browse Source

configure: supported C23 'noreturn' keyword

Evgeny Grin (Karlson2k) 1 year ago
parent
commit
ec244662ad
1 changed files with 6 additions and 2 deletions
  1. 6 2
      configure.ac

+ 6 - 2
configure.ac

@@ -2582,7 +2582,9 @@ AC_CACHE_CHECK([for supported 'noreturn' keyword], [mhd_cv_decl_noreturn],
   [
   [
     mhd_cv_decl_noreturn="none"
     mhd_cv_decl_noreturn="none"
     CFLAGS="${CFLAGS_ac} ${user_CFLAGS} ${errattr_CFLAGS}"
     CFLAGS="${CFLAGS_ac} ${user_CFLAGS} ${errattr_CFLAGS}"
-    for decl_noret in '_Noreturn' '__attribute__((__noreturn__))' '__declspec(noreturn)'
+    MHD_SAVED_ac_c_werror_flag="$ac_c_werror_flag"
+    ac_c_werror_flag=yes
+    for decl_noret in ['[[noreturn]]'] '_Noreturn' '__attribute__((__noreturn__))' '__declspec(noreturn)'
     do
     do
       AC_LINK_IFELSE([AC_LANG_SOURCE(
       AC_LINK_IFELSE([AC_LANG_SOURCE(
           [[
           [[
@@ -2611,7 +2613,9 @@ int main (int argc, char *const *argv)
       )
       )
       AS_IF([test "x${mhd_cv_decl_noreturn}" != "xnone"], [break])
       AS_IF([test "x${mhd_cv_decl_noreturn}" != "xnone"], [break])
     done
     done
-   CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
+    ac_c_werror_flag="$MHD_SAVED_ac_c_werror_flag"
+    AS_UNSET([MHD_SAVED_ac_c_werror_flag])
+    CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
   ]
   ]
 )
 )
 AS_VAR_IF([mhd_cv_decl_noreturn], ["none"],
 AS_VAR_IF([mhd_cv_decl_noreturn], ["none"],