================
@@ -178,6 +178,15 @@ void ProTypeVarargCheck::check(const 
MatchFinder::MatchResult &Result) {
   if (const auto *Matched = Result.Nodes.getNodeAs<CallExpr>("callvararg")) {
     if (hasSingleVariadicArgumentWithValue(Matched, 0))
       return;
+
+    // Skip builtins with custom type checking - they use variadics as an
+    // implementation detail to accept multiple types, not for C-style varargs.
+    if (const auto *FD = Matched->getDirectCallee())
+      if (const unsigned BuiltinID = FD->getBuiltinID();
+          BuiltinID &&
+          Result.Context->BuiltinInfo.hasCustomTypechecking(BuiltinID))
----------------
vbvictor wrote:

Then can we leave a FIXME or TODO in code?

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

Reply via email to