diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2017-09-28 21:29:18 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2017-09-28 21:29:18 +0000 |
commit | e8c0e558a40a68aa6db8b6436f391c42329b0481 (patch) | |
tree | 498041c66fa3fce07cf2f8b46b6f4d9ebb9209da | |
parent | 97dfc4ab28210e6b14a996eee1abc7c563182427 (diff) | |
download | bcm5719-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.cpp | 3 | ||||
-rw-r--r-- | clang/test/Parser/cxx-bool.cpp | 9 |
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"]; +} + |