OSDN Git Service

2008-02-29 Douglas Gregor <doug.gregor@gmail.com>
authordgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Feb 2008 21:41:38 +0000 (21:41 +0000)
committerdgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Feb 2008 21:41:38 +0000 (21:41 +0000)
PR c++/35315
* tree-inline.c (build_duplicate_type): When we make a
duplicate type, make it unique in the canonical types system.

2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>

PR c++/35315
* g++.dg/ext/attrib32.C: Add another test case.

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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/attrib32.C
gcc/tree-inline.c

index a3a5540..32be0dd 100644 (file)
@@ -1,3 +1,9 @@
+2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/35315
+       * tree-inline.c (build_duplicate_type): When we make a
+       duplicate type, make it unique in the canonical types system.
+
 2008-02-29  Tom Tromey  <tromey@redhat.com>
 
        * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
index 951afe1..ff4c560 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/35315
+       * g++.dg/ext/attrib32.C: Add another test case.
+
 2008-02-29  Tom Tromey  <tromey@redhat.com>
 
        * g++.dg/warn/pragma-system_header2.C: Ignore "included from"
index 523015c..39363bb 100644 (file)
@@ -9,3 +9,14 @@ void bar()
 {
   foo(0);
 }
+
+typedef union U1 { int i; } U2 __attribute__((transparent_union));
+
+static void foo2(U1) {}
+static void foo2(U2) {}
+
+void bar2(U1 u1, U2 u2)
+{
+  foo2(u1);
+  foo2(u2);
+}
index ea0bac6..74895a8 100644 (file)
@@ -3723,5 +3723,7 @@ build_duplicate_type (tree type)
 
   pointer_map_destroy (id.decl_map);
 
+  TYPE_CANONICAL (type) = type;
+
   return type;
 }