Skip to content

Commit

Permalink
[clang] Bump AS_GNU to 1
Browse files Browse the repository at this point in the history
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
  • Loading branch information
rsandifo-arm committed Apr 13, 2023
1 parent bd41371 commit 053bdb7
Showing 1 changed file with 16 additions and 21 deletions.
37 changes: 16 additions & 21 deletions clang/include/clang/Basic/AttributeCommonInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class AttributeCommonInfo {
/// The style used to specify an attribute.
enum Syntax {
/// __attribute__((...))
AS_GNU,
AS_GNU = 1,

/// [[...]]
AS_CXX11,
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 053bdb7

Please sign in to comment.