Rakete1111 created this revision.
Rakete1111 added a project: clang.

Parsers a postfix expression after a boolean literal:

This fixes PR34273 <https://bugs.llvm.org/show_bug.cgi?id=34273>.


https://reviews.llvm.org/D38342

Files:
  lib/Parse/ParseExpr.cpp
  test/CXX/expr/expr.post/expr.sub/p1.cpp


Index: test/CXX/expr/expr.post/expr.sub/p1.cpp
===================================================================
--- test/CXX/expr/expr.post/expr.sub/p1.cpp
+++ test/CXX/expr/expr.post/expr.sub/p1.cpp
@@ -0,0 +1,7 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+void pr34273() {
+  char Normal = "clang"[true]; // expected-no-diagnostics
+  char Special = true["clang"]; // expected-no-diagnostics
+}
+
Index: lib/Parse/ParseExpr.cpp
===================================================================
--- lib/Parse/ParseExpr.cpp
+++ lib/Parse/ParseExpr.cpp
@@ -798,7 +798,8 @@
 
   case tok::kw_true:
   case tok::kw_false:
-    return ParseCXXBoolLiteral();
+    Res = ParseCXXBoolLiteral();
+    break;
   
   case tok::kw___objc_yes:
   case tok::kw___objc_no:


Index: test/CXX/expr/expr.post/expr.sub/p1.cpp
===================================================================
--- test/CXX/expr/expr.post/expr.sub/p1.cpp
+++ test/CXX/expr/expr.post/expr.sub/p1.cpp
@@ -0,0 +1,7 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+void pr34273() {
+  char Normal = "clang"[true]; // expected-no-diagnostics
+  char Special = true["clang"]; // expected-no-diagnostics
+}
+
Index: lib/Parse/ParseExpr.cpp
===================================================================
--- lib/Parse/ParseExpr.cpp
+++ lib/Parse/ParseExpr.cpp
@@ -798,7 +798,8 @@
 
   case tok::kw_true:
   case tok::kw_false:
-    return ParseCXXBoolLiteral();
+    Res = ParseCXXBoolLiteral();
+    break;
   
   case tok::kw___objc_yes:
   case tok::kw___objc_no:
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to