On 28/02/12 17:48, John Regehr wrote:
>> void t2(double *x)
>> {
>> long long a[2];
>> a[0] = 3;
>> a[1] = 5;
>> *x = * ((double *) a);
>> *(x+1) = * ((double *) &a[a[0]-2]);
>> }
>
> Doesn't this code violate the strict aliasing rules?
Maybe, but the LLVM IR he showed seems perfectly well defined.
Ciao, Duncan.