https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117508
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Hmm, you're right, for the reduced case it is fixed in GCC 14.1
But for the original case I reduced, it's not:
#include <unordered_map>
#include <string>
void test01() {
std::unordered_map<std::string, std::string> m
{ {"E", "E" }, { "T", "T" } };
m.insert({ {"E", "E" }, { "T", "T" } });
}
int main() {
test01();
return 0;
}
Temporary breakpoint 1, main () at 83709.cc:12
12 test01();
test01 () at 83709.cc:9
9 }
6 { {"E", "E" }, { "T", "T" } };
9 }
8 m.insert({ {"E", "E" }, { "T", "T" } });
Continuing.
We step into line 9, then line 6, then line 9, then line 8. That's exactly the
same behaviour as for the reduced one, but still present on trunk.