[Bug libstdc++/99117] [9/10/11 Regression] cannot accumulate std::valarray

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 23 09:28:56 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99117

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|needs-reduction             |

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the issue is definitely the __restrict__ qualification of the
valarray::__M_data member.  As you noted __valarray_copy is where
points-to analysis sees the restrict qualification when accessing
_Array<_Tp>::_M_data and that causes it to disambiguate against
the accesses via __e.

So I see nothing wrong with points-to analysis handling the
__restrict qualification.  Whether there's a bug in std::valarray
(or in std::accumulate) or whether the testcase is invalid remains
your choice.  I'm keeping it wrong-code classified for now.


More information about the Gcc-bugs mailing list