From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6269 invoked by alias); 25 May 2002 04:36:02 -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 6235 invoked by uid 71); 25 May 2002 04:36:00 -0000 Resent-Date: 25 May 2002 04:36:00 -0000 Resent-Message-ID: <20020525043600.6234.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 Resent-Reply-To: gcc-gnats@gcc.gnu.org, vacb4@freenet.de Received:(qmail 5746 invoked by uid 61); 25 May 2002 04:31:37 -0000 Message-Id:<20020525043137.5745.qmail@sources.redhat.com> Date: Sat, 25 May 2002 00:27:00 -0000 From: vacb4@freenet.de Reply-To: vacb4@freenet.de To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: optimization/6810: GCC 3.1 generates incorrect code if -O2 -mcpu=pentium3 -fomit-frame-pointer are specified X-SW-Source: 2002-05/txt/msg00802.txt.bz2 List-Id: >Number: 6810 >Category: optimization >Synopsis: GCC 3.1 generates incorrect code if -O2 -mcpu=pentium3 -fomit-frame-pointer are specified >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Fri May 24 21:36:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Peter Joachim >Release: gcc version 3.1 >Organization: >Environment: Windows NT 4.0 SP6, Pentium III (Coppermine) 850 MHz, Cygwin >Description: Compiling the code sample using -O2 -march=pentium3 -fomit-frame-pointer generates code that does not correctly calculate the addresses of local variables. Namely the address of local array c1 in testfunc2 is not correctly passed to dummy_func. The reason is the leal instruction (*) in the prologue to testfunc2 that incorrectly appears before _alloca is called, but should be placed after the _alloca call. _testfunc2: pushl %ebp movl $24076, %eax pushl %edi pushl %esi pushl %ebx leal 18064(%esp), %esi (*) call __alloca movl %esi, 8(%esp) >How-To-Repeat: Correct code is generated with -fno-omit-frame-pointer: $ gcc -Wall -O2 -march=pentium3 -fno-omit-frame-pointer -fverbose-asm bugofp.i -o bugofp.exe $ ./bugofp.exe a1a1a1a1 a2a2a2a2 a3a3a3a3 a4a4a4a4 a5a5a5a5 a6a6a6a6 a7a7a7a7 a8a8a8a8 a9a9a9a9 aaaaaaaa abababab acacacac -fomit-frame-pointer triggers the bug: $ gcc -Wall -O2 -march=pentium3 -fomit-frame-pointer -fverbose-asm bugofp.i -o bugofp.exe $ ./bugofp.exe a1a1a1a1 a2a2a2a2 0 a4a4a4a4 a5a5a5a5 a6a6a6a6 a7a7a7a7 a8a8a8a8 a9a9a9a9 aaaaaaaa abababab acacacac >Fix: Don't specify -march=pentium3 -fomit-frame-pointer >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="bugofp.i.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bugofp.i.bz2" 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 uHtUtVrBQVCzp2tGxH/F3JFOFCQCs8tigA==