]> git.ipfire.org Git - thirdparty/gcc.git/commit
ipa-cp: Fix assert triggering with -fno-toplevel-reorder (PR 106260)
authorMartin Jambor <mjambor@suse.cz>
Fri, 6 Feb 2026 21:49:43 +0000 (22:49 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Fri, 6 Feb 2026 21:53:05 +0000 (22:53 +0100)
commitf7e335aa007f32a003dde88a7500e326b1dcef65
treeb5aa9852145852fbae5b74878aaf2743323891da
parenta8df3d91a9ce8aae936d9486b9806149bf57a0a0
ipa-cp: Fix assert triggering with -fno-toplevel-reorder (PR 106260)

with -fno-toplevel-reorder (and -fwhole-program), there apparently can
be local functions without any callers.  This is something that IPA-CP
does not like because its propagation verifier checks that local
functions do not end up with TOP in their lattices.  Therefore there
is an assert checking that all call-less unreachable functions have
been removed, which tigers in PR 106260 with these two options.

This patch detects the situation and marks the lattices as variable,
thus avoiding both the assert trigger and the verification failure.

gcc/ChangeLog:

2022-07-13  Martin Jambor  <mjambor@suse.cz>

PR ipa/106260
* ipa-cp.cc (initialize_node_lattices): Replace assert that there are
callers with handling that situation when -fno-toplevel_reorder.

gcc/testsuite/ChangeLog:

2022-07-13  Martin Jambor  <mjambor@suse.cz>

PR ipa/106260
* g++.dg/ipa/pr106260.C: New test.
gcc/ipa-cp.cc
gcc/testsuite/g++.dg/ipa/pr106260.C [new file with mode: 0644]