Fix Wundef warning for __STDC_VERSION__

Message ID 20140702185850.GR20796@spoyarek.pnq.redhat.com
State Superseded
Headers

Commit Message

Siddhesh Poyarekar July 2, 2014, 6:58 p.m. UTC
  Hi,

c4c4124473c187b5c4642611390897666c3d3970 added the _Noreturn macro for
pre-C11 compilers, but it now throws a new Wundef warning during `make
check` for __STDC_VERSION__ which gcc does not define by default.  The
following patch fixes this in line with other uses of __STDC_VERSION__
in the file.

Siddhesh

	* misc/sys/cdefs.h: Check if __STDC_VERSION__ is defined
	before checking its value.
  

Comments

Roland McGrath July 2, 2014, 7:51 p.m. UTC | #1
> -#if !defined _Noreturn && __STDC_VERSION__ < 201112 && !__GNUC_PREREQ (4,7)
> +#if (!defined _Noreturn && defined __STDC_VERSION__ \
> +     && __STDC_VERSION__ < 201112 && !__GNUC_PREREQ (4,7))

I think this wants to be:

#if (!defined _Noreturn \
     && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
     &&  !__GNUC_PREREQ (4,7))
  

Patch

diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index a5c3224..e6e4e0d 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -382,7 +382,8 @@ 
 # define __glibc_likely(cond)	(cond)
 #endif
 
-#if !defined _Noreturn && __STDC_VERSION__ < 201112 && !__GNUC_PREREQ (4,7)
+#if (!defined _Noreturn && defined __STDC_VERSION__ \
+     && __STDC_VERSION__ < 201112 && !__GNUC_PREREQ (4,7))
 # if __GNUC_PREREQ (2,8)
 #  define _Noreturn __attribute__ ((__noreturn__))
 # else