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

--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-15 branch has been updated by Jakub Jelinek
<[email protected]>:

https://gcc.gnu.org/g:7debee2cb6503b2af0f1d43b0e56b759474396d5

commit r15-10691-g7debee2cb6503b2af0f1d43b0e56b759474396d5
Author: Jakub Jelinek <[email protected]>
Date:   Tue Jan 6 08:36:20 2026 +0100

    tree-object-size: Deterministic SSA generation [PR123351]

    The order of evaluation of function arguments is unspecified in C++.
    The function object_sizes_set_temp called object_sizes_set with two
    calls to make_ssa_name() as arguments.  Since make_ssa_name() has the
    side effect of incrementing the global SSA version counter, different
    architectures of the same compiler evaluated these calls in different
    orders.

    This resulted in non-deterministic SSA version numbering between
    x86_64 and aarch64 hosts during cross-compilation, leading to
    divergent object files.

    Sequencing the calls into separate statements ensures deterministic
    evaluation order.

    2026-01-06  Jakub Jelinek  <[email protected]>
                Marco Falke  <[email protected]>

            PR tree-optimization/123351
            * tree-object-size.cc (object_sizes_set_temp): Separate calls to
            make_ssa_name to ensure deterministic execution order.

    (cherry picked from commit c6085ca0ed4cef3bcf4eb382cb71e44219c10f6e)

Reply via email to