https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107323
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marxin at gcc dot gnu.org
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Simpler C test-case:
$ cat pr107323.c
int A[4];
int B[4];
static const char *__attribute__((noipa)) foo()
{
return "1";
}
int main()
{
const char *s = foo();
A[0] = 1000;
for(int i = 1; i < 4; ++i) {
B[i] = 0;
A[i] = 0;
if(s[0])
B[i] = 1;
A[i] = A[i - 1];
}
__builtin_printf ("A[3] = %d\n", A[3]);
if (A[3] != 1000)
__builtin_abort ();
}