Good catch!  This actually should have been tested years ago because it's
never worked =)
Activated in revision 193664.


On Tue, Oct 29, 2013 at 4:57 PM, David Blaikie <[email protected]> wrote:

>
>
>
> On Tue, Oct 29, 2013 at 4:49 PM, Warren Hunt <[email protected]> wrote:
>
>> Author: whunt
>> Date: Tue Oct 29 18:49:26 2013
>> New Revision: 193661
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=193661&view=rev
>> Log:
>> Fixing code gen to handle microsoft layouts for which size % alignment
>> != 0
>>
>
> Test case?
>
>
>>
>>
>> Modified:
>>     cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp
>>
>> Modified: cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp?rev=193661&r1=193660&r2=193661&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp (original)
>> +++ cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp Tue Oct 29 18:49:26
>> 2013
>> @@ -203,6 +203,9 @@ public:
>>  void CGRecordLayoutBuilder::Layout(const RecordDecl *D) {
>>    Alignment = Types.getContext().getASTRecordLayout(D).getAlignment();
>>    Packed = D->hasAttr<PackedAttr>();
>> +  const ASTRecordLayout &Layout =
>> Types.getContext().getASTRecordLayout(D);
>> +  if (Layout.getSize() % Layout.getAlignment() != 0)
>> +    Packed = true;
>>
>>    if (D->isUnion()) {
>>      LayoutUnion(D);
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> [email protected]
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to