summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2017-09-28 21:29:18 +0000
committerAaron Ballman <aaron@aaronballman.com>2017-09-28 21:29:18 +0000
commite8c0e558a40a68aa6db8b6436f391c42329b0481 (patch)
tree498041c66fa3fce07cf2f8b46b6f4d9ebb9209da
parent97dfc4ab28210e6b14a996eee1abc7c563182427 (diff)
downloadbcm5719-llvm-e8c0e558a40a68aa6db8b6436f391c42329b0481.tar.gz
bcm5719-llvm-e8c0e558a40a68aa6db8b6436f391c42329b0481.zip
Properly parse a postfix expression following a Boolean literal. Fixes PR34273.
Patch by Nicolas Lesser. llvm-svn: 314463
-rw-r--r--clang/lib/Parse/ParseExpr.cpp3
-rw-r--r--clang/test/Parser/cxx-bool.cpp9
2 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp
index 60985633409..5e0688ca58e 100644
--- a/clang/lib/Parse/ParseExpr.cpp
+++ b/clang/lib/Parse/ParseExpr.cpp
@@ -798,7 +798,8 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression,
case tok::kw_true:
case tok::kw_false:
- return ParseCXXBoolLiteral();
+ Res = ParseCXXBoolLiteral();
+ break;
case tok::kw___objc_yes:
case tok::kw___objc_no:
diff --git a/clang/test/Parser/cxx-bool.cpp b/clang/test/Parser/cxx-bool.cpp
index a8a161edb10..21591d10e90 100644
--- a/clang/test/Parser/cxx-bool.cpp
+++ b/clang/test/Parser/cxx-bool.cpp
@@ -1,4 +1,11 @@
-// RUN: %clang_cc1 -fsyntax-only %s
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+// expected-no-diagnostics
bool a = true;
bool b = false;
+
+namespace pr34273 {
+ char c = "clang"[true];
+ char d = true["clang"];
+}
+
OpenPOWER on IntegriCloud