https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90920
--- Comment #5 from rguenther at suse dot de <rguenther at suse dot de> --- On June 20, 2019 6:42:10 PM GMT+02:00, "redi at gcc dot gnu.org" <gcc-bugzi...@gcc.gnu.org> wrote: >https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90920 > >--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- >I did experiment with putting the range checks in *both* places, the >std::rotate function and the std::__rotate helpers it calls. But >there's still >no guarantee you won't get a "bad" combination of definitions from >objects >built with e.g. 9.1 and 8.3 > >If we change the mangled names to make the "new" functions different >that >doesn't help, because the "old" functions will still be present in >already-built objects. > >Basically nothing we can do will fix the code in already compiled >objects. The >only guaranteed way to avoid the problem is to recompile anything built >with >9.1, and if you have to do that anyway, then the fix I put on trunk >works fine. > >So I think I'll just backport the same fix, and 9.1 will be a blip. Sounds good. Please document this on changes. Html in some prominent place (caveats section).