summaryrefslogtreecommitdiffstats
path: root/clang/test/Parser/cxx-decl.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-09-22 01:24:26 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-09-22 01:24:26 +0000
commita5e92556ac18ff0fde5000ee252d79fe2c4a7b00 (patch)
tree977dfdcf8ecbc17c3b7b4a8abfee7bcb9037faac /clang/test/Parser/cxx-decl.cpp
parente9ef51222b8b00074a7a66d15dd3b280c2f07133 (diff)
downloadbcm5719-llvm-a5e92556ac18ff0fde5000ee252d79fe2c4a7b00.tar.gz
bcm5719-llvm-a5e92556ac18ff0fde5000ee252d79fe2c4a7b00.zip
Parse: Don't crash during parsing if we lack a simple-type-specifier
Summary: Parsing cast expressions during error recovery can put us in a bad state. Check to see if the token for a simple-type-specifier makes sense before further parsing. Fixes PR17255. Reviewers: rsmith, doug.gregor, CornedBee, eli.friedman CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1696 llvm-svn: 191159
Diffstat (limited to 'clang/test/Parser/cxx-decl.cpp')
-rw-r--r--clang/test/Parser/cxx-decl.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/Parser/cxx-decl.cpp b/clang/test/Parser/cxx-decl.cpp
index 281e33b20f8..c33a8d561ca 100644
--- a/clang/test/Parser/cxx-decl.cpp
+++ b/clang/test/Parser/cxx-decl.cpp
@@ -209,6 +209,14 @@ namespace PR5066 {
using T = int (*T)(); // expected-error {{type-id cannot have a name}} expected-warning {{C++11}}
}
+namespace PR17255 {
+void foo() {
+ typename A::template B<>; // expected-error {{use of undeclared identifier 'A'}} \
+ // expected-error {{expected a qualified name after 'typename'}} \
+ // expected-warning {{'template' keyword outside of a template}}
+}
+}
+
// PR8380
extern "" // expected-error {{unknown linkage language}}
test6a { ;// expected-error {{C++ requires a type specifier for all declarations}} \
OpenPOWER on IntegriCloud