[clang] 6a74483 - [clang][amdgpu] resolve type mismatch warning in conditional comparison (#220526)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Sep 5 00:51:00 PDT 2026
Author: Hardik Kumar
Date: 2026-09-05T09:50:56+02:00
New Revision: 6a74483027ad46b641ba2b472e5c4429d2db56f4
URL: https://github.com/llvm/llvm-project/commit/6a74483027ad46b641ba2b472e5c4429d2db56f4
DIFF: https://github.com/llvm/llvm-project/commit/6a74483027ad46b641ba2b472e5c4429d2db56f4.diff
LOG: [clang][amdgpu] resolve type mismatch warning in conditional comparison (#220526)
The following warning is generated because of a mismatch in the object
types.
```bash
/home/xane/Documents/shallowllvm/llvm-project/clang/lib/Basic/Targets/AMDGPU.cpp: In constructor ‘clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(const llvm::Triple&, const clang::TargetOptions&)’:
/home/xane/Documents/shallowllvm/llvm-project/clang/lib/Basic/Targets/AMDGPU.cpp:200:37: warning: enumerated mismatch in conditional expression: ‘llvm::AMDGPU::ArchFeatureKind’ vs ‘llvm::AMDGPU::R600FeatureKind’ [-Wenum-compare]
200 | GPUFeatures(Triple.isAMDGCN() ? llvm::AMDGPU::FEATURE_NONE
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
201 | : llvm::AMDGPU::getArchAttrR600(GPUKind)) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[1/166] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/CodeGenPGO.cpp.o^C
```
The type of `GpuFeatures` and return value of `getArchAttrR600()` is
ultimately an `unsigned` int value. Static cast the return value of the
method to `unsigned` to resolve the warning without any functional or
breaking changes.
Signed-off-by: Hardik Kumar <hardikxk at gmail.com>
Added:
Modified:
clang/lib/Basic/Targets/AMDGPU.cpp
Removed:
################################################################################
diff --git a/clang/lib/Basic/Targets/AMDGPU.cpp b/clang/lib/Basic/Targets/AMDGPU.cpp
index e4f2b8f18ced5..365378186ce6d 100644
--- a/clang/lib/Basic/Targets/AMDGPU.cpp
+++ b/clang/lib/Basic/Targets/AMDGPU.cpp
@@ -198,8 +198,10 @@ AMDGPUTargetInfo::AMDGPUTargetInfo(const llvm::Triple &Triple,
Triple.getSubArch())
: llvm::AMDGPU::parseArchAMDGCN(Opts.CPU))
: llvm::AMDGPU::parseArchR600(Opts.CPU)),
- GPUFeatures(Triple.isAMDGCN() ? llvm::AMDGPU::FEATURE_NONE
- : llvm::AMDGPU::getArchAttrR600(GPUKind)) {
+ GPUFeatures(
+ Triple.isAMDGCN()
+ ? llvm::AMDGPU::FEATURE_NONE
+ : static_cast<unsigned>(llvm::AMDGPU::getArchAttrR600(GPUKind))) {
resetDataLayout();
AddrSpaceMap = &AMDGPUAddrSpaceMap;
More information about the cfe-commits
mailing list