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.