]> granicus.if.org Git - clang/commit
Semantic checking for class template declarations and
authorDouglas Gregor <dgregor@apple.com>
Fri, 6 Feb 2009 22:42:48 +0000 (22:42 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 6 Feb 2009 22:42:48 +0000 (22:42 +0000)
commitddc29e116db3c3f4144355e67a0137b38b6bb6d1
treeadd7fd5470501bcc7a612dac9fbd03b5918b86da
parent4398a78095cd05a3be702fbab25bfe324a5d7946
Semantic checking for class template declarations and
redeclarations. For example, checks that a class template
redeclaration has the same template parameters as previous
declarations.

Detangled class-template checking from ActOnTag, whose logic was
getting rather convoluted because it tried to handle C, C++, and C++
template semantics in one shot.

Made some inroads toward eliminating extraneous "declaration does not
declare anything" errors by adding an "error" type specifier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63973 91177308-0d34-0410-b5e6-96231b3b80d8
15 files changed:
Driver/PrintParserCallbacks.cpp
include/clang/AST/DeclTemplate.h
include/clang/Basic/DiagnosticSemaKinds.def
include/clang/Parse/Action.h
include/clang/Parse/DeclSpec.h
lib/AST/DeclTemplate.cpp
lib/Parse/DeclSpec.cpp
lib/Parse/ParseDecl.cpp
lib/Parse/ParseDeclCXX.cpp
lib/Parse/ParseTemplate.cpp
lib/Sema/Sema.h
lib/Sema/SemaDecl.cpp
lib/Sema/SemaTemplate.cpp
test/Parser/cxx-class.cpp
test/SemaTemplate/class-template-decl.cpp [new file with mode: 0644]