This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: As-if Infinitely Ranged Integer Model


On 07/27/2009 12:25 PM, Robert Dewar wrote:
Laurent GUERBY wrote:

if Dynamic_N >= T'First and Dynamic_N > T'Last then
Huh? I can't understand the first comparison.
Actually Ada is not Fortran-66 and allows empty loops, no?

Ada for loop over "A .. B" will be empty if "A > B" and we obviously must not raise an exception if the loop is empty hence the first comparison is equivalent to "not (T'First > Dynamic_N)" which is true when the loop is not empty.

GNAT does not do this kind of hoisting, though this particular case could be fiddled in the front end.

I suppose though that in Ada Dynamic_N will often be a subtype of T, at which point the hoisting is pointless because you know that the check passes.


Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]