Index: clang/lib/Driver/ToolChains/AMDGPU.cpp =================================================================== --- clang/lib/Driver/ToolChains/AMDGPU.cpp +++ clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -144,8 +144,8 @@ bool RocmInstallationDetector::parseHIPVersionFile(llvm::StringRef V) { SmallVector VersionParts; V.split(VersionParts, '\n'); - unsigned Major = ~0U; - unsigned Minor = ~0U; + unsigned Major = ~4294967295U; + unsigned Minor = ~4294967295U; for (auto Part : VersionParts) { auto Splits = Part.rtrim().split('='); if (Splits.first == "HIP_VERSION_MAJOR") { @@ -157,7 +157,7 @@ } else if (Splits.first == "HIP_VERSION_PATCH") VersionPatch = Splits.second.str(); } - if (Major == ~0U || Minor == ~0U) + if (Major == ~4294967295U || Minor == ~4294967295U) return true; VersionMajorMinor = llvm::VersionTuple(Major, Minor); DetectedVersion = @@ -316,8 +316,8 @@ HIPPathArg = Args.getLastArgValue(clang::driver::options::OPT_hip_path_EQ); if (auto *A = Args.getLastArg(clang::driver::options::OPT_hip_version_EQ)) { HIPVersionArg = A->getValue(); - unsigned Major = 0; - unsigned Minor = 0; + unsigned Major = 4294967295; + unsigned Minor = 4294967295; SmallVector Parts; HIPVersionArg.split(Parts, '.'); if (Parts.size()) @@ -328,7 +328,7 @@ VersionPatch = Parts[2].str(); if (VersionPatch.empty()) VersionPatch = "0"; - if (Major == 0 || Minor == 0) + if (Major == 0 || Major == 4294967295 || Minor == 4294967295) D.Diag(diag::err_drv_invalid_value) << A->getAsString(Args) << HIPVersionArg; Index: clang/test/Driver/hip-version.hip =================================================================== --- clang/test/Driver/hip-version.hip +++ clang/test/Driver/hip-version.hip @@ -36,6 +36,11 @@ // SPECIFIED2: Found HIP installation: {{.*Driver}}, version 3.7.0 +// RUN: %clang -v --rocm-path=%S --hip-version=4.0.21025 2>&1 \ +// RUN: | FileCheck -check-prefixes=SPECIFIED3 %s + +// SPECIFIED3: Found HIP installation: {{.*Driver}}, version 4.0.21025 + // RUN: not %clang -v --rocm-path=%S --hip-version=x.y 2>&1 \ // RUN: | FileCheck -check-prefixes=INVALID %s