------- Comment #2 from rguenth at gcc dot gnu dot org 2008-10-14 13:20 ------- It is indeed an aliasing violation, you store a long and read a long*.
Fix it like int main() { int i; long a; long **b = malloc(8 * sizeof(long)); for (i = 0; i < 8; i++) *b++ = &a; b--; foo(6, (void **)b); -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37824