summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-09-13 17:31:48 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-09-13 17:31:48 +0000
commita9dfa9280e83782fe755cdb4456dc63433e6d134 (patch)
tree6da17c87f365e48143806b30cf99fb3b14f0a922 /clang/lib/Sema
parent5c81ca460e4048e3ad188a3716a59359ff6a5a1e (diff)
downloadbcm5719-llvm-a9dfa9280e83782fe755cdb4456dc63433e6d134.tar.gz
bcm5719-llvm-a9dfa9280e83782fe755cdb4456dc63433e6d134.zip
As Aaron pointed out it's simpler to reject wide string availability attr messages in the parser.
llvm-svn: 190706
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaDeclAttr.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 8d01d638d38..8530c8bd158 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -2267,16 +2267,9 @@ static void handleAvailabilityAttr(Sema &S, Decl *D,
AvailabilityChange Obsoleted = Attr.getAvailabilityObsoleted();
bool IsUnavailable = Attr.getUnavailableLoc().isValid();
StringRef Str;
- if (Attr.getMessageExpr()) {
- const StringLiteral *SE = dyn_cast<StringLiteral>(Attr.getMessageExpr());
- if (!SE || !SE->isAscii()) {
- S.Diag(Attr.getMessageExpr()->getLocStart(),
- diag::err_attribute_argument_type)
- << Attr.getName() << AANT_ArgumentString;
- return;
- }
+ if (const StringLiteral *SE =
+ dyn_cast_or_null<StringLiteral>(Attr.getMessageExpr()))
Str = SE->getString();
- }
AvailabilityAttr *NewAttr = S.mergeAvailabilityAttr(ND, Attr.getRange(), II,
Introduced.Version,
OpenPOWER on IntegriCloud