OSDN Git Service

2010-09-24 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 2010 13:21:30 +0000 (13:21 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 2010 13:21:30 +0000 (13:21 +0000)
* c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
Make sure to not call set_type_context with error_mark_node.
* langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.

* gcc.dg/lto/20091006-2_0.c: Prune warnings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164591 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-decl.c
gcc/langhooks.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/lto/20091006-2_0.c

index 75d35ba..d8c5125 100644 (file)
@@ -1,5 +1,11 @@
 2010-09-24  Richard Guenther  <rguenther@suse.de>
 
+       * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
+       Make sure to not call set_type_context with error_mark_node.
+       * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
+
+2010-09-24  Richard Guenther  <rguenther@suse.de>
+
        * Makefile.in (OBJS-onestep): Remove.
        (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
        (libbackend.a): Remove onestep support.
index f8be06b..35f3d29 100644 (file)
@@ -1203,15 +1203,14 @@ pop_scope (void)
              DECL_CHAIN (extp) = BLOCK_VARS (block);
              BLOCK_VARS (block) = extp;
            }
-         /* If this is the file scope, and we are processing more
-            than one translation unit in this compilation, set
-            DECL_CONTEXT of each decl to the TRANSLATION_UNIT_DECL.
-            This makes same_translation_unit_p work, and causes
-            static declarations to be given disambiguating suffixes.  */
-         if (scope == file_scope && num_in_fnames > 1)
+         /* If this is the file scope set DECL_CONTEXT of each decl to
+            the TRANSLATION_UNIT_DECL.  This makes same_translation_unit_p
+            work.  */
+         if (scope == file_scope)
            {
              DECL_CONTEXT (p) = context;
-             if (TREE_CODE (p) == TYPE_DECL)
+             if (TREE_CODE (p) == TYPE_DECL
+                 && TREE_TYPE (p) != error_mark_node)
                set_type_context (TREE_TYPE (p), context);
            }
 
index 7a58508..ce7522b 100644 (file)
@@ -176,7 +176,7 @@ lhd_set_decl_assembler_name (tree decl)
      is less than the whole compilation.  Concatenate a distinguishing
      number - we use the DECL_UID.  */
 
-  if (TREE_PUBLIC (decl) || DECL_CONTEXT (decl) == NULL_TREE)
+  if (TREE_PUBLIC (decl) || DECL_FILE_SCOPE_P (decl))
     id = targetm.mangle_decl_assembler_name (decl, DECL_NAME (decl));
   else
     {
index e3c92a3..ea031cc 100644 (file)
@@ -1,3 +1,7 @@
+2010-09-24  Richard Guenther  <rguenther@suse.de>
+
+       * gcc.dg/lto/20091006-2_0.c: Prune warnings.
+
 2010-09-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
 
        * g++.dg/debug/dwarf2/nested-2.C: Permit the ARM @ character
index f818992..abe12c4 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-lto-do link } */
+/* { dg-extra-ld-options "-w" } */
 
 extern int a[10];
 int main() { return 0; }