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 <[email protected]>

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;


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to