r193661 - Fixing code gen to handle microsoft layouts for which size % alignment

Warren Hunt whunt at google.com
Tue Oct 29 17:19:15 PDT 2013


Good call, I hadn't realized layout was already referenced 2 lines above.
 Fixed in 193665.


On Tue, Oct 29, 2013 at 5:01 PM, Reid Kleckner <rnk at google.com> wrote:

> On Tue, Oct 29, 2013 at 4:57 PM, David Blaikie <dblaikie at gmail.com> wrote:
>>
>> On Tue, Oct 29, 2013 at 4:49 PM, Warren Hunt <whunt at google.com> 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);
>>>
>>
> You can reuse the ASTRecordLayout lookup from the alignment check.  I
> think it's a DenseMap lookup, which is worth saving.
>
>
>> +  if (Layout.getSize() % Layout.getAlignment() != 0)
>>> +    Packed = true;
>>>
>>>    if (D->isUnion()) {
>>>      LayoutUnion(D);
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131029/83e3a1f4/attachment.html>


More information about the cfe-commits mailing list