v.g.vassilev created this revision. v.g.vassilev added reviewers: hubert.reinterpretcast, uweigand. v.g.vassilev requested review of this revision.
In cases where `-fno-integrated-as` is specified we should overwrite the `EmitAssembly` action as well. We also should rely on the target triple from the process at least until we implement out-of-process execution. This patch should improve clang-repl on AIX. Discussion available at: https://reviews.llvm.org/D96033 Repository: rC Clang https://reviews.llvm.org/D102688 Files: clang/lib/Interpreter/IncrementalParser.cpp clang/lib/Interpreter/Interpreter.cpp Index: clang/lib/Interpreter/Interpreter.cpp =================================================================== --- clang/lib/Interpreter/Interpreter.cpp +++ clang/lib/Interpreter/Interpreter.cpp @@ -157,7 +157,7 @@ ParseDiagnosticArgs(*DiagOpts, ParsedArgs, &Diags); driver::Driver Driver(/*MainBinaryName=*/ClangArgv[0], - llvm::sys::getDefaultTargetTriple(), Diags); + llvm::sys::getProcessTriple(), Diags); Driver.setCheckInputsExist(false); // the input comes from mem buffers llvm::ArrayRef<const char *> RF = llvm::makeArrayRef(ClangArgv); std::unique_ptr<driver::Compilation> Compilation(Driver.BuildCompilation(RF)); Index: clang/lib/Interpreter/IncrementalParser.cpp =================================================================== --- clang/lib/Interpreter/IncrementalParser.cpp +++ clang/lib/Interpreter/IncrementalParser.cpp @@ -54,7 +54,8 @@ Err = llvm::createStringError( std::errc::state_not_recoverable, "Driver initialization failed. " - "Incremental mode for action is not supported"); + "Incremental mode for action %d is not supported", + CI.getFrontendOpts().ProgramAction); return Act; case frontend::ASTDump: LLVM_FALLTHROUGH; @@ -63,6 +64,8 @@ case frontend::ParseSyntaxOnly: Act = CreateFrontendAction(CI); break; + case frontend::EmitAssembly: + LLVM_FALLTHROUGH; case frontend::EmitObj: LLVM_FALLTHROUGH; case frontend::EmitLLVMOnly:
Index: clang/lib/Interpreter/Interpreter.cpp =================================================================== --- clang/lib/Interpreter/Interpreter.cpp +++ clang/lib/Interpreter/Interpreter.cpp @@ -157,7 +157,7 @@ ParseDiagnosticArgs(*DiagOpts, ParsedArgs, &Diags); driver::Driver Driver(/*MainBinaryName=*/ClangArgv[0], - llvm::sys::getDefaultTargetTriple(), Diags); + llvm::sys::getProcessTriple(), Diags); Driver.setCheckInputsExist(false); // the input comes from mem buffers llvm::ArrayRef<const char *> RF = llvm::makeArrayRef(ClangArgv); std::unique_ptr<driver::Compilation> Compilation(Driver.BuildCompilation(RF)); Index: clang/lib/Interpreter/IncrementalParser.cpp =================================================================== --- clang/lib/Interpreter/IncrementalParser.cpp +++ clang/lib/Interpreter/IncrementalParser.cpp @@ -54,7 +54,8 @@ Err = llvm::createStringError( std::errc::state_not_recoverable, "Driver initialization failed. " - "Incremental mode for action is not supported"); + "Incremental mode for action %d is not supported", + CI.getFrontendOpts().ProgramAction); return Act; case frontend::ASTDump: LLVM_FALLTHROUGH; @@ -63,6 +64,8 @@ case frontend::ParseSyntaxOnly: Act = CreateFrontendAction(CI); break; + case frontend::EmitAssembly: + LLVM_FALLTHROUGH; case frontend::EmitObj: LLVM_FALLTHROUGH; case frontend::EmitLLVMOnly:
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits