> So two different sized pointers to aggregate types will also have a > problem?
Nope, you misread the test: /* Changes in machine mode are never useless conversions unless we deal with aggregate types in which case we defer to later checks. */ if (TYPE_MODE (inner_type) != TYPE_MODE (outer_type) && !AGGREGATE_TYPE_P (inner_type)) return false; This will return false for any couple of pointers with different modes. -- Eric Botcazou