re PR c++/35315 (ICE with attribute transparent_union)

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  Douglas Gregor  <doug.gregor@gmail.com>

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

From-SVN: r132779
This commit is contained in:
Douglas Gregor 2008-02-29 21:41:38 +00:00 committed by Doug Gregor
parent 359be76ebb
commit f31c9f09a1
4 changed files with 24 additions and 0 deletions

View 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,

View 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"

View 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);
}

View File

@ -3723,5 +3723,7 @@ build_duplicate_type (tree type)
pointer_map_destroy (id.decl_map);
TYPE_CANONICAL (type) = type;
return type;
}