This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/26797] [4.3 regression] ACATS cxh1001 fails
- From: "kenner at vlsi1 dot ultra dot nyu dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Mar 2007 13:59:30 -0000
- Subject: [Bug ada/26797] [4.3 regression] ACATS cxh1001 fails
- References: <bug-26797-7210@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #34 from kenner at vlsi1 dot ultra dot nyu dot edu 2007-03-09 13:59 -------
Subject: Re: [4.3 regression] ACATS cxh1001 fails
> You may well respond that you are only supposed to forget
> information you deduced from the range of the type, not information
> you worked out by some other means. But these cannot really be
> distinguished, c.f. VRP.
Exactly. That's indeed the problem. It's similar to the whole
signed-overflow issue: what you're able to safely do with with
VRP-derived information depends on how you derived it and there's
no way of tracking that.
> Surely you only have to prove that it is in the range of Y, since if it
> is not in the range of X then you have a bounded error, and doing a NOP_EXPR
> should be perfectly legal.
Think of a range check being done in a subscript reference in the LHS of
an assignment. A bounded error is not allowed to cause a memory store
outside the bounds of an array.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26797