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