> > +             if (!operand_equal_p (DECL_FIELD_OFFSET (field0),
> > +                                   DECL_FIELD_OFFSET (field1),
> > +                                   flags & ~OEP_ADDRESS_OF)
> > +                 || !operand_equal_p (DECL_FIELD_BIT_OFFSET (field0),
> > +                                      DECL_FIELD_BIT_OFFSET (field1),
> > +                                      flags & ~OEP_ADDRESS_OF))
> 
> If it is an address, why do you need to handle
> DECL_BIT_FIELD_REPRESENTATIVE?  Taking address of a bit-field is not allowed.
> Perhaps just return false if the fields are bit-fields (or assert they
> aren't), and just compare DECL_FIELD*OFFSET of the fields themselves?

I took the code from nonoverlapping_component_refs_p_1, however in
compare_ao_refs i call compare_operands on OEP_ADDRESS for memory
operands, so it would be useful there.  I think it makes sense in that
context - in order to match memory acesses for equivalence we want to
first compare that they access same memory location...

Honza
> 
>       Jakub
> 

Reply via email to