aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Sema/AttributeList.h
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-01-29 10:02:16 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-01-29 10:02:16 +0000
commitd03de6aaa312d57dcd6e2bc76bed1e89f5c5019d (patch)
tree6eb0b96b1c0883d75befbcd1d33e372f78493b93 /include/clang/Sema/AttributeList.h
parent93384a910cb98f3a128b76e6043f149e1b384c65 (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/AttributeList.h')
-rw-r--r--include/clang/Sema/AttributeList.h9
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; }