Todd,

On 05/27/2014 06:16 PM, Todd Allen wrote:
Sorry for the last response on this.  But perhaps an example from our Ada
compiler will help you.

Well, thank you very much for this!

Anyway, the significant thing is that we're not referencing "n" directly, but
rather the stored values for the upper bound.  If you store the result of
max(0,n) somewhere, you could reference it directly.  For the case of general
expression upper bounds, you'd have to store the values somewhere (freeze them)
in case they might produce different results on subsequent evaluations.  But I
don't know if the max(0,n) might be a special case where you don't do that.

That's interesting. Unfortunately, we do not store the value of the upper bounds in the record (nor anywhere else): the only way to get it at runtime is to compute it from the discriminants. The discriminants are the only runtime arguments that can determine the array bounds, so there is no risk that the bound expressions would produce different results sometimes.

--
Pierre-Marie de Rodat
_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org

Reply via email to