summaryrefslogtreecommitdiffstats
path: root/clang/Driver
diff options
context:
space:
mode:
Diffstat (limited to 'clang/Driver')
-rw-r--r--clang/Driver/ASTConsumers.cpp21
-rw-r--r--clang/Driver/ASTConsumers.h6
-rw-r--r--clang/Driver/SerializationTest.cpp26
-rw-r--r--clang/Driver/clang.cpp8
4 files changed, 21 insertions, 40 deletions
diff --git a/clang/Driver/ASTConsumers.cpp b/clang/Driver/ASTConsumers.cpp
index 9ab6157cfaa..5d45f312e2e 100644
--- a/clang/Driver/ASTConsumers.cpp
+++ b/clang/Driver/ASTConsumers.cpp
@@ -868,12 +868,10 @@ namespace {
class ASTSerializer : public ASTConsumer {
protected:
Diagnostic &Diags;
- const LangOptions& lang;
TranslationUnit* TU;
public:
- ASTSerializer(Diagnostic& diags, const LangOptions& LO)
- : Diags(diags), lang(LO), TU(0) {}
+ ASTSerializer(Diagnostic& diags) : Diags(diags), TU(0) {}
virtual ~ASTSerializer() { delete TU; }
@@ -892,9 +890,8 @@ public:
class SingleFileSerializer : public ASTSerializer {
const llvm::sys::Path FName;
public:
- SingleFileSerializer(const llvm::sys::Path& F, Diagnostic &diags,
- const LangOptions &LO)
- : ASTSerializer(diags,LO), FName(F) {}
+ SingleFileSerializer(const llvm::sys::Path& F, Diagnostic &diags)
+ : ASTSerializer(diags), FName(F) {}
~SingleFileSerializer() {
EmitASTBitcodeFile(TU, FName);
@@ -904,9 +901,8 @@ public:
class BuildSerializer : public ASTSerializer {
llvm::sys::Path EmitDir;
public:
- BuildSerializer(const llvm::sys::Path& dir, Diagnostic &diags,
- const LangOptions &LO)
- : ASTSerializer(diags,LO), EmitDir(dir) {}
+ BuildSerializer(const llvm::sys::Path& dir, Diagnostic &diags)
+ : ASTSerializer(diags), EmitDir(dir) {}
~BuildSerializer() {
@@ -950,8 +946,7 @@ public:
ASTConsumer* clang::CreateASTSerializer(const std::string& InFile,
const std::string& OutputFile,
- Diagnostic &Diags,
- const LangOptions &Features) {
+ Diagnostic &Diags) {
if (OutputFile.size()) {
if (InFile == "-") {
@@ -982,7 +977,7 @@ ASTConsumer* clang::CreateASTSerializer(const std::string& InFile,
// 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, Features);
+ return new BuildSerializer(EmitDir, Diags);
}
// The user did not specify an output directory for serialized ASTs.
@@ -991,5 +986,5 @@ ASTConsumer* clang::CreateASTSerializer(const std::string& InFile,
llvm::sys::Path FName(InFile.c_str());
FName.appendSuffix("ast");
- return new SingleFileSerializer(FName, Diags, Features);
+ return new SingleFileSerializer(FName, Diags);
}
diff --git a/clang/Driver/ASTConsumers.h b/clang/Driver/ASTConsumers.h
index 7037ade1ddf..ca93e0fbf9a 100644
--- a/clang/Driver/ASTConsumers.h
+++ b/clang/Driver/ASTConsumers.h
@@ -67,13 +67,11 @@ ASTConsumer* CreateHTMLPrinter(const std::string &OutFile, Diagnostic &D,
Preprocessor *PP, PreprocessorFactory* PPF);
ASTConsumer *CreateSerializationTest(Diagnostic &Diags,
- FileManager& FMgr,
- const LangOptions &LOpts);
+ FileManager& FMgr);
ASTConsumer *CreateASTSerializer(const std::string& InFile,
const std::string& EmitDir,
- Diagnostic &Diags,
- const LangOptions &LOpts);
+ Diagnostic &Diags);
} // end clang namespace
diff --git a/clang/Driver/SerializationTest.cpp b/clang/Driver/SerializationTest.cpp
index 5f7b94fca40..946a4c87d6a 100644
--- a/clang/Driver/SerializationTest.cpp
+++ b/clang/Driver/SerializationTest.cpp
@@ -33,26 +33,16 @@ using namespace clang;
namespace {
class SerializationTest : public ASTConsumer {
- llvm::OwningPtr<TranslationUnit> TU;
+ TranslationUnit* TU;
Diagnostic &Diags;
FileManager &FMgr;
- const LangOptions& lopts;
public:
- SerializationTest(Diagnostic &d, FileManager& fmgr, const LangOptions& LOpts)
- : Diags(d), FMgr(fmgr), lopts(LOpts) {}
+ SerializationTest(Diagnostic &d, FileManager& fmgr)
+ : TU(0), Diags(d), FMgr(fmgr) {}
~SerializationTest();
- virtual void Initialize(ASTContext& context) {
- if (!TU) {
- TU.reset(new TranslationUnit(context, lopts));
- TU->SetOwnsDecls(false);
- }
- }
-
- virtual void HandleTopLevelDecl(Decl *D) {
- TU->AddTopLevelDecl(D);
- }
+ virtual void InitializeTU(TranslationUnit& tu) { TU = &tu; }
private:
bool Serialize(llvm::sys::Path& Filename, llvm::sys::Path& FNameDeclPrint);
@@ -62,10 +52,8 @@ private:
} // end anonymous namespace
ASTConsumer*
-clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr,
- const LangOptions &LOpts) {
-
- return new SerializationTest(Diags,FMgr,LOpts);
+clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr) {
+ return new SerializationTest(Diags, FMgr);
}
@@ -89,7 +77,7 @@ bool SerializationTest::Deserialize(llvm::sys::Path& Filename,
llvm::sys::Path& FNameDeclPrint) {
// Deserialize the translation unit.
- TranslationUnit* NewTU = ReadASTBitcodeFile(Filename,FMgr);
+ TranslationUnit* NewTU = ReadASTBitcodeFile(Filename, FMgr);
if (!NewTU)
return false;
diff --git a/clang/Driver/clang.cpp b/clang/Driver/clang.cpp
index 7a61145c66c..df41e54b32d 100644
--- a/clang/Driver/clang.cpp
+++ b/clang/Driver/clang.cpp
@@ -1189,7 +1189,7 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile,
OutputFile, VisualizeEG, TrimGraph, AnalyzeAll);
case TestSerialization:
- return CreateSerializationTest(Diag, FileMgr, LangOpts);
+ return CreateSerializationTest(Diag, FileMgr);
case EmitLLVM:
case EmitBC:
@@ -1198,7 +1198,7 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile,
case SerializeAST:
// FIXME: Allow user to tailor where the file is written.
- return CreateASTSerializer(InFile, OutputFile, Diag, LangOpts);
+ return CreateASTSerializer(InFile, OutputFile, Diag);
case RewriteObjC:
return CreateCodeRewriterTest(InFile, OutputFile, Diag, LangOpts);
@@ -1362,8 +1362,8 @@ static void ProcessSerializedFile(const std::string& InFile, Diagnostic& Diag,
// translation unit, rather than InFile.
llvm::Module *DestModule;
llvm::OwningPtr<ASTConsumer>
- Consumer(CreateASTConsumer(InFile, Diag, FileMgr, TU->getLangOpts(), 0, 0,
- DestModule));
+ Consumer(CreateASTConsumer(InFile, Diag, FileMgr, TU->getLangOptions(),
+ 0, 0, DestModule));
if (!Consumer) {
fprintf(stderr, "Unsupported program action with serialized ASTs!\n");
OpenPOWER on IntegriCloud