[MS] Fix packed struct layout for arrays of aligned non-record types
authorReid Kleckner <rnk@google.com>
Wed, 8 Apr 2020 21:05:54 +0000 (14:05 -0700)
committerReid Kleckner <rnk@google.com>
Wed, 15 Apr 2020 01:34:52 +0000 (18:34 -0700)
commit8da5b9083691b557f50f72ab099598bb291aec5f
tree02443b4e00ea380fb21f658e50fd03007d4975a3
parent33ffb62e23e7a7bece5618d5a7b54bdb401d0bcf
[MS] Fix packed struct layout for arrays of aligned non-record types

In particular, this affects Clang's vectors. Users encounter this issue
when a struct contains an __m128 type.

Fixes PR45420

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D77754
clang/lib/AST/ASTContext.cpp
clang/test/Layout/ms-aligned-array.c [new file with mode: 0644]