https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119190
--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:e1da6283a1cbd5db474c0f7e5cca9b9876768199 commit r15-7946-ge1da6283a1cbd5db474c0f7e5cca9b9876768199 Author: Jakub Jelinek <ja...@redhat.com> Date: Tue Mar 11 10:57:30 2025 +0100 complex: Don't DCE unused COMPLEX_EXPRs for -O0 [PR119190] The PR116463 r15-3128 change regressed the following testcase at -O0. While for -O1+ we can do -fvar-tracking-assignments, for -O0 we don't (partly because it is compile time expensive and partly because at -O0 most of the vars live most of their lifetime in memory slots), so if we DCE some statements, it can mean that DW_AT_location for some vars won't be available or even it won't be possible to put a breakpoint at some particular line in the source. We normally perform dce just in the subpasses of pass_local_optimization_passes or pass_all_optimizations or pass_all_optimizations_g, so don't do that at all for -O0. So the complex change is an exception. And it was described as a way to help forwprop and reassoc, neither applies to -O0. This regresses PR119120 again though, I'll post a patch for that momentarily. 2025-03-11 Jakub Jelinek <ja...@redhat.com> PR debug/119190 * tree-complex.cc (update_complex_assignment, tree_lower_complex): Perform simple dce on dce_worklist only if optimize. * gfortran.dg/guality/pr119190.f90: New test.