"Tom Lane" <tgl@sss.pgh.pa.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