Author: Richard Sandiford Date: 2023-04-13T10:14:50+01:00 New Revision: 053bdb77b0ce4506d15ed381b6db0dddafe52c3e
URL: https://github.com/llvm/llvm-project/commit/053bdb77b0ce4506d15ed381b6db0dddafe52c3e DIFF: https://github.com/llvm/llvm-project/commit/053bdb77b0ce4506d15ed381b6db0dddafe52c3e.diff LOG: [clang] Bump AS_GNU to 1 Following a suggestion from Erich in https://reviews.llvm.org/D148101, this patch bumps AS_GNU to 1 so that syntax 0 is invalid. It also asserts that the syntax is in range. Differential Revision: https://reviews.llvm.org/D148148 Added: Modified: clang/include/clang/Basic/AttributeCommonInfo.h Removed: ################################################################################ diff --git a/clang/include/clang/Basic/AttributeCommonInfo.h b/clang/include/clang/Basic/AttributeCommonInfo.h index a68f8d97e91a..a92dc0dad515 100644 --- a/clang/include/clang/Basic/AttributeCommonInfo.h +++ b/clang/include/clang/Basic/AttributeCommonInfo.h @@ -25,7 +25,7 @@ class AttributeCommonInfo { /// The style used to specify an attribute. enum Syntax { /// __attribute__((...)) - AS_GNU, + AS_GNU = 1, /// [[...]] AS_CXX11, @@ -122,37 +122,32 @@ class AttributeCommonInfo { AttributeCommonInfo(const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, - SourceLocation ScopeLoc, Form FormUsed) + SourceLocation ScopeLoc, Kind AttrKind, Form FormUsed) : AttrName(AttrName), ScopeName(ScopeName), AttrRange(AttrRange), - ScopeLoc(ScopeLoc), - AttrKind(getParsedKind(AttrName, ScopeName, FormUsed.getSyntax())), + ScopeLoc(ScopeLoc), AttrKind(AttrKind), SyntaxUsed(FormUsed.getSyntax()), SpellingIndex(FormUsed.getSpellingIndex()), - IsAlignas(FormUsed.isAlignas()) {} + IsAlignas(FormUsed.isAlignas()) { + assert(SyntaxUsed >= AS_GNU && SyntaxUsed <= AS_Implicit && + "Invalid syntax!"); + } AttributeCommonInfo(const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, - SourceLocation ScopeLoc, Kind AttrKind, Form FormUsed) - : AttrName(AttrName), ScopeName(ScopeName), AttrRange(AttrRange), - ScopeLoc(ScopeLoc), AttrKind(AttrKind), - SyntaxUsed(FormUsed.getSyntax()), - SpellingIndex(FormUsed.getSpellingIndex()), - IsAlignas(FormUsed.isAlignas()) {} + SourceLocation ScopeLoc, Form FormUsed) + : AttributeCommonInfo( + AttrName, ScopeName, AttrRange, ScopeLoc, + getParsedKind(AttrName, ScopeName, FormUsed.getSyntax()), + FormUsed) {} AttributeCommonInfo(const IdentifierInfo *AttrName, SourceRange AttrRange, Form FormUsed) - : AttrName(AttrName), ScopeName(nullptr), AttrRange(AttrRange), - ScopeLoc(), - AttrKind(getParsedKind(AttrName, ScopeName, FormUsed.getSyntax())), - SyntaxUsed(FormUsed.getSyntax()), - SpellingIndex(FormUsed.getSpellingIndex()), - IsAlignas(FormUsed.isAlignas()) {} + : AttributeCommonInfo(AttrName, nullptr, AttrRange, SourceLocation(), + FormUsed) {} AttributeCommonInfo(SourceRange AttrRange, Kind K, Form FormUsed) - : AttrName(nullptr), ScopeName(nullptr), AttrRange(AttrRange), ScopeLoc(), - AttrKind(K), SyntaxUsed(FormUsed.getSyntax()), - SpellingIndex(FormUsed.getSpellingIndex()), - IsAlignas(FormUsed.isAlignas()) {} + : AttributeCommonInfo(nullptr, nullptr, AttrRange, SourceLocation(), K, + FormUsed) {} AttributeCommonInfo(AttributeCommonInfo &&) = default; AttributeCommonInfo(const AttributeCommonInfo &) = default; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits