summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/DeclSpec.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-02-06 22:42:48 +0000
committerDouglas Gregor <dgregor@apple.com>2009-02-06 22:42:48 +0000
commitcd72ba97e73f514ccb12212184e1312268b8bebe (patch)
tree9d6197b565008720775400978e22df5fcdfb79f6 /clang/lib/Parse/DeclSpec.cpp
parentdc93bbc4b07eb30cfb13ea70fcb801b189f3ef5b (diff)
downloadbcm5719-llvm-cd72ba97e73f514ccb12212184e1312268b8bebe.tar.gz
bcm5719-llvm-cd72ba97e73f514ccb12212184e1312268b8bebe.zip
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. llvm-svn: 63973
Diffstat (limited to 'clang/lib/Parse/DeclSpec.cpp')
-rw-r--r--clang/lib/Parse/DeclSpec.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Parse/DeclSpec.cpp b/clang/lib/Parse/DeclSpec.cpp
index 32b00117683..d5af3842847 100644
--- a/clang/lib/Parse/DeclSpec.cpp
+++ b/clang/lib/Parse/DeclSpec.cpp
@@ -231,6 +231,13 @@ bool DeclSpec::SetTypeSpecType(TST T, SourceLocation Loc,
return false;
}
+bool DeclSpec::SetTypeSpecError() {
+ TypeSpecType = TST_error;
+ TypeRep = 0;
+ TSTLoc = SourceLocation();
+ return false;
+}
+
bool DeclSpec::SetTypeQual(TQ T, SourceLocation Loc, const char *&PrevSpec,
const LangOptions &Lang) {
// Duplicates turn into warnings pre-C99.
OpenPOWER on IntegriCloud