aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-02-06 00:51:33 +0000
committerChris Lattner <sabre@nondot.org>2008-02-06 00:51:33 +0000
commite1e798524777271eff0cce556260cc1ec6c97e2e (patch)
tree5fd7cba60bbdc6c0534a76c9ab1369cedb0c8e41
parent2ae34ed8caf90ca4044feca07811561053c08666 (diff)
inform astconsumer about tagdecls as they are defined.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46788 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--Sema/SemaDecl.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 226d33773f..3eb752dcf4 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -12,6 +12,7 @@
//===----------------------------------------------------------------------===//
#include "Sema.h"
+#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Builtins.h"
#include "clang/AST/Decl.h"
@@ -23,7 +24,7 @@
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/SourceManager.h"
// FIXME: layering (ideally, Sema shouldn't be dependent on Lex API's)
-#include "clang/Lex/Preprocessor.h"
+#include "clang/Lex/Preprocessor.h"
#include "clang/Lex/HeaderSearch.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallSet.h"
@@ -1248,7 +1249,7 @@ Sema::DeclTy *Sema::ActOnTag(Scope *S, unsigned TagType, TagKind TK,
Name->setFETokenInfo(New);
S->AddDecl(New);
}
-
+
return New;
}
@@ -1460,9 +1461,10 @@ void Sema::ActOnFields(Scope* S,
}
// Okay, we successfully defined 'Record'.
- if (Record)
+ if (Record) {
Record->defineBody(&RecFields[0], RecFields.size());
- else {
+ Consumer.HandleTagDeclDefinition(Record);
+ } else {
ObjCIvarDecl **ClsFields = reinterpret_cast<ObjCIvarDecl**>(&RecFields[0]);
if (ObjCInterfaceDecl *ID = dyn_cast<ObjCInterfaceDecl>(EnclosingDecl))
ID->addInstanceVariablesToClass(ClsFields, RecFields.size(), RBrac);
@@ -1705,6 +1707,7 @@ void Sema::ActOnEnumBody(SourceLocation EnumLoc, DeclTy *EnumDeclX,
}
Enum->defineElements(EltList, BestType);
+ Consumer.HandleTagDeclDefinition(Enum);
}
Sema::DeclTy* Sema::ActOnLinkageSpec(SourceLocation Loc,