[Bug ipa/125699] [13/14/15 Regression] ICE (nondeterministic) on valid code at -O3 with -g on x86_64-linux-gnu: in get_expr_operands, at tree-ssa-operands.cc:943
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 17 03:48:33 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125699
--- Comment #12 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-15 branch has been updated by Andrew Pinski
<pinskia@gcc.gnu.org>:
https://gcc.gnu.org/g:7a5ad5ac6096b824ce03d4509944f1f8de710859
commit r15-11292-g7a5ad5ac6096b824ce03d4509944f1f8de710859
Author: Andrew Pinski <andrew.pinski@oss.qualcomm.com>
Date: Tue Jun 9 18:12:52 2026 -0700
ipa: Fix lifetime issue with hash_map::put in prepare_debug_expressions
[PR125699]
Here the code was originally:
tree *d = m_dead_ssa_debug_equiv.get (value);
m_dead_ssa_debug_equiv.put (dead_ssa, *d);
but hash_map::put's 2nd argument is a reference.
So if the hashmap decides it needs to resize, the argument
is freed. So the fix is simple change the type of d to tree
and dereference the get. Since tree is a pointer there is not
enough data to care about the extra copy.
r12-5630-gb3f60112edcb85 was a similar fix in the same function in fact.
Pushed as obvious after a bootstrapped and tested on x86_64-linux-gnu.
PR ipa/125699
gcc/ChangeLog:
* ipa-param-manipulation.cc
(ipa_param_body_adjustments::prepare_debug_expressions): Fix
lifetime issue with m_dead_ssa_debug_equiv usage.
Signed-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>
(cherry picked from commit 225fb1e771972091445019f490b9a487b8b821fb)
More information about the Gcc-bugs
mailing list