On Mon, Jun 15, 2020 at 10:23 AM Eric Botcazou <botca...@adacore.com> wrote:
>
> > The patch probably fixes only part of the issues with SRA and rev-storage.
>
> Well, this issue (coming from a bypass in SRA) is the first issue uncovered
> with rev-storage in SRA for years.
>
> > I see in build_ref_for_model:
> >
> >       /* The flag will be set on the record type.  */
> >       REF_REVERSE_STORAGE_ORDER (t) = 0;
> >
> > for the case there was a COMPONENT_REF, so this is for the case where
> > the model did not have that?
>
> No, it's the other way around: model->reverse is true so the flag will be set
> on the MEM out of build_ref_for_offset.  But the type of the MEM is aggregate,
> which means that the flag may not be set on the MEM; instead it should be set
> on the type itself, as indicated in the comment.

Ah OK.

> > Based on your assertion above can we derive TYPE_REVERSE_STORAGE_ORDER from
> > the passed in racc and thus set the flag correctly in build_ref_for_model
> > instead?
>
> Well, the code is a bypass that builds an access on the LHS from a model of
> the RHS(!), so things need to be patched up and I'd rather not introduce bugs
> elsewhere if possible...

Hmm, true.  So the patch is OK then.

Thanks,
Richard.

> --
> Eric Botcazou

Reply via email to