[cfe-commits] r52152 - /cfe/trunk/Driver/ASTConsumers.cpp
Eli Friedman
eli.friedman at gmail.com
Mon Jun 9 13:02:52 PDT 2008
Author: efriedma
Date: Mon Jun 9 15:02:51 2008
New Revision: 52152
URL: http://llvm.org/viewvc/llvm-project?rev=52152&view=rev
Log:
Get -serialize working again, plus a bit of minor cleanup.
Modified:
cfe/trunk/Driver/ASTConsumers.cpp
Modified: cfe/trunk/Driver/ASTConsumers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/ASTConsumers.cpp?rev=52152&r1=52151&r2=52152&view=diff
==============================================================================
--- cfe/trunk/Driver/ASTConsumers.cpp (original)
+++ cfe/trunk/Driver/ASTConsumers.cpp Mon Jun 9 15:02:51 2008
@@ -867,31 +867,21 @@
class ASTSerializer : public ASTConsumer {
protected:
- Diagnostic &Diags;
TranslationUnit* TU;
public:
- ASTSerializer(Diagnostic& diags) : Diags(diags), TU(0) {}
-
- virtual ~ASTSerializer() { delete TU; }
-
- virtual void InitializeTU(TranslationUnit &TU) {
- TU.SetOwnsDecls(false);
- }
-
- virtual void HandleTopLevelDecl(Decl *D) {
- if (Diags.hasErrorOccurred())
- return;
-
- if (TU) TU->AddTopLevelDecl(D);
+ ASTSerializer() : TU(0) {}
+
+ virtual void InitializeTU(TranslationUnit &tu) {
+ TU = &tu;
}
+
};
-
+
class SingleFileSerializer : public ASTSerializer {
const llvm::sys::Path FName;
public:
- SingleFileSerializer(const llvm::sys::Path& F, Diagnostic &diags)
- : ASTSerializer(diags), FName(F) {}
+ SingleFileSerializer(const llvm::sys::Path& F) : FName(F) {}
~SingleFileSerializer() {
EmitASTBitcodeFile(TU, FName);
@@ -901,8 +891,7 @@
class BuildSerializer : public ASTSerializer {
llvm::sys::Path EmitDir;
public:
- BuildSerializer(const llvm::sys::Path& dir, Diagnostic &diags)
- : ASTSerializer(diags), EmitDir(dir) {}
+ BuildSerializer(const llvm::sys::Path& dir) : EmitDir(dir) {}
~BuildSerializer() {
@@ -977,7 +966,7 @@
// FIXME: We should probably only allow using BuildSerializer when
// the ASTs come from parsed source files, and not from .ast files.
- return new BuildSerializer(EmitDir, Diags);
+ return new BuildSerializer(EmitDir);
}
// The user did not specify an output directory for serialized ASTs.
@@ -986,5 +975,5 @@
llvm::sys::Path FName(InFile.c_str());
FName.appendSuffix("ast");
- return new SingleFileSerializer(FName, Diags);
+ return new SingleFileSerializer(FName);
}
More information about the cfe-commits
mailing list