OSDN Git Service

gcc/ChangeLog:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Feb 2007 01:35:10 +0000 (01:35 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Feb 2007 01:35:10 +0000 (01:35 +0000)
PR debug/30189
* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
even if cv-qualification is the same.
gcc/testsuite/ChangeLog:
PR debug/30189
* gcc.dg/pr30189.c: New test.

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

gcc/ChangeLog
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr30189.c [new file with mode: 0644]

index b09ca01..01aa9dc 100644 (file)
@@ -1,3 +1,9 @@
+2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/30189
+       * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
+       even if cv-qualification is the same.
+
 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
 
        * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
index 186c979..d529d8c 100644 (file)
@@ -8519,9 +8519,11 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
          gen_type_die (qualified_type, context_die);
          return lookup_type_die (qualified_type);
        }
-      else if (DECL_ORIGINAL_TYPE (name)
-              && (is_const_type < TYPE_READONLY (dtype)
-                  || is_volatile_type < TYPE_VOLATILE (dtype)))
+      else if (is_const_type < TYPE_READONLY (dtype)
+              || is_volatile_type < TYPE_VOLATILE (dtype)
+              || (is_const_type <= TYPE_READONLY (dtype)
+                  && is_volatile_type <= TYPE_VOLATILE (dtype)
+                  && DECL_ORIGINAL_TYPE (name) != type))
        /* cv-unqualified version of named type.  Just use the unnamed
           type to which it refers.  */
        return modified_type_die (DECL_ORIGINAL_TYPE (name),
index 9723b16..abfefcc 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/30189
+       * gcc.dg/pr30189.c: New test.
+
 2007-02-05      Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
 
         * gcc.dg/i386-cpuid.h: Test whether SSE4A is supported
diff --git a/gcc/testsuite/gcc.dg/pr30189.c b/gcc/testsuite/gcc.dg/pr30189.c
new file mode 100644 (file)
index 0000000..6aa963e
--- /dev/null
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-g -O" } */
+
+extern void foo (void);
+
+static
+void baz (int i)
+{
+  foo ();
+  typedef char A[i];
+  struct { A b; } *x = 0;
+}
+
+void
+bar (i)
+{
+  baz (i);
+}