llvm-project/clang/lib/Parse
Douglas Gregor 18473f329d Improve recovery for template-ids whose template-name doesn't actually
name a template, when they occur in a base-specifier. This is one of
the (few) places where we know for sure that an identifier followed by
a '<' must be a template name, so we can diagnose and recover well:

test/SemaTemplate/dependent-base-classes.cpp:9:16: error: missing
'template'
      keyword prior to dependent template name 'T::apply'
struct X1 : T::apply<U> { }; // expected-error{{missing 'template' ...
               ^
               template 
test/SemaTemplate/dependent-base-classes.cpp:12:13: error: unknown
template name
      'vector'
struct X2 : vector<T> { }; // expected-error{{unknown template name
'vector'}}
            ^
2 diagnostics generated.

llvm-svn: 93257
2010-01-12 21:28:44 +00:00
..
AttributeList.cpp Parse C++ member check attributes - base_check, hiding, and override. 2009-11-25 04:20:27 +00:00
CMakeLists.txt Reorder files. 2009-07-21 21:03:50 +00:00
DeclSpec.cpp Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave 2009-12-12 05:05:38 +00:00
Makefile Installation of Clang libraries and headers, from Axel Naumann! 2009-10-08 22:15:31 +00:00
MinimalAction.cpp Implement access declarations. Most of the work here is parsing them, which 2009-12-11 02:10:03 +00:00
ParseCXXInlineMethods.cpp Refactor to remove more dependencies on PreDeclaratorDC. I seem to have made 2009-12-19 10:49:29 +00:00
ParseDecl.cpp Improve code completion by introducing patterns for the various C and 2010-01-10 23:08:15 +00:00
ParseDeclCXX.cpp Improve recovery for template-ids whose template-name doesn't actually 2010-01-12 21:28:44 +00:00
ParseExpr.cpp Improve code completion by introducing patterns for the various C and 2010-01-10 23:08:15 +00:00
ParseExprCXX.cpp Eliminate an embarrassing performance regression in C/ObjC, where we 2010-01-11 23:29:10 +00:00
ParseInit.cpp PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients 2009-10-18 21:17:35 +00:00
ParseObjc.cpp Change ObjCContainerDecl to contain the entire range for the '@end' 2010-01-07 01:20:12 +00:00
ParsePragma.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParsePragma.h Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParseStmt.cpp Improve code completion by introducing patterns for the various C and 2010-01-10 23:08:15 +00:00
ParseTemplate.cpp Make sure to give an error for template argument lists followed by junk. 2009-12-27 22:31:18 +00:00
ParseTentative.cpp eliminate a call to NextToken() when parsing ::foo 2009-12-19 01:11:05 +00:00
Parser.cpp Improve code completion by introducing patterns for the various C and 2010-01-10 23:08:15 +00:00
RAIIObjectsForParser.h Privatize class members. 2009-12-10 21:50:21 +00:00