summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclAttr.cpp
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2013-11-25 18:50:49 +0000
committerAaron Ballman <aaron@aaronballman.com>2013-11-25 18:50:49 +0000
commit90f8c6fb310158d58ad359c68962f7aa95503b19 (patch)
treeed30a525c79bced4f7d4cca1be4272076a216550 /clang/lib/Sema/SemaDeclAttr.cpp
parent458eb55e550aeb27076d7a62498c170001ff8c3d (diff)
downloadbcm5719-llvm-90f8c6fb310158d58ad359c68962f7aa95503b19.tar.gz
bcm5719-llvm-90f8c6fb310158d58ad359c68962f7aa95503b19.zip
Making type_tag_for_datatype consistent with its declared subject from Attr.td. Also updated the related testcase.
Reviewed by Dmitri Gribenko. llvm-svn: 195675
Diffstat (limited to 'clang/lib/Sema/SemaDeclAttr.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclAttr.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 15ec5857a95..75674b08ef5 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -4089,6 +4089,12 @@ static void handleTypeTagForDatatypeAttr(Sema &S, Decl *D,
if (!checkAttributeNumArgs(S, Attr, 1))
return;
+ if (!isa<VarDecl>(D)) {
+ S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+ << Attr.getName() << ExpectedVariable;
+ return;
+ }
+
IdentifierInfo *PointerKind = Attr.getArgAsIdent(0)->Ident;
TypeSourceInfo *MatchingCTypeLoc = 0;
S.GetTypeFromParser(Attr.getMatchingCType(), &MatchingCTypeLoc);
OpenPOWER on IntegriCloud