[clang] [Sema] Check arg count for builtins with CustomTypeChecking (PR #222841)

via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 11 06:55:01 PDT 2026


================
@@ -145,6 +145,16 @@ bool SemaPPC::CheckPPCBuiltinFunctionCall(const TargetInfo &TI,
   //  - IsIntType: enforces any integer type
   // Lambdas centralize type checks for BCD builtin handlers
 
+  // reject calls with more args than the builtin's declared prototype
----------------
im-lunex wrote:

>I worry for folks adding new builtins later which follow the pattern used outside of the PPC builtins.

okay if i am not wrong, what you are saying here is if someone uses the variadic pattern, i think this check

```
(!FPT->isVariadic() &&
    SemaRef.checkArgCountAtMost(TheCall, FPT->getNumParams()))
```

should catch that.. for Variadic prototype the check will be skipped totally.

>Would it be viable to disable custom type checking for these builtins instead?

fair point. However, thats a larger refactor because these builtins use `BuiltinConstantArgRange` to enforce immediate value constraints (Arg2 must be 0 or 1 kind of things) which cant be expressed in the prototype string - think that would be much more of work to do.. but this could be a good follow-up.

THANKS a lot for the review.!




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


More information about the cfe-commits mailing list