diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-12-01 16:58:18 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-12-01 16:58:18 +0000 |
commit | e7488b904ca95dc3f41bfed979c77cfe00f037ae (patch) | |
tree | e4ec47c5ccc5d24939b0e7fa7a8d7cfaa41796e8 /clang/test/SemaTemplate/class-template-id.cpp | |
parent | f107aa63eeae5385ad4fd22074b7f011cac7eb1c (diff) | |
download | bcm5719-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.cpp | 5 |
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}} |