> Can you please, again, explain why we even have this wasting space in > all the component_ref's? > > tree.def simply says " Operand 2, if present, is the value of > DECL_FIELD_OFFSET, measured > in units of DECL_OFFSET_ALIGN / BITS_PER_UNIT." > > It doesn't say why this can't be computed on the fly and have 1 bit > that says whether we need to use that value or not.
Same reason as the lower bound and size in an ARRAY_REF: it might be a function of the value of a field in the record, so could be different for every access (discriminated records in Ada).