[clang] [clang][RISCV] support BITINT with mixed-type (PR #156592)

Craig Topper via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 3 08:55:52 PDT 2025


================
@@ -680,14 +680,11 @@ ABIArgInfo RISCVABIInfo::classifyArgumentType(QualType Ty, bool IsFixed,
     if (const auto *ED = Ty->getAsEnumDecl())
       Ty = ED->getIntegerType();
 
-    // All integral types are promoted to XLen width
-    if (Size < XLen && Ty->isIntegralOrEnumerationType()) {
-      return extendType(Ty, CGT.ConvertType(Ty));
-    }
-
     if (const auto *EIT = Ty->getAs<BitIntType>()) {
-      if (EIT->getNumBits() < XLen)
-        return extendType(Ty, CGT.ConvertType(Ty));
+      // FIXME: Maybe we should treat 32 as a special case and wait for
+      // the SPEC to decide.
----------------
topperc wrote:

```suggestion
      // the psABI to decide.
```

https://github.com/llvm/llvm-project/pull/156592


More information about the cfe-commits mailing list