Moved generation of the name of the serialized AST file into

CreateASTSerializer.

llvm-svn: 45201
This commit is contained in:
Ted Kremenek 2007-12-19 17:25:59 +00:00
parent 55cb4be8ae
commit 6c3777c319
3 changed files with 16 additions and 16 deletions

View File

@ -637,8 +637,20 @@ namespace {
} // end anonymous namespace
ASTConsumer *clang::CreateASTSerializer(const llvm::sys::Path& FName,
ASTConsumer* clang::CreateASTSerializer(const std::string& InFile,
Diagnostic &Diags,
const LangOptions &Features) {
// FIXME: This is a hack: "/" separator not portable.
std::string::size_type idx = InFile.rfind("/");
if (idx != std::string::npos && idx == InFile.size()-1)
return NULL;
std::string TargetPrefix( idx == std::string::npos ?
InFile : InFile.substr(idx+1));
llvm::sys::Path FName = llvm::sys::Path((TargetPrefix + ".ast").c_str());
return new ASTSerializer(FName, Diags, Features);
}

View File

@ -37,7 +37,7 @@ ASTConsumer *CreateCodeRewriterTest(Diagnostic &Diags);
ASTConsumer *CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr,
const LangOptions &LOpts);
ASTConsumer *CreateASTSerializer(const llvm::sys::Path& FName,
ASTConsumer *CreateASTSerializer(const std::string& InFile,
Diagnostic &Diags, const LangOptions &LOpts);
} // end clang namespace

View File

@ -922,21 +922,9 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile,
case EmitLLVM:
return CreateLLVMEmitter(Diag, LangOpts);
case SerializeAST: {
case SerializeAST:
// FIXME: Allow user to tailor where the file is written.
// FIXME: This is a hack: "/" separator not portable.
std::string::size_type idx = InFile.rfind("/");
if (idx != std::string::npos && idx == InFile.size()-1)
return NULL;
std::string TargetPrefix( idx == std::string::npos ?
InFile : InFile.substr(idx+1));
llvm::sys::Path FName = llvm::sys::Path((TargetPrefix + ".ast").c_str());
return CreateASTSerializer(FName, Diag, LangOpts);
}
return CreateASTSerializer(InFile, Diag, LangOpts);
case RewriteTest:
return CreateCodeRewriterTest(Diag);