Testcase for strict-aliasing wanted
Osku Salerma
osku@iki.fi
Fri Jan 18 12:42:00 GMT 2002
Does anybody have a simple testcase available that breaks with strict
aliasing enabled? I tried to construct my own, but I can't get either
2.95.2 or the latest CVS version to break intentionally. Either I'm
misunderstanding some of the aliasing rules or gcc isn't optimizing as
aggressively in this case as would be needed for the aliasing issues
to surface.
For reference, here's my (not-working) effort:
#include <stdio.h>
void f(char* p1, int* p2)
{
char c1,c2;
c1 = *p1;
*p2 = 0;
c2 = *p1;
printf("(%d,%d)\n", c1,c2);
}
int main(void)
{
char a[4];
a[0] = 1;
f(a, (int*)a);
return 0;
}
--
Osku Salerma - osku@iki.fi - http://www.iki.fi/osku/
Information wants to be free.
More information about the Gcc
mailing list