diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/union1.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/union1.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/union1.C b/gcc/testsuite/g++.old-deja/g++.brendan/union1.C new file mode 100644 index 000000000..ffc5555d7 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.brendan/union1.C @@ -0,0 +1,22 @@ +// { dg-do run } +// GROUPS passed unions +// This is fixed by finish_anon_union doing a string_cst_equal check on +// the DECL_SIZE of the decls, instead of comparing the DECL_SIZE nodes. + +// The compiler currently fails to allocate space for the static union. + + unsigned + hash(const double d) + { + static union { + unsigned asint[2]; + double asdouble; + }; + asdouble = d; + return asint[0] ^ asint[1]; + } + +int main () +{ + hash (3.1415); +} |