summaryrefslogtreecommitdiff
path: root/lib/_Noreturn.h
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2019-12-06 15:16:15 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2019-12-06 15:17:08 -0800
commitc4cd2a0b9f251ed830ef32ac6537e62ae5e3d944 (patch)
tree25aec8ec7432bae87fd6b38f06a6d191d96151c4 /lib/_Noreturn.h
parent99ad65eda44e3b6edcc51cf0fb70ea499c3ccb07 (diff)
downloademacs-c4cd2a0b9f251ed830ef32ac6537e62ae5e3d944.tar.gz
Update from Gnulib
This incorporates: 2019-12-06 nstrftime: better width support for %N, %z 2019-12-03 Avoid hassles caused by [[noreturn]] in C++ 2019-12-02 Fix mistakes in --enable-threads=isoc fixes from 2019-12-01 * admin/merge-gnulib (AVOIDED_MODULES): Avoid pthread-h. * lib/_Noreturn.h, lib/nstrftime.c, m4/gnulib-common.m4: * m4/timer_time.m4: Copy from Gnulib. * lib/gnulib.mk.in: Regenerate.
Diffstat (limited to 'lib/_Noreturn.h')
-rw-r--r--lib/_Noreturn.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/_Noreturn.h b/lib/_Noreturn.h
index db9b45554c5..7570f828883 100644
--- a/lib/_Noreturn.h
+++ b/lib/_Noreturn.h
@@ -17,7 +17,14 @@
#ifndef _Noreturn
# if (defined __cplusplus \
&& ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
- || (defined _MSC_VER && 1900 <= _MSC_VER)))
+ || (defined _MSC_VER && 1900 <= _MSC_VER)) \
+ && 0)
+ /* [[noreturn]] is not practically usable, because with it the syntax
+ extern _Noreturn void func (...);
+ would not be valid; such a declaration would only be valid with 'extern'
+ and '_Noreturn' swapped, or without the 'extern' keyword. However, some
+ AIX system header files and several gnulib header files use precisely
+ this syntax with 'extern'. */
# define _Noreturn [[noreturn]]
# elif ((!defined __cplusplus || defined __clang__) \
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \