"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
> Apparently gcc's thought process is "the pointer is declared as struct
> varlena *, therefore must be at least 4-aligned, therefore the data at
> offset 2 is at least 2-aligned". The intermediate cast to "varattrib_1b_e *"
> did not prevent this; I had to assign the datum pointer into a separate
> local variable of that type to suppress the "optimization".
Fascinating.
Why do you cast arguments to memcmp to char* ?
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com