Index: clang/lib/Driver/ToolChains/AMDGPU.cpp =================================================================== --- clang/lib/Driver/ToolChains/AMDGPU.cpp +++ clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -20,6 +20,7 @@ #include "llvm/Support/Host.h" #include "llvm/Support/LineIterator.h" #include "llvm/Support/Path.h" +#include "llvm/Support/Process.h" #include "llvm/Support/VirtualFileSystem.h" #include @@ -199,9 +200,10 @@ ROCmSearchDirs.emplace_back(RocmPathArg.str()); DoPrintROCmSearchDirs(); return ROCmSearchDirs; - } else if (const char *RocmPathEnv = ::getenv("ROCM_PATH")) { - if (!StringRef(RocmPathEnv).empty()) { - ROCmSearchDirs.emplace_back(RocmPathEnv); + } else if (Optional RocmPathEnv = + llvm::sys::Process::GetEnv("ROCM_PATH")) { + if (!RocmPathEnv->empty()) { + ROCmSearchDirs.emplace_back(std::move(*RocmPathEnv)); DoPrintROCmSearchDirs(); return ROCmSearchDirs; } @@ -374,8 +376,9 @@ if (!RocmDeviceLibPathArg.empty()) LibDevicePath = RocmDeviceLibPathArg[RocmDeviceLibPathArg.size() - 1]; - else if (const char *LibPathEnv = ::getenv("HIP_DEVICE_LIB_PATH")) - LibDevicePath = LibPathEnv; + else if (Optional LibPathEnv = + llvm::sys::Process::GetEnv("HIP_DEVICE_LIB_PATH")) + LibDevicePath = std::move(*LibPathEnv); auto &FS = D.getVFS(); if (!LibDevicePath.empty()) {