forked from OSchip/llvm-project
Frontend: Change FrontendAction::BeginSourceFile to take the input kind instead of an IsAST bool.
llvm-svn: 105578
This commit is contained in:
parent
9b491e79fc
commit
8654638b23
|
@ -166,17 +166,18 @@ public:
|
|||
/// \param Filename - The input filename, which will be made available to
|
||||
/// clients via \see getCurrentFile().
|
||||
///
|
||||
/// \param IsAST - Indicates whether this is an AST input. AST inputs require
|
||||
/// special handling, since the AST file itself contains several objects which
|
||||
/// would normally be owned by the CompilerInstance. When processing AST input
|
||||
/// files, these objects should generally not be initialized in the
|
||||
/// CompilerInstance -- they will automatically be shared with the AST file in
|
||||
/// between \see BeginSourceFile() and \see EndSourceFile().
|
||||
/// \param InputKind - The type of input. Some input kinds are handled
|
||||
/// specially, for example AST inputs, since the AST file itself contains
|
||||
/// several objects which would normally be owned by the
|
||||
/// CompilerInstance. When processing AST input files, these objects should
|
||||
/// generally not be initialized in the CompilerInstance -- they will
|
||||
/// automatically be shared with the AST file in between \see
|
||||
/// BeginSourceFile() and \see EndSourceFile().
|
||||
///
|
||||
/// \return True on success; the compilation of this file should be aborted
|
||||
/// and neither Execute nor EndSourceFile should be called.
|
||||
bool BeginSourceFile(CompilerInstance &CI, llvm::StringRef Filename,
|
||||
bool IsAST = false);
|
||||
InputKind Kind);
|
||||
|
||||
/// Execute - Set the source managers main input file, and run the action.
|
||||
void Execute();
|
||||
|
|
|
@ -359,7 +359,7 @@ ASTUnit *ASTUnit::LoadFromCompilerInvocation(CompilerInvocation *CI,
|
|||
|
||||
Act.reset(new TopLevelDeclTrackerAction(*AST));
|
||||
if (!Act->BeginSourceFile(Clang, Clang.getFrontendOpts().Inputs[0].second,
|
||||
/*IsAST=*/false))
|
||||
Clang.getFrontendOpts().Inputs[0].first))
|
||||
goto error;
|
||||
|
||||
Act->Execute();
|
||||
|
|
|
@ -509,7 +509,7 @@ bool CompilerInstance::ExecuteAction(FrontendAction &Act) {
|
|||
createPreprocessor();
|
||||
}
|
||||
|
||||
if (Act.BeginSourceFile(*this, InFile, IsAST)) {
|
||||
if (Act.BeginSourceFile(*this, InFile, getFrontendOpts().Inputs[i].first)) {
|
||||
Act.Execute();
|
||||
Act.EndSourceFile();
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ void FrontendAction::setCurrentFile(llvm::StringRef Value, ASTUnit *AST) {
|
|||
|
||||
bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
|
||||
llvm::StringRef Filename,
|
||||
bool IsAST) {
|
||||
InputKind InputKind) {
|
||||
assert(!Instance && "Already processing a source file!");
|
||||
assert(!Filename.empty() && "Unexpected empty filename!");
|
||||
setCurrentFile(Filename);
|
||||
|
@ -40,6 +40,7 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
|
|||
|
||||
// AST files follow a very different path, since they share objects via the
|
||||
// AST unit.
|
||||
bool IsAST = InputKind == IK_AST;
|
||||
if (IsAST) {
|
||||
assert(!usesPreprocessorOnly() &&
|
||||
"Attempt to pass AST file to preprocessor only action!");
|
||||
|
|
Loading…
Reference in New Issue