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; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits