@@ -132,7 +132,8 @@ CreateCI(const llvm::opt::ArgStringList &Argv) {
132
132
} // anonymous namespace
133
133
134
134
llvm::Expected<std::unique_ptr<CompilerInstance>>
135
- IncrementalCompilerBuilder::create (std::vector<const char *> &ClangArgv) {
135
+ IncrementalCompilerBuilder::create (llvm::Triple TT,
136
+ std::vector<const char *> &ClangArgv) {
136
137
137
138
// If we don't know ClangArgv0 or the address of main() at this point, try
138
139
// to guess it anyway (it's possible on some platforms).
@@ -162,8 +163,7 @@ IncrementalCompilerBuilder::create(std::vector<const char *> &ClangArgv) {
162
163
TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer;
163
164
DiagnosticsEngine Diags (DiagID, &*DiagOpts, DiagsBuffer);
164
165
165
- driver::Driver Driver (/* MainBinaryName=*/ ClangArgv[0 ],
166
- llvm::sys::getProcessTriple (), Diags);
166
+ driver::Driver Driver (/* MainBinaryName=*/ ClangArgv[0 ], TT.str (), Diags);
167
167
Driver.setCheckInputsExist (false ); // the input comes from mem buffers
168
168
llvm::ArrayRef<const char *> RF = llvm::ArrayRef (ClangArgv);
169
169
std::unique_ptr<driver::Compilation> Compilation (Driver.BuildCompilation (RF));
@@ -179,17 +179,17 @@ IncrementalCompilerBuilder::create(std::vector<const char *> &ClangArgv) {
179
179
}
180
180
181
181
llvm::Expected<std::unique_ptr<CompilerInstance>>
182
- IncrementalCompilerBuilder::CreateCpp () {
182
+ IncrementalCompilerBuilder::CreateCpp (llvm::Triple TT ) {
183
183
std::vector<const char *> Argv;
184
184
Argv.reserve (5 + 1 + UserArgs.size ());
185
185
Argv.push_back (" -xc++" );
186
186
Argv.insert (Argv.end (), UserArgs.begin (), UserArgs.end ());
187
187
188
- return IncrementalCompilerBuilder::create (Argv);
188
+ return IncrementalCompilerBuilder::create (TT, Argv);
189
189
}
190
190
191
191
llvm::Expected<std::unique_ptr<CompilerInstance>>
192
- IncrementalCompilerBuilder::createCuda (bool device) {
192
+ IncrementalCompilerBuilder::createCuda (llvm::Triple TT, bool device) {
193
193
std::vector<const char *> Argv;
194
194
Argv.reserve (5 + 4 + UserArgs.size ());
195
195
@@ -213,17 +213,17 @@ IncrementalCompilerBuilder::createCuda(bool device) {
213
213
214
214
Argv.insert (Argv.end (), UserArgs.begin (), UserArgs.end ());
215
215
216
- return IncrementalCompilerBuilder::create (Argv);
216
+ return IncrementalCompilerBuilder::create (TT, Argv);
217
217
}
218
218
219
219
llvm::Expected<std::unique_ptr<CompilerInstance>>
220
- IncrementalCompilerBuilder::CreateCudaDevice () {
221
- return IncrementalCompilerBuilder::createCuda (true );
220
+ IncrementalCompilerBuilder::CreateCudaDevice (llvm::Triple TT ) {
221
+ return IncrementalCompilerBuilder::createCuda (TT, true );
222
222
}
223
223
224
224
llvm::Expected<std::unique_ptr<CompilerInstance>>
225
- IncrementalCompilerBuilder::CreateCudaHost () {
226
- return IncrementalCompilerBuilder::createCuda (false );
225
+ IncrementalCompilerBuilder::CreateCudaHost (llvm::Triple TT ) {
226
+ return IncrementalCompilerBuilder::createCuda (TT, false );
227
227
}
228
228
229
229
Interpreter::Interpreter (std::unique_ptr<CompilerInstance> CI,
0 commit comments