On Fri, 12 Feb 2021, Andrew MacLeod via Gcc wrote:
I dont't want to immediately open a PR, so I'll just ask about
testsuite/gcc.dg/pr83609.c.
the compilation string is
-O2 -fno-tree-forwprop -fno-tree-ccp -fno-tree-fre -fno-tree-pre
-fno-code-hoisting
Which passes as is.
if I however add -fno-tree-vrp as well, then it looks like dead store
maybe does something wong...
with EVRP running, we translate function foo() from
complex float foo ()
{
complex float c;
complex float * c.0_1;
complex float _4;
<bb 2> :
c.0_1 = &c;
MEM[(long long unsigned int *)c.0_1] = 1311768467463790320;
_4 = c;
Isn't that a clear violation of strict aliasing?
--
Marc Glisse