diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-01-29 10:02:16 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-01-29 10:02:16 +0000 |
commit | d03de6aaa312d57dcd6e2bc76bed1e89f5c5019d (patch) | |
tree | 6eb0b96b1c0883d75befbcd1d33e372f78493b93 /include/clang/Sema | |
parent | 93384a910cb98f3a128b76e6043f149e1b384c65 (diff) |
Downgrade 'attribute ignored when parsing type' from error to warning, to match
the diagnostic's warn_ name. Switch some places (notably C++11 attributes)
which really wanted an error over to a different diagnostic. Finally, suppress
the diagnostic entirely for __ptr32, __ptr64 and __w64, to avoid producing
diagnostics in important system headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173788 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Sema')
-rw-r--r-- | include/clang/Sema/AttributeList.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/clang/Sema/AttributeList.h b/include/clang/Sema/AttributeList.h index 928fb5fc75..17444cb196 100644 --- a/include/clang/Sema/AttributeList.h +++ b/include/clang/Sema/AttributeList.h @@ -229,8 +229,15 @@ public: IdentifierInfo *getParameterName() const { return ParmName; } SourceLocation getParameterLoc() const { return ParmLoc; } + bool isAlignasAttribute() const { + // FIXME: Use a better mechanism to determine this. + return getKind() == AT_Aligned && SyntaxUsed == AS_Keyword; + } + bool isDeclspecAttribute() const { return SyntaxUsed == AS_Declspec; } - bool isCXX11Attribute() const { return SyntaxUsed == AS_CXX11; } + bool isCXX11Attribute() const { + return SyntaxUsed == AS_CXX11 || isAlignasAttribute(); + } bool isKeywordAttribute() const { return SyntaxUsed == AS_Keyword; } bool isInvalid() const { return Invalid; } |