sunfish created this revision. sunfish added reviewers: dschuff, ilya-biryukov. Herald added subscribers: cfe-commits, aheejin, jgravelle-google, sbc100. Herald added a project: clang.
Instead of just searching for wasm-opt in PATH, use `GetProgramPath`, which checks the `COMPILER_PATH` environment variable, `-B` paths, and `PATH. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D70780 Files: clang/lib/Driver/ToolChains/WebAssembly.cpp Index: clang/lib/Driver/ToolChains/WebAssembly.cpp =================================================================== --- clang/lib/Driver/ToolChains/WebAssembly.cpp +++ clang/lib/Driver/ToolChains/WebAssembly.cpp @@ -92,10 +92,10 @@ C.addCommand(std::make_unique<Command>(JA, *this, Linker, CmdArgs, Inputs)); - // When optimizing, if wasm-opt is in the PATH, run wasm-opt. + // When optimizing, if wasm-opt is available, run it. if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { - if (llvm::ErrorOr<std::string> WasmOptPath = - llvm::sys::findProgramByName("wasm-opt")) { + auto WasmOptPath = getToolChain().GetProgramPath("wasm-opt"); + if (WasmOptPath != "wasm-opt") { StringRef OOpt = "s"; if (A->getOption().matches(options::OPT_O4) || A->getOption().matches(options::OPT_Ofast)) @@ -106,7 +106,7 @@ OOpt = A->getValue(); if (OOpt != "0") { - const char *WasmOpt = Args.MakeArgString(*WasmOptPath); + const char *WasmOpt = Args.MakeArgString(WasmOptPath); ArgStringList CmdArgs; CmdArgs.push_back(Output.getFilename()); CmdArgs.push_back(Args.MakeArgString(llvm::Twine("-O") + OOpt));
Index: clang/lib/Driver/ToolChains/WebAssembly.cpp =================================================================== --- clang/lib/Driver/ToolChains/WebAssembly.cpp +++ clang/lib/Driver/ToolChains/WebAssembly.cpp @@ -92,10 +92,10 @@ C.addCommand(std::make_unique<Command>(JA, *this, Linker, CmdArgs, Inputs)); - // When optimizing, if wasm-opt is in the PATH, run wasm-opt. + // When optimizing, if wasm-opt is available, run it. if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { - if (llvm::ErrorOr<std::string> WasmOptPath = - llvm::sys::findProgramByName("wasm-opt")) { + auto WasmOptPath = getToolChain().GetProgramPath("wasm-opt"); + if (WasmOptPath != "wasm-opt") { StringRef OOpt = "s"; if (A->getOption().matches(options::OPT_O4) || A->getOption().matches(options::OPT_Ofast)) @@ -106,7 +106,7 @@ OOpt = A->getValue(); if (OOpt != "0") { - const char *WasmOpt = Args.MakeArgString(*WasmOptPath); + const char *WasmOpt = Args.MakeArgString(WasmOptPath); ArgStringList CmdArgs; CmdArgs.push_back(Output.getFilename()); CmdArgs.push_back(Args.MakeArgString(llvm::Twine("-O") + OOpt));
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits