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]
```

Reply via email to