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

David Blaikie dblaikie at gmail.com
Tue Oct 29 16:57:50 PDT 2013


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);
> +  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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131029/8fb42fbb/attachment.html>


More information about the cfe-commits mailing list