http://llvm.org/bugs/show_bug.cgi?id=5996
Summary: ARM: llvm-gcc assertion failure converting a union type
Product: new-bugs
Version: trunk
Platform: Macintosh
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: new bugs
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
The SingleSource/UnitTests/2006-01-23-UnionInit.c nightly test causes as
assertion failure for arm-darwin:
Assertion failed: (LLVMStructSize < GCCTypeSize && "LLVM type size doesn't
match GCC type size!"), function ConvertRECORD, file llvm-types.cpp, line 2201.
(Normally I run the nightly testsuite with a release build so this assertion
isn't checked. Apparently the
failure is relatively harmless because the test passes.)
I looked at this briefly. The offending type is:
struct bt1 {
signed dv1:4;
signed ev1:6;
unsigned char fv1[1];
}
For the llvm type, the 2 bitfields are translated to an i16 type, since they
are too big for an i8. That causes the alignment of the struct to increase to
16 bits, which then causes the size to be padded out to 32 bits. This may be
fallout from my change r82630, so I'll take a look at it.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs