From 7eb3b9ec89e8f61bdc8d265955610561ef35d336 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Tue, 11 Jan 2005 20:19:35 +0000 Subject: [PATCH] re PR target/18761 (C++ ABI bug on OS X with embed types) 2005-01-11 Andrew Pinski PR target/18761 * g++.dg/abi/align1.C: New test. From-SVN: r93194 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/abi/align1.C | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 gcc/testsuite/g++.dg/abi/align1.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a28010510cf..f74ab33fc55 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-01-11 Andrew Pinski + + PR target/18761 + * g++.dg/abi/align1.C: New test. + 2005-01-11 Alan Modra * g++.dg/ext/altivec-3.C (baz, baz2): Check one component of structs diff --git a/gcc/testsuite/g++.dg/abi/align1.C b/gcc/testsuite/g++.dg/abi/align1.C new file mode 100644 index 00000000000..2a70bce601f --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/align1.C @@ -0,0 +1,27 @@ +// This was failuring on powerpc-darwin and powerpc-aix as +// we were taking the embeded type as the first field decl. +// This was PR target/18761. +// { dg-do run } + + +union A { + double d; +}; +union B { + enum E { e }; + double d; +}; +struct AlignA { + char c; + A a; +}; +struct AlignB { + char c; + B b; +}; +extern "C" void abort (); +int main () { + if ( __alignof__ (AlignA) != __alignof__ (AlignB)) + abort (); +} +