forked from OSchip/llvm-project
Use vfs::FileSystem in ASTUnit when creating CompilerInvocation.
Summary: It used to always call into the RealFileSystem before. Reviewers: bkramer, krasimir, klimek, bruno Reviewed By: klimek Subscribers: bruno, cfe-commits Differential Revision: https://reviews.llvm.org/D34469 llvm-svn: 306549
This commit is contained in:
parent
9a450d9b29
commit
afdadf5627
|
@ -184,10 +184,11 @@ createChainedIncludesSource(CompilerInstance &CI,
|
|||
///
|
||||
/// \return A CompilerInvocation, or 0 if none was built for the given
|
||||
/// argument vector.
|
||||
std::unique_ptr<CompilerInvocation>
|
||||
createInvocationFromCommandLine(ArrayRef<const char *> Args,
|
||||
IntrusiveRefCntPtr<DiagnosticsEngine> Diags =
|
||||
IntrusiveRefCntPtr<DiagnosticsEngine>());
|
||||
std::unique_ptr<CompilerInvocation> createInvocationFromCommandLine(
|
||||
ArrayRef<const char *> Args,
|
||||
IntrusiveRefCntPtr<DiagnosticsEngine> Diags =
|
||||
IntrusiveRefCntPtr<DiagnosticsEngine>(),
|
||||
IntrusiveRefCntPtr<vfs::FileSystem> VFS = nullptr);
|
||||
|
||||
/// Return the value of the last argument as an integer, or a default. If Diags
|
||||
/// is non-null, emits an error if the argument is given, but non-integral.
|
||||
|
|
|
@ -1638,7 +1638,7 @@ ASTUnit *ASTUnit::LoadFromCommandLine(
|
|||
&StoredDiagnostics, nullptr);
|
||||
|
||||
CI = clang::createInvocationFromCommandLine(
|
||||
llvm::makeArrayRef(ArgBegin, ArgEnd), Diags);
|
||||
llvm::makeArrayRef(ArgBegin, ArgEnd), Diags, VFS);
|
||||
if (!CI)
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -31,8 +31,8 @@ using namespace llvm::opt;
|
|||
/// \return A CompilerInvocation, or 0 if none was built for the given
|
||||
/// argument vector.
|
||||
std::unique_ptr<CompilerInvocation> clang::createInvocationFromCommandLine(
|
||||
ArrayRef<const char *> ArgList,
|
||||
IntrusiveRefCntPtr<DiagnosticsEngine> Diags) {
|
||||
ArrayRef<const char *> ArgList, IntrusiveRefCntPtr<DiagnosticsEngine> Diags,
|
||||
IntrusiveRefCntPtr<vfs::FileSystem> VFS) {
|
||||
if (!Diags.get()) {
|
||||
// No diagnostics engine was provided, so create our own diagnostics object
|
||||
// with the default options.
|
||||
|
@ -46,7 +46,7 @@ std::unique_ptr<CompilerInvocation> clang::createInvocationFromCommandLine(
|
|||
|
||||
// FIXME: We shouldn't have to pass in the path info.
|
||||
driver::Driver TheDriver(Args[0], llvm::sys::getDefaultTargetTriple(),
|
||||
*Diags);
|
||||
*Diags, VFS);
|
||||
|
||||
// Don't check that inputs exist, they may have been remapped.
|
||||
TheDriver.setCheckInputsExist(false);
|
||||
|
|
Loading…
Reference in New Issue