[llvm-commits] [llvm-gcc-4.2] r46334 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
Devang Patel
dpatel at apple.com
Thu Jan 24 15:56:38 PST 2008
Author: dpatel
Date: Thu Jan 24 17:56:38 2008
New Revision: 46334
URL: http://llvm.org/viewvc/llvm-project?rev=46334&view=rev
Log:
Fix 2008-01-24-StructAlignAndBitFields.c test case.
Bit-field type does not influence struct alignment.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46334&r1=46333&r2=46334&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Thu Jan 24 17:56:38 2008
@@ -1747,6 +1747,11 @@
// Handle bit-fields specially.
if (isBitfield(Field)) {
+ // Bit-field type does not influence structure alignment.
+ // For example, struct A { char a; short b; int c:25; char d; } does not
+ // have 4 byte alignment. To enforce this rule, always use packed struct.
+ if (!Info.isPacked())
+ return false;
DecodeStructBitField(Field, Info);
return true;
}
More information about the llvm-commits
mailing list