namespace clang {
class ASTContext;
- class TranslationUnit;
class Decl;
class TagDecl;
class HandleTagDeclDefinition;
/// HandleTranslationUnit - This method is called when the ASTs for entire
/// translation unit have been parsed.
- virtual void HandleTranslationUnit(TranslationUnit& TU) {}
+ virtual void HandleTranslationUnit(ASTContext &Ctx) {}
/// HandleTagDeclDefinition - This callback is invoked each time a TagDecl
/// (e.g. struct, union, enum, class) is completed. This allows the client to
Builder->UpdateCompletedType(D);
}
- virtual void HandleTranslationUnit(TranslationUnit& TU) {
+ virtual void HandleTranslationUnit(ASTContext &Ctx) {
if (Diags.hasErrorOccurred()) {
M.reset();
return;
}
};
- Consumer->HandleTranslationUnit(TU);
+ Consumer->HandleTranslationUnit(TU.getContext());
if (PrintStats) {
fprintf(stderr, "\nSTATISTICS:\n");
public:
DeclContextPrinter() : Out(llvm::errs()) {}
- void HandleTranslationUnit(TranslationUnit& TU) {
- PrintDeclContext(TU.getContext().getTranslationUnitDecl(), 4);
+ void HandleTranslationUnit(ASTContext &C) {
+ PrintDeclContext(C.getTranslationUnitDecl(), 4);
}
void PrintDeclContext(const DeclContext* DC, unsigned Indentation);
public:
InheritanceViewer(const std::string& cname) : clsname(cname) {}
- void HandleTranslationUnit(TranslationUnit& TU) {
- ASTContext& C = TU.getContext();
+ void HandleTranslationUnit(ASTContext &C) {
for (ASTContext::type_iterator I=C.types_begin(),E=C.types_end(); I!=E; ++I)
if (RecordType *T = dyn_cast<RecordType>(*I)) {
if (CXXRecordDecl *D = dyn_cast<CXXRecordDecl>(T->getDecl())) {
SingleFileSerializer(const llvm::sys::Path& F, Diagnostic& diags)
: ASTSerializer(diags), FName(F) {}
- virtual void HandleTranslationUnit(TranslationUnit& TU) {
+ virtual void HandleTranslationUnit(ASTContext &Ctx) {
if (Diags.hasErrorOccurred())
return;
std::vector<unsigned char> Buffer;
Buffer.reserve(256*1024);
- EmitASTBitcodeBuffer(TU.getContext(), Buffer);
+ EmitASTBitcodeBuffer(Ctx, Buffer);
// Write the bits to disk.
if (FILE* fp = fopen(FName.c_str(),"wb")) {
BuildSerializer(const llvm::sys::Path& dir, Diagnostic& diags)
: ASTSerializer(diags), EmitDir(dir) {}
- virtual void HandleTranslationUnit(TranslationUnit& TU) {
+ virtual void HandleTranslationUnit(ASTContext &Ctx) {
if (Diags.hasErrorOccurred())
return;
- SourceManager& SourceMgr = TU.getContext().getSourceManager();
+ SourceManager& SourceMgr = Ctx.getSourceManager();
FileID ID = SourceMgr.getMainFileID();
assert(!ID.isInvalid() && "MainFileID not set!");
const FileEntry* FE = SourceMgr.getFileEntryForID(ID);
std::vector<unsigned char> Buffer;
Buffer.reserve(256*1024);
- EmitASTBitcodeBuffer(TU.getContext(), Buffer);
+ EmitASTBitcodeBuffer(Ctx, Buffer);
// Write the bits to disk.
if (FILE* fp = fopen(FName.c_str(),"wb")) {
}
virtual void HandleTopLevelDecl(Decl *D);
- virtual void HandleTranslationUnit(TranslationUnit &TU);
+ virtual void HandleTranslationUnit(ASTContext &C);
void HandleCode(Decl* D, Stmt* Body, Actions& actions);
};
}
}
-void AnalysisConsumer::HandleTranslationUnit(TranslationUnit& TU) {
+void AnalysisConsumer::HandleTranslationUnit(ASTContext &C) {
if(!TranslationUnitActions.empty()) {
AnalysisManager mgr(*this, AnalyzerDisplayProgress);
}
if (!ObjCImplementationActions.empty()) {
- TranslationUnitDecl *TUD = TU.getContext().getTranslationUnitDecl();
+ TranslationUnitDecl *TUD = C.getTranslationUnitDecl();
for (DeclContext::decl_iterator I = TUD->decls_begin(),E = TUD->decls_end();
I != E; ++I)
LLVMIRGeneration.stopTimer();
}
- virtual void HandleTranslationUnit(TranslationUnit& TU) {
+ virtual void HandleTranslationUnit(ASTContext &C) {
{
PrettyStackTraceString CrashInfo("Per-file LLVM IR generation");
if (CompileOpts.TimePasses)
LLVMIRGeneration.startTimer();
- Gen->HandleTranslationUnit(TU);
+ Gen->HandleTranslationUnit(C);
if (CompileOpts.TimePasses)
LLVMIRGeneration.stopTimer();
#include "clang/Rewrite/Rewriter.h"
#include "clang/AST/AST.h"
#include "clang/AST/ASTConsumer.h"
-#include "clang/AST/TranslationUnit.h"
#include "clang/AST/ParentMap.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/IdentifierTable.h"
~RewriteObjC() {}
- virtual void HandleTranslationUnit(TranslationUnit& TU);
+ virtual void HandleTranslationUnit(ASTContext &C);
void ReplaceStmt(Stmt *Old, Stmt *New) {
Stmt *ReplacingStmt = ReplacedNodes[Old];
// Nothing yet.
}
-void RewriteObjC::HandleTranslationUnit(TranslationUnit& TU) {
+void RewriteObjC::HandleTranslationUnit(ASTContext &C) {
// Get the top-level buffer that this corresponds to.
// Rewrite tabs if we care.
~SerializationTest() {}
- virtual void HandleTranslationUnit(TranslationUnit& TU);
+ virtual void HandleTranslationUnit(ASTContext &C);
private:
bool Serialize(llvm::sys::Path& Filename, llvm::sys::Path& FNameDeclPrint,
};
}
-void SerializationTest::HandleTranslationUnit(TranslationUnit& TU) {
+void SerializationTest::HandleTranslationUnit(ASTContext &Ctx) {
std::string ErrMsg;
llvm::sys::Path Dir = llvm::sys::Path::GetTemporaryDirectory(&ErrMsg);
llvm::sys::Path FNameDeclBefore = Dir;
FNameDeclBefore.appendComponent("test.decl_before.txt");
- if (FNameDeclBefore.makeUnique(true,&ErrMsg)) {
+ if (FNameDeclBefore.makeUnique(true, &ErrMsg)) {
llvm::cerr << "Error: " << ErrMsg << "\n";
return;
}
llvm::sys::Path FNameDeclAfter = Dir;
FNameDeclAfter.appendComponent("test.decl_after.txt");
- if (FNameDeclAfter.makeUnique(true,&ErrMsg)) {
+ if (FNameDeclAfter.makeUnique(true, &ErrMsg)) {
llvm::cerr << "Error: " << ErrMsg << "\n";
return;
}
llvm::sys::Path ASTFilename = Dir;
ASTFilename.appendComponent("test.ast");
- if (ASTFilename.makeUnique(true,&ErrMsg)) {
+ if (ASTFilename.makeUnique(true, &ErrMsg)) {
llvm::cerr << "Error: " << ErrMsg << "\n";
return;
}
// Serialize and then deserialize the ASTs.
- bool status = Serialize(ASTFilename, FNameDeclBefore, TU.getContext());
+ bool status = Serialize(ASTFilename, FNameDeclBefore, Ctx);
assert (status && "Serialization failed.");
status = Deserialize(ASTFilename, FNameDeclAfter);
assert (status && "Deserialization failed.");