https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117825
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I wonder if we just shouldn't call check_function_arguments at all from cp_build_function_call_vec when complain doesn't contain tf_warning. At least, build_over_call doesn't call it in that case. So --- gcc/cp/typeck.cc.jj 2025-01-02 11:47:10.437498434 +0100 +++ gcc/cp/typeck.cc 2025-01-03 18:30:06.530525112 +0100 @@ -4513,9 +4513,11 @@ cp_build_function_call_vec (tree functio /* Check for errors in format strings and inappropriately null parameters. */ - bool warned_p = check_function_arguments (input_location, fndecl, fntype, - nargs, argarray, NULL, - cp_comp_parm_types); + bool warned_p + = ((complain & tf_warning) + && check_function_arguments (input_location, fndecl, fntype, + nargs, argarray, NULL, + cp_comp_parm_types)); ret = build_cxx_call (function, nargs, argarray, complain, orig_fndecl);