https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124267
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note the warning can't be preproduced when compiling for aarch64. The main difference here is the order of operand execution. aarch64: ``` D.35510 = std::operator+<char, std::char_traits<char>, std::allocator<char> > (&x, "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar"); [return slot optimization] <bb 33> : D.35511 = std::__cxx11::to_string (i_3); [return slot optimization] D.35512 = std::operator+<char, std::char_traits<char>, std::allocator<char> > (&D.35510, &D.35511); [return slot optimization] ``` vs x86_64: ``` D.33754 = std::__cxx11::to_string (i_3); [return slot optimization] D.33753 = std::operator+<char, std::char_traits<char>, std::allocator<char> > (&x, "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar"); [return slot optimization] <bb 33> : D.33755 = std::operator+<char, std::char_traits<char>, std::allocator<char> > (&D.33753, &D.33754); [return slot optimization] ```
