summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/class-template-id.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-12-01 16:58:18 +0000
committerDouglas Gregor <dgregor@apple.com>2009-12-01 16:58:18 +0000
commite7488b904ca95dc3f41bfed979c77cfe00f037ae (patch)
treee4ec47c5ccc5d24939b0e7fa7a8d7cfaa41796e8 /clang/test/SemaTemplate/class-template-id.cpp
parentf107aa63eeae5385ad4fd22074b7f011cac7eb1c (diff)
downloadbcm5719-llvm-e7488b904ca95dc3f41bfed979c77cfe00f037ae.tar.gz
bcm5719-llvm-e7488b904ca95dc3f41bfed979c77cfe00f037ae.zip
Don't automatically assume that an id-expression refers to a
ValueDecl, because that isn't always the case in ill-formed code. Diagnose a common mistake (forgetting to provide a template argument list for a class template, PR5655) and dyn_cast so that we handle the general problem of referring to a non-value declaration gracefully. llvm-svn: 90239
Diffstat (limited to 'clang/test/SemaTemplate/class-template-id.cpp')
-rw-r--r--clang/test/SemaTemplate/class-template-id.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/class-template-id.cpp b/clang/test/SemaTemplate/class-template-id.cpp
index e74a6f8dcca..98ccbe7db6f 100644
--- a/clang/test/SemaTemplate/class-template-id.cpp
+++ b/clang/test/SemaTemplate/class-template-id.cpp
@@ -36,3 +36,8 @@ namespace N {
N::C<int> c1;
typedef N::C<float> c2;
+
+// PR5655
+template<typename T> struct Foo { }; // expected-note{{template is declared here}}
+
+void f(void) { Foo bar; } // expected-error{{without a template argument list}}
OpenPOWER on IntegriCloud