From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13933 invoked by alias); 30 Mar 2006 07:58:41 -0000 Received: (qmail 13891 invoked by uid 48); 30 Mar 2006 07:58:38 -0000 Date: Thu, 30 Mar 2006 07:58:00 -0000 Message-ID: <20060330075838.13889.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/26797] [4.2 Regression] ACATS c35507m cd2a23e cxh1001 failures In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ebotcazou at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-03/txt/msg02925.txt.bz2 List-Id: ------- Comment #10 from ebotcazou at gcc dot gnu dot org 2006-03-30 07:58 ------- > Looks like the same bug that Gigi doesn't currently use VIEW_CONVERT_EXPR > for this type of Unchecked_Conversion. So already on my plate. I think it's worse, the problematic function reads: function c35507m__charRP (A : c35507m__char; F : boolean) return integer is begin if system__unsigned_types__unsigned!(A) in 4 .. 5 then return integer(system__unsigned_types__unsigned!(A) - 4); else [constraint_error when F "invalid data"] return -1; end if; end c35507m__charRP; I'm not sure a VIEW_CONVERT_EXPR will be sufficient because of the type of A. sizes-gimplified public visited SI size unit size user align 32 symtab 0 alias set 0 precision 32 min max RM size > readonly QI size unit size align 8 symtab 0 alias set -1 arg-types chain chain >>> pointer_to_this > readonly addressable static QI file c35507m.adb line 5 context initial arguments unit size user align 8 symtab 0 alias set -1 precision 8 min max RM size > readonly unsigned QI file c35507m.adb line 5 size unit size align 8 context initial So c35507m__charRP "converts" its argument to c35507m__char before the check that would allow it to do so! Exactly the same issue as the one we have recently addressed in convert_with_check. I think it's a front-end problem and the argument of c35507m__charRP should be in the base type. -- ebotcazou at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|kenner at gcc dot gnu dot |ebotcazou at gcc dot gnu dot |org |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26797