https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123423
Bug ID: 123423
Summary: Bad range end when using split_view twice in optimized
mode
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: Sebastien.Ponce at cern dot ch
Target Milestone: ---
It looks like there is an issue with std::ranges::split_view, when it is
applied twice to split further the results of a first split, namely the end of
the last subrange of the first range is not correct.
this only happens in optimized mode (-O2, -O3) and runs fine in -O1 or -Og
mode.
I've built a reproducer on godbolt : https://godbolt.org/z/3MvYYGEb4
It parses the string "v1=v2,v3=v4" by spliting first on "," and then further
spliting on "=".
See how the -O1 version parses correctly the input, splitting first on ',' and
then on '=' while the -O2 version fails in having a proper end for the first
item.