diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/attrib32.C')
-rw-r--r-- | gcc/testsuite/g++.dg/ext/attrib32.C | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/attrib32.C b/gcc/testsuite/g++.dg/ext/attrib32.C new file mode 100644 index 000000000..77f71ded8 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/attrib32.C @@ -0,0 +1,36 @@ +// PR c++/35315 + +typedef union { int i; } U __attribute__((transparent_union)); + +static void foo(U) {} +static void foo(int) {} + +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); +} + +// PR c++/36410 +struct A +{ + typedef union + { + int i; + } B __attribute__((transparent_union)); +}; + +void foo(A::B b) +{ + b.i; +} |