This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Mar 2008 15:56:00 -0000
- Subject: [Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code
- References: <bug-30911-13647@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #63 from rguenther at suse dot de 2008-03-30 15:56 -------
Subject: Re: VRP fails to eliminate range checks
in Ada code
On Sun, 30 Mar 2008, ebotcazou at gcc dot gnu dot org wrote:
> ------- Comment #62 from ebotcazou at gcc dot gnu dot org 2008-03-30 15:45 -------
> > Yes, even with -gnato. With -gnato it checks that the
> > addition doesn't overflow.
>
> Oh, sorry, I thought we were talking about the overflow check...
>
> > But there are no checks on the array access. It looks like the f-e
> > doesn't generate them in the first place (as opposed to fold or gigi
> > making a mistake).
>
> This is as documented in the GNAT manual, section 3.2.4 Validity Checking.
> You need to pass -gnatVs to have them.
So even GNAT assumes parameter values are in-range? Wouldn't that
cause an bounded error to become an unbounded error if it were
out-of-range?
I'm somewhat confused on what the Ada language specification is and
what is GNAT implementation freedom...
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30911