This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26797] [4.2 Regression] ACATS c35507m cd2a23e cxh1001 failures
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Mar 2006 20:31:52 -0000
- Subject: [Bug tree-optimization/26797] [4.2 Regression] ACATS c35507m cd2a23e cxh1001 failures
- References: <bug-26797-7210@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from law at redhat dot com 2006-03-27 20:31 -------
Subject: Re: [4.2 Regression] ACATS c35507m
cd2a23e cxh1001 failures
On Mon, 2006-03-27 at 20:12 +0000, laurent at guerby dot net wrote:
>
> I don't know how it goes through gigi and the BE but the check
>
> system__unsigned_types__unsigned!(A) in 4 .. 5
>
> must not go away. May be the front-end is wrong in using function c35507m__char
> as input type for the parameter though.
And this is the heart of why I'm not a fan of Ada's type
representation. We have an object, A with a defined type
which only allows the values 4 & 5. However, we have a
program which effectively demands that we put the value 3
into A.
VRP is doing exactly what it should be doing with the code it's
being presented. Ada needs to either pass A in a different
type, or use some other kind of conversion mechanism which
doesn't allow VRP to propagate range information from the
parameter. I've never looked closely, but VIEW_CONVERT_EXPR
may be what you want rather than a NOP_EXPR or CONVERT_EXPR.
jeff
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26797