]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR preprocessor/25717 (-dD does not list all defined macros (in particular, __STDC__))
authorJakub Jelinek <jakub@gcc.gnu.org>
Mon, 23 Jan 2006 21:50:15 +0000 (22:50 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 23 Jan 2006 21:50:15 +0000 (22:50 +0100)
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.

From-SVN: r110144

libcpp/ChangeLog
libcpp/init.c
libcpp/macro.c

index b4fae0d48eecbbfbc412efce4d5c5ac614e5f470..3a4885fc950b978f98f645338bc3a839f1c7779d 100644 (file)
@@ -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.
 
index bbf2705b46c4cca516609b979ec34fb1cfca4fd8..bf4c34cf5dc7892e1f55bcf78621ee029cc62483 100644 (file)
@@ -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;
index 2f1a97497a1a1f047336e266c327ac02bc0cd678..3204e553b02e1cf64d29136025710ec6aad60542 100644 (file)
@@ -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: