[libclang] In ASTUnit::getMainFileName() Invocation may be null because the ASTUnit
came from loading a PCH/module. llvm-svn: 172259
This commit is contained in:
parent
99c6990457
commit
928e1fdecc
|
@ -1689,7 +1689,21 @@ void ASTUnit::transferASTDataFromCompilerInstance(CompilerInstance &CI) {
|
|||
}
|
||||
|
||||
StringRef ASTUnit::getMainFileName() const {
|
||||
return Invocation->getFrontendOpts().Inputs[0].getFile();
|
||||
if (Invocation && !Invocation->getFrontendOpts().Inputs.empty()) {
|
||||
const FrontendInputFile &Input = Invocation->getFrontendOpts().Inputs[0];
|
||||
if (Input.isFile())
|
||||
return Input.getFile();
|
||||
else
|
||||
return Input.getBuffer()->getBufferIdentifier();
|
||||
}
|
||||
|
||||
if (SourceMgr) {
|
||||
if (const FileEntry *
|
||||
FE = SourceMgr->getFileEntryForID(SourceMgr->getMainFileID()))
|
||||
return FE->getName();
|
||||
}
|
||||
|
||||
return StringRef();
|
||||
}
|
||||
|
||||
ASTUnit *ASTUnit::create(CompilerInvocation *CI,
|
||||
|
|
Loading…
Reference in New Issue