@@ -155,27 +155,37 @@ namespace tooling {
155
155
156
156
bool runToolOnCodeWithArgs (
157
157
FrontendAction *ToolAction, const Twine &Code,
158
+ llvm::IntrusiveRefCntPtr<vfs::FileSystem> VFS,
158
159
const std::vector<std::string> &Args, const Twine &FileName,
159
160
const Twine &ToolName,
160
- std::shared_ptr<PCHContainerOperations> PCHContainerOps,
161
- const FileContentMappings &VirtualMappedFiles) {
161
+ std::shared_ptr<PCHContainerOperations> PCHContainerOps) {
162
162
SmallString<16 > FileNameStorage;
163
163
StringRef FileNameRef = FileName.toNullTerminatedStringRef (FileNameStorage);
164
- llvm::IntrusiveRefCntPtr<vfs::OverlayFileSystem> OverlayFileSystem (
165
- new vfs::OverlayFileSystem (vfs::getRealFileSystem ()));
166
- llvm::IntrusiveRefCntPtr<vfs::InMemoryFileSystem> InMemoryFileSystem (
167
- new vfs::InMemoryFileSystem);
168
- OverlayFileSystem->pushOverlay (InMemoryFileSystem);
164
+
169
165
llvm::IntrusiveRefCntPtr<FileManager> Files (
170
- new FileManager (FileSystemOptions (), OverlayFileSystem ));
166
+ new FileManager (FileSystemOptions (), VFS ));
171
167
ArgumentsAdjuster Adjuster = getClangStripDependencyFileAdjuster ();
172
168
ToolInvocation Invocation (
173
169
getSyntaxOnlyToolArgs (ToolName, Adjuster (Args, FileNameRef), FileNameRef),
174
170
ToolAction, Files.get (),
175
171
std::move (PCHContainerOps));
172
+ return Invocation.run ();
173
+ }
174
+
175
+ bool runToolOnCodeWithArgs (
176
+ FrontendAction *ToolAction, const Twine &Code,
177
+ const std::vector<std::string> &Args, const Twine &FileName,
178
+ const Twine &ToolName,
179
+ std::shared_ptr<PCHContainerOperations> PCHContainerOps,
180
+ const FileContentMappings &VirtualMappedFiles) {
181
+ llvm::IntrusiveRefCntPtr<vfs::OverlayFileSystem> OverlayFileSystem (
182
+ new vfs::OverlayFileSystem (vfs::getRealFileSystem ()));
183
+ llvm::IntrusiveRefCntPtr<vfs::InMemoryFileSystem> InMemoryFileSystem (
184
+ new vfs::InMemoryFileSystem);
185
+ OverlayFileSystem->pushOverlay (InMemoryFileSystem);
176
186
177
187
SmallString<1024 > CodeStorage;
178
- InMemoryFileSystem->addFile (FileNameRef , 0 ,
188
+ InMemoryFileSystem->addFile (FileName , 0 ,
179
189
llvm::MemoryBuffer::getMemBuffer (
180
190
Code.toNullTerminatedStringRef (CodeStorage)));
181
191
@@ -185,7 +195,8 @@ bool runToolOnCodeWithArgs(
185
195
llvm::MemoryBuffer::getMemBuffer (FilenameWithContent.second ));
186
196
}
187
197
188
- return Invocation.run ();
198
+ return runToolOnCodeWithArgs (ToolAction, Code, OverlayFileSystem, Args,
199
+ FileName, ToolName);
189
200
}
190
201
191
202
std::string getAbsolutePath (StringRef File) {
0 commit comments