Hello, > > -- base of the reference > > -- constant offset > > -- vector of indices > > -- type of the accessed location > > -- original tree of the memory reference (or another summary of the > > structure of the access, for aliasing purposes) > > -- flags > > What do you do with Ada COMPONENT_REFs, at a variable offset?
for concreteness, let us consider a.x{offset: n} I have considered three possibilities 1) making the offset part of the expression for base, i.e., having tmp = &a + n and reference with base: tmp 2) allowing the offset in the reference to be non-constant, i.e., having reference with base: &a, offset: n 3) making this offset into an index, i.e, having base: &a, indices: (step:1, value: n) Out of these, I like 3) the most, although it might be fairly expensive memory-wise (any idea how common the variable offsets are?) Zdenek