From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 29 Apr 2012 23:00:14 +0000 (-0700)
Subject: _Noreturn: future-proof non-GNU and non-MSVC compilers
X-Git-Tag: v0.1~722
X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=2170abddc59962473ce4441596e8a52db5385e54;p=gnulib.git

_Noreturn: future-proof non-GNU and non-MSVC compilers

* build-aux/snippet/_Noreturn.h (_Noreturn):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
Do not define _Noreturn if __STDC_VERSION__ indicates this is
C11 or later.  This is more likely to work with random future C
compilers that are neither GNUish nor MSVCish.  See Vincent Lefevre in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-04/msg00195.html>.
---

diff --git a/ChangeLog b/ChangeLog
index 9d5195f498..baff3762c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2012-04-29  Paul Eggert  <eggert@cs.ucla.edu>
 
+	_Noreturn: future-proof non-GNU and non-MSVC compilers
+	* build-aux/snippet/_Noreturn.h (_Noreturn):
+	* m4/gnulib-common.m4 (gl_COMMON_BODY):
+	Do not define _Noreturn if __STDC_VERSION__ indicates this is
+	C11 or later.  This is more likely to work with random future C
+	compilers that are neither GNUish nor MSVCish.  See Vincent Lefevre in
+	<http://lists.gnu.org/archive/html/bug-gnulib/2012-04/msg00195.html>.
+
 	exclude: handle wildcards with FNM_EXTMATCH
 	* lib/exclude.c (fnmatch_pattern_has_wildcards): Also treat '+(',
 	'+@', '!(' as wildcards, if FNM_EXTMATCH.  Make it clear in a
diff --git a/build-aux/snippet/_Noreturn.h b/build-aux/snippet/_Noreturn.h
index 1a7b4daed0..c44ad89b7c 100644
--- a/build-aux/snippet/_Noreturn.h
+++ b/build-aux/snippet/_Noreturn.h
@@ -1,4 +1,4 @@
-#ifndef _Noreturn
+#if !defined _Noreturn && __STDC_VERSION__ < 201112
 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
       || 0x5110 <= __SUNPRO_C)
 #  define _Noreturn __attribute__ ((__noreturn__))
diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4
index ae4d25483c..ab3c43d7b0 100644
--- a/m4/gnulib-common.m4
+++ b/m4/gnulib-common.m4
@@ -14,7 +14,7 @@ AC_DEFUN([gl_COMMON], [
 AC_DEFUN([gl_COMMON_BODY], [
   AH_VERBATIM([_Noreturn],
 [/* The _Noreturn keyword of C11.  */
-#ifndef _Noreturn
+#if !defined _Noreturn && __STDC_VERSION__ < 201112
 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
       || 0x5110 <= __SUNPRO_C)
 #  define _Noreturn __attribute__ ((__noreturn__))