https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109732
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> --- Looking at optimized dump before and after the revision I see an obvious error: diff -u good bad --- good 2023-05-04 14:12:16.160695781 +0200 +++ bad 2023-05-04 14:11:58.516230125 +0200 @@ -3399,9 +3399,9 @@ struct _Rb_tree_node_base * _77; struct basic_json * _79; struct binary_t * _88; - long int _101; void * _109; - bool _148; + bool _116; + long int _117; struct _Rb_tree_node_base * _181; <bb 2> [local count: 1073741824]: @@ -3445,13 +3445,13 @@ goto <bb 8>; [100.00%] <bb 7> [local count: 357524722]: - _148 = _73 == 0; - _101 = (long int) _148; + _116 = _73 != 0; + _117 = (long int) _116; <bb 8> [local count: 1071716297]: # SR.1026_134 = PHI <_77(5), 0B(6), 0B(7)> # SR.1027_139 = PHI <0B(5), _79(6), 0B(7)> - # SR.1028_138 = PHI <-9223372036854775808(5), -9223372036854775808(6), _101(7)> + # SR.1028_138 = PHI <-9223372036854775808(5), -9223372036854775808(6), _117(7)> # sit$m_it$object_iterator$_M_node_127 = PHI <_181(5), 0B(6), 0B(7)> # sit$m_it$primitive_iterator$m_it_125 = PHI <-9223372036854775808(5), -9223372036854775808(6), 1(7)> # sit$m_it$array_iterator$_M_current_56 = PHI <0B(5), _75(6), 0B(7)>