Index: lib/Sema/SemaDecl.cpp =================================================================== --- lib/Sema/SemaDecl.cpp +++ lib/Sema/SemaDecl.cpp @@ -15573,6 +15573,10 @@ if (!Completed) Record->completeDefinition(); + // Handle attributes before checking for alignas underalignment. + if (Attr) + ProcessDeclAttributeList(S, Record, Attr); + // We may have deferred checking for a deleted destructor. Check now. if (CXXRecordDecl *CXXRecord = dyn_cast(Record)) { auto *Dtor = CXXRecord->getDestructor(); @@ -15703,9 +15707,6 @@ CDecl->setIvarRBraceLoc(RBrac); } } - - if (Attr) - ProcessDeclAttributeList(S, Record, Attr); } /// \brief Determine whether the given integral value is representable within