This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Testcase for strict-aliasing wanted


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]