From 29b9f9415f47e9bd19fc9a0ce923f013e5a41f68 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 12 Jul 2011 01:15:20 -0700 Subject: [PATCH] _Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER. * build-aux/_Noreturn.h (_Noreturn): Ignore __STDC_VERSION__. Reparenthesize to avoid GCC warning. Support Microsoft's syntax. * m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise. --- ChangeLog | 6 ++++++ build-aux/_Noreturn.h | 6 ++++-- m4/gnulib-common.m4 | 8 +++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 682452467..28973716c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-07-12 Paul Eggert + _Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER. + * build-aux/_Noreturn.h (_Noreturn): Ignore __STDC_VERSION__. + Reparenthesize to avoid GCC warning. + Support Microsoft's syntax. + * m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise. + _Noreturn-tests: remove module * modules/_Noreturn-tests: Remove. * modules/stdnoreturn-tests (Files): Remove tests/test-_Noreturn.c. diff --git a/build-aux/_Noreturn.h b/build-aux/_Noreturn.h index e30929218..1a7b4daed 100644 --- a/build-aux/_Noreturn.h +++ b/build-aux/_Noreturn.h @@ -1,7 +1,9 @@ -#if ! defined _Noreturn && __STDC_VERSION__ < 201000 -# if (3 <= __GNUC__ || __GNUC__ == 2 && 8 <= __GNUC_MINOR__ \ +#ifndef _Noreturn +# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index f3f0a7d16..6b5923a0e 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 27 +# gnulib-common.m4 serial 28 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -14,10 +14,12 @@ AC_DEFUN([gl_COMMON], [ AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of draft C1X. */ -#if ! defined _Noreturn && __STDC_VERSION__ < 201000L -# if (3 <= __GNUC__ || __GNUC__ == 2 && 8 <= __GNUC_MINOR__ \ +#ifndef _Noreturn +# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif -- 2.11.0