From 31614f7c20bd8844ce91e4eeb7da389c78f5299f Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 23 Jan 2006 21:50:15 +0000
Subject: [PATCH] 	PR preprocessor/25717 	* init.c (cpp_init_builtins):
 If __STDC__ will not change value 	between system headers and other
 sources, define it as a normal 	macro rather than a builtin. 	*
 macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check 
 cpp_in_system_header condition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110144 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libcpp/ChangeLog | 11 ++++++++++-
 libcpp/init.c    |  8 +++++++-
 libcpp/macro.c   | 14 +++++---------
 3 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index b4fae0d48eec..3a4885fc950b 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,4 +1,13 @@
-2006-02-05  Paolo Bonzini  <bonzini@gnu.org>
+2006-01-23  Jakub Jelinek  <jakub@redhat.com>
+
+	PR preprocessor/25717
+	* init.c (cpp_init_builtins): If __STDC__ will not change value
+	between system headers and other sources, define it as a normal
+	macro rather than a builtin.
+	* macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
+	cpp_in_system_header condition.
+
+2006-01-05  Paolo Bonzini  <bonzini@gnu.org>
 
 	* Makefile.in: Use -MMD instead of -MD.
 
diff --git a/libcpp/init.c b/libcpp/init.c
index bbf2705b46c4..bf4c34cf5dc7 100644
--- a/libcpp/init.c
+++ b/libcpp/init.c
@@ -357,8 +357,14 @@ cpp_init_builtins (cpp_reader *pfile, int hosted)
 
   if (CPP_OPTION (pfile, traditional))
     n -= 2;
+  else if (! CPP_OPTION (pfile, stdc_0_in_system_headers)
+	   || CPP_OPTION (pfile, std))
+    {
+      n--;
+      _cpp_define_builtin (pfile, "__STDC__ 1");
+    }
 
-  for(b = builtin_array; b < builtin_array + n; b++)
+  for (b = builtin_array; b < builtin_array + n; b++)
     {
       cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
       hp->type = NT_MACRO;
diff --git a/libcpp/macro.c b/libcpp/macro.c
index 2f1a97497a1a..3204e553b02e 100644
--- a/libcpp/macro.c
+++ b/libcpp/macro.c
@@ -169,16 +169,12 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node)
 	 However, if (a) we are in a system header, (b) the option
 	 stdc_0_in_system_headers is true (set by target config), and
 	 (c) we are not in strictly conforming mode, then it has the
-	 value 0.  */
+	 value 0.  (b) and (c) are already checked in cpp_init_builtins.  */
     case BT_STDC:
-      {
-	if (cpp_in_system_header (pfile)
-	    && CPP_OPTION (pfile, stdc_0_in_system_headers)
-	    && !CPP_OPTION (pfile,std))
-	  number = 0;
-	else
-	  number = 1;
-      }
+      if (cpp_in_system_header (pfile))
+	number = 0;
+      else
+	number = 1;
       break;
 
     case BT_DATE:
-- 
GitLab