> 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? John