[Bug tree-optimization/123431] [13/14 Regression] ICE with __builtin_constant_p and __builtin_va_arg_pack usage in ranger

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Mar 15 06:05:36 GMT 2026


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123431

--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:0dfff6fd40c32f38989b5737ff56a5d9640ee575

commit r14-12388-g0dfff6fd40c32f38989b5737ff56a5d9640ee575
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Jan 10 11:35:30 2026 +0100

    ranger: Verify gimple_call_num_args for several builtins [PR123431]

    While gimple_call_combined_fn already do call
    gimple_builtin_call_types_compatible_p and for most of builtins ensures
    the right types of arguments, for type generic builtins it does not,
    from POV of that function those functions are rettype (...).
    Now, while the FE does some number of argument checking for the type
    generic builtins, as the testcase below shows, it can be gamed.

    So, this patch checks the number of arguments for type generic builtins
    and does nothing if they have unexpected number of arguments.
    Also for the returns arg verifies it can access the first argument.

    2026-01-10  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/123431
            * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
            Punt if type-generic builtins with a single argument don't have
            exactly one argument.  For returns_arg punt if call doesn't have
            at least one argument.

            * gcc.dg/pr123431.c: New test.

    (cherry picked from commit 8a6ff9ca60cf532f5b4fa55a85a289076819e625)


More information about the Gcc-bugs mailing list