This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/18761] New: C++ ABI bug on OS X with enums
- From: "mmitchel at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Dec 2004 18:47:04 -0000
- Subject: [Bug c++/18761] New: C++ ABI bug on OS X with enums
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This program does not give the same alignment for A and B, which is very weird,
since the only difference is that B contains a declaration of a nested type.
The culprit here is the Darwin round_type_align code. I do not know if this bug
still occurs with GCC 4.0.
extern "C" int printf (const char*, ...);
union A {
double d;
};
union B {
enum E { e };
double d;
};
struct AlignA {
char c;
A a;
};
struct AlignB {
char c;
B b;
};
int main () {
printf ("Alignment of AlignA = %d\n", __alignof__ (AlignA));
printf ("Alignment of AlignB = %d\n", __alignof__ (AlignB));
}
--
Summary: C++ ABI bug on OS X with enums
Product: gcc
Version: 3.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mmitchel at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: powerpc-apple-darwin7.4.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18761