[Bug c++/82107] [5/6/7/8 Regression] O2 optimisation on amd64 leads to error
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Sep 5 18:15:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82107
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Keywords| |wrong-code
Last reconfirmed| |2017-09-05
CC| |marxin at gcc dot gnu.org
Assignee|unassigned at gcc dot gnu.org |marxin at gcc dot gnu.org
Ever confirmed|0 |1
Summary|O2 optimisation on amd64 |[5/6/7/8 Regression] O2
|leads to error |optimisation on amd64 leads
| |to error
Target Milestone|--- |8.0
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed, started with r221406, which is IPA ICF related revision.
ICF is responsible for following merge:
void FooBase<T>::payload(std::__cxx11::wstring&, std::__cxx11::wstring&) [with
T = FooImpl] (struct FooBase * const this, struct wstring & result1, struct
wstring & result2)
{
<bb 2> [100.00%]:
std::__cxx11::basic_string<wchar_t>::assign (result1_3(D), "r");
std::__cxx11::basic_string<wchar_t>::assign (result2_4(D), "r");
return;
}
void FooImpl::real_payload(std::__cxx11::wstring&, std::__cxx11::wstring&)
(struct FooImpl * const this, struct wstring & result1, struct wstring &
result2)
{
<bb 2> [100.00%]:
std::__cxx11::basic_string<wchar_t>::assign (result1_2(D), "r");
std::__cxx11::basic_string<wchar_t>::assign (result2_3(D), "r");
return;
}
Which should be fine as both functions do not touch this pointer. I'll
investigate more tomorrow.
Sorry for the breakage.
More information about the Gcc-bugs
mailing list