[PATCH] D148148: [clang] Bump AS_GNU to 1
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG053bdb77b0ce: [clang] Bump AS_GNU to 1 (authored by rsandifo-arm). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148148/new/ https://reviews.llvm.org/D148148 Files: clang/include/clang/Basic/AttributeCommonInfo.h Index: clang/include/clang/Basic/AttributeCommonInfo.h === --- clang/include/clang/Basic/AttributeCommonInfo.h +++ clang/include/clang/Basic/AttributeCommonInfo.h @@ -25,7 +25,7 @@ /// The style used to specify an attribute. enum Syntax { /// __attribute__((...)) -AS_GNU, +AS_GNU = 1, /// [[...]] AS_CXX11, @@ -122,37 +122,32 @@ 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; Index: clang/include/clang/Basic/AttributeCommonInfo.h === --- clang/include/clang/Basic/AttributeCommonInfo.h +++ clang/include/clang/Basic/AttributeCommonInfo.h @@ -25,7 +25,7 @@ /// The style used to specify an attribute. enum Syntax { /// __attribute__((...)) -AS_GNU, +AS_GNU = 1, /// [[...]] AS_CXX11, @@ -122,37 +122,32 @@ 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(AttrKin
[PATCH] D148148: [clang] Bump AS_GNU to 1
rsandifo-arm updated this revision to Diff 512947. rsandifo-arm added a comment. Gah, sorry. Due to a botched git operation, I posted a first cut with a stupid typo, rather than the version that passed testing. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148148/new/ https://reviews.llvm.org/D148148 Files: clang/include/clang/Basic/AttributeCommonInfo.h Index: clang/include/clang/Basic/AttributeCommonInfo.h === --- clang/include/clang/Basic/AttributeCommonInfo.h +++ clang/include/clang/Basic/AttributeCommonInfo.h @@ -25,7 +25,7 @@ /// The style used to specify an attribute. enum Syntax { /// __attribute__((...)) -AS_GNU, +AS_GNU = 1, /// [[...]] AS_CXX11, @@ -122,37 +122,32 @@ 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; Index: clang/include/clang/Basic/AttributeCommonInfo.h === --- clang/include/clang/Basic/AttributeCommonInfo.h +++ clang/include/clang/Basic/AttributeCommonInfo.h @@ -25,7 +25,7 @@ /// The style used to specify an attribute. enum Syntax { /// __attribute__((...)) -AS_GNU, +AS_GNU = 1, /// [[...]] AS_CXX11, @@ -122,37 +122,32 @@ 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)
[PATCH] D148148: [clang] Bump AS_GNU to 1
erichkeane added inline comments. Comment at: clang/include/clang/Basic/AttributeCommonInfo.h:135 AttributeCommonInfo(const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, rsandifo-arm wrote: > erichkeane wrote: > > Did these two ctors swap places somehow? There's something goofy going on > > here? Or is this just to make the delegation of ctors more sensible? > Ah, yeah, I should have mentioned that, sorry. The most general constructor > was previously the second in the list. Like you say, I moved it up to make > the delegation more obvious. The other three keep their relative order. Thanks for explaining, sounds good to me. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148148/new/ https://reviews.llvm.org/D148148 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D148148: [clang] Bump AS_GNU to 1
rsandifo-arm added inline comments. Comment at: clang/include/clang/Basic/AttributeCommonInfo.h:135 AttributeCommonInfo(const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, erichkeane wrote: > Did these two ctors swap places somehow? There's something goofy going on > here? Or is this just to make the delegation of ctors more sensible? Ah, yeah, I should have mentioned that, sorry. The most general constructor was previously the second in the list. Like you say, I moved it up to make the delegation more obvious. The other three keep their relative order. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148148/new/ https://reviews.llvm.org/D148148 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D148148: [clang] Bump AS_GNU to 1
erichkeane added inline comments. Comment at: clang/include/clang/Basic/AttributeCommonInfo.h:28 /// __attribute__((...)) -AS_GNU, +AS_GNU = 1, Note for others: we're now at 11 items (10 items + starting at 1), stored in 4 bits. So this doesn't cause problems. In the future, once we're sure the '0' case isn't being used/abused for a while (god help my downstream...), we can start re-using 0. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148148/new/ https://reviews.llvm.org/D148148 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D148148: [clang] Bump AS_GNU to 1
erichkeane accepted this revision. erichkeane added a comment. This revision is now accepted and ready to land. This LGTM, though curious about the re-ordering. Comment at: clang/include/clang/Basic/AttributeCommonInfo.h:135 AttributeCommonInfo(const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, Did these two ctors swap places somehow? There's something goofy going on here? Or is this just to make the delegation of ctors more sensible? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148148/new/ https://reviews.llvm.org/D148148 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D148148: [clang] Bump AS_GNU to 1
rsandifo-arm created this revision. rsandifo-arm added reviewers: erichkeane, aaron.ballman. Herald added a project: All. rsandifo-arm requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. 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. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D148148 Files: clang/include/clang/Basic/AttributeCommonInfo.h Index: clang/include/clang/Basic/AttributeCommonInfo.h === --- clang/include/clang/Basic/AttributeCommonInfo.h +++ clang/include/clang/Basic/AttributeCommonInfo.h @@ -25,7 +25,7 @@ /// The style used to specify an attribute. enum Syntax { /// __attribute__((...)) -AS_GNU, +AS_GNU = 1, /// [[...]] AS_CXX11, @@ -122,37 +122,32 @@ 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, ScopeLoc(), +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, ScopeLoc(), K, +FormUsed) {} AttributeCommonInfo(AttributeCommonInfo &&) = default; AttributeCommonInfo(const AttributeCommonInfo &) = default; Index: clang/include/clang/Basic/AttributeCommonInfo.h === --- clang/include/clang/Basic/AttributeCommonInfo.h +++ clang/include/clang/Basic/AttributeCommonInfo.h @@ -25,7 +25,7 @@ /// The style used to specify an attribute. enum Syntax { /// __attribute__((...)) -AS_GNU, +AS_GNU = 1, /// [[...]] AS_CXX11, @@ -122,37 +122,32 @@ 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 FormUs