2011-12-16 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Dec 2011 14:31:14 +0000 (14:31 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Dec 2011 14:31:14 +0000 (14:31 +0000)
PR lto/51572
* dwarf2out.c (gen_type_die_with_usage): Use the context of
the TYPE_DECL as well if it is file-scope.

* gcc.dg/lto/pr51572-1_0.c: New testcase.

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

gcc/ChangeLog
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/lto/pr51572-1_0.c [new file with mode: 0644]

index 44e31b5..94ebbc4 100644 (file)
@@ -1,3 +1,9 @@
+2011-12-16  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/51572
+       * dwarf2out.c (gen_type_die_with_usage): Use the context of
+       the TYPE_DECL as well if it is file-scope.
+
 2011-12-15  DJ Delorie  <dj@redhat.com>
 
        * config/rl78/rl78.md (return): Rename to rl78_return.
index 768ecaf..d5f469c 100644 (file)
@@ -18842,8 +18842,9 @@ gen_type_die_with_usage (tree type, dw_die_ref context_die,
 
       /* Use the DIE of the containing namespace as the parent DIE of
          the type description DIE we want to generate.  */
-      if (DECL_CONTEXT (TYPE_NAME (type))
-         && TREE_CODE (DECL_CONTEXT (TYPE_NAME (type))) == NAMESPACE_DECL)
+      if (DECL_FILE_SCOPE_P (TYPE_NAME (type))
+         || (DECL_CONTEXT (TYPE_NAME (type))
+             && TREE_CODE (DECL_CONTEXT (TYPE_NAME (type))) == NAMESPACE_DECL))
        context_die = get_context_die (DECL_CONTEXT (TYPE_NAME (type)));
 
       TREE_ASM_WRITTEN (type) = 1;
index c38491b..21b44c6 100644 (file)
@@ -1,3 +1,8 @@
+2011-12-16  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/51572
+       * gcc.dg/lto/pr51572-1_0.c: New testcase.
+
 2011-12-15  Jason Merrill  <jason@redhat.com>
 
        PR c++/51458
diff --git a/gcc/testsuite/gcc.dg/lto/pr51572-1_0.c b/gcc/testsuite/gcc.dg/lto/pr51572-1_0.c
new file mode 100644 (file)
index 0000000..dfe5297
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-lto-do link } */
+/* { dg-lto-options { { -flto -g } } } */
+
+typedef int T;
+void fn (void)
+{
+  static T t;
+}
+int main() {}