From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32613 invoked by alias); 15 Apr 2002 13:26:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 32589 invoked by uid 71); 15 Apr 2002 13:26:02 -0000 Resent-Date: 15 Apr 2002 13:26:02 -0000 Resent-Message-ID: <20020415132602.32588.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org, aj@suse.de, Ulrich.Weigand@de.ibm.com, HPENNER@de.ibm.com Resent-Reply-To: gcc-gnats@gcc.gnu.org, pthomas@suse.de Received:(qmail 30585 invoked by uid 61); 15 Apr 2002 13:21:35 -0000 Message-Id:<20020415132135.30584.qmail@sources.redhat.com> Date: Mon, 15 Apr 2002 06:26:00 -0000 From: pthomas@suse.de Reply-To: pthomas@suse.de To: gcc-gnats@gcc.gnu.org Cc: aj@suse.de, Ulrich.Weigand@de.ibm.com, HPENNER@de.ibm.com X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) X-GNATS-Notify:aj@suse.de, Ulrich.Weigand@de.ibm.com, HPENNER@de.ibm.com Subject: ada/6306: gcc on s390 gets ICE in verify_local_live_at_start, at flow.c:583 X-SW-Source: 2002-04/txt/msg00770.txt.bz2 List-Id: >Number: 6306 >Category: ada >Synopsis: gcc on s390 gets ICE in verify_local_live_at_start, at flow.c:583 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Mon Apr 15 06:26:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: pthomas@suse.de >Release: 3.1 20020408 (prerelease) >Organization: >Environment: s390-suse-linux >Description: gcc fails on IBM zSeries (s390) with: s390_bug_O3.c: In function `foo': s390_bug_O3.c:76: Internal compiler error in verify_local_live_at_start, at flow.c:583 This *only* happens when passed -O3. >How-To-Repeat: Compile the attached file with 'gcc -c -O3 390_bug_O3.c'. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/plain; name="s390_bug_O3.c" Content-Disposition: inline; filename="s390_bug_O3.c" unsigned long foo (unsigned long *rp, unsigned long *ap, int num, unsigned long w) { unsigned long c1 = 0; if (num <= 0) return (c1); while (num & ~3) { { unsigned long long t; t = (unsigned long long) w *(ap[0]) + (rp[0]) + (c1); (rp[0]) = (((unsigned long) (t)) & (0xffffffffL)); (c1) = (((unsigned long) ((t) >> 32)) & (0xffffffffL)); }; { unsigned long long t; t = (unsigned long long) w *(ap[1]) + (rp[1]) + (c1); (rp[1]) = (((unsigned long) (t)) & (0xffffffffL)); (c1) = (((unsigned long) ((t) >> 32)) & (0xffffffffL)); }; { unsigned long long t; t = (unsigned long long) w *(ap[2]) + (rp[2]) + (c1); (rp[2]) = (((unsigned long) (t)) & (0xffffffffL)); (c1) = (((unsigned long) ((t) >> 32)) & (0xffffffffL)); }; { unsigned long long t; t = (unsigned long long) w *(ap[3]) + (rp[3]) + (c1); (rp[3]) = (((unsigned long) (t)) & (0xffffffffL)); (c1) = (((unsigned long) ((t) >> 32)) & (0xffffffffL)); }; ap += 4; rp += 4; num -= 4; } if (num) { { unsigned long long t; t = (unsigned long long) w *(ap[0]) + (rp[0]) + (c1); (rp[0]) = (((unsigned long) (t)) & (0xffffffffL)); (c1) = (((unsigned long) ((t) >> 32)) & (0xffffffffL)); }; if (--num == 0) return c1; { unsigned long long t; t = (unsigned long long) w *(ap[1]) + (rp[1]) + (c1); (rp[1]) = (((unsigned long) (t)) & (0xffffffffL)); (c1) = (((unsigned long) ((t) >> 32)) & (0xffffffffL)); }; if (--num == 0) return c1; { unsigned long long t; t = (unsigned long long) w *(ap[2]) + (rp[2]) + (c1); (rp[2]) = (((unsigned long) (t)) & (0xffffffffL)); (c1) = (((unsigned long) ((t) >> 32)) & (0xffffffffL)); }; return c1; } return (c1); }