[clang] [Clang][Windows] Preserve natural alignment for vector and x86_fp80 arrays under #pragma pack. (PR #208256)
Zahira Ammarguellat via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 23 07:06:24 PDT 2026
================
@@ -2547,9 +2558,19 @@ TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const {
const ASTRecordLayout &Layout = getASTRecordLayout(RD);
Width = toBits(Layout.getSize());
Align = toBits(Layout.getAlignment());
- AlignRequirement = RD->hasAttr<AlignedAttr>()
- ? AlignRequirementKind::RequiredByRecord
- : AlignRequirementKind::None;
+ if (RD->hasAttr<AlignedAttr>()) {
+ AlignRequirement = AlignRequirementKind::RequiredByRecord;
+ } else if (llvm::any_of(RD->fields(), [this](const FieldDecl *FD) {
+ return getTypeInfo(FD->getType()).AlignRequirement ==
+ AlignRequirementKind::ResistPragmaPack;
+ })) {
----------------
zahiraam wrote:
Done.
https://github.com/llvm/llvm-project/pull/208256
More information about the cfe-commits
mailing list