From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28921 invoked by alias); 6 Jan 2003 22:56:03 -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 28813 invoked by uid 71); 6 Jan 2003 22:56:01 -0000 Resent-Date: 6 Jan 2003 22:56:01 -0000 Resent-Message-ID: <20030106225601.28812.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, rhofmann@rayed.de Received: (qmail 21854 invoked by uid 61); 6 Jan 2003 22:50:48 -0000 Message-Id: <20030106225048.21852.qmail@sources.redhat.com> Date: Mon, 06 Jan 2003 22:56:00 -0000 From: rhofmann@rayed.de Reply-To: rhofmann@rayed.de To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/9207: GCC3.2 arm prolog stack frame use before allocation with -Os X-SW-Source: 2003-01/txt/msg00387.txt.bz2 List-Id: >Number: 9207 >Category: c++ >Synopsis: GCC3.2 arm prolog stack frame use before allocation with -Os >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Jan 06 14:56:01 PST 2003 >Closed-Date: >Last-Modified: >Originator: raymund hofmann >Release: gcc3.2 >Organization: >Environment: cygwin on 686 W2000 Machine gcc3.2 built on it >Description: compiling the source with -Os gives a non interrupt-safe prolog like: .file "topolino_bug.cpp" .text .align 2 .global _ZN10CMoveFrame4drawEb .type _ZN10CMoveFrame4drawEb,function _ZN10CMoveFrame4drawEb: @ args = 0, pretend = 0, frame = 68 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc} sub fp, ip, #4 str r0, [fp, #-84] *** store this * before sub sp, sp, #72 *** stack is allocated ... ... thus a IRQ/FIQ which stores data on the Stack on which this code is running can corrupt the data which was stored on the stack ("str r0, [fp, #-84]") before the allocation ("sub sp, sp, #72"). Compiling without -Os gives a correct prolog first allocating and then using the stack frame. >How-To-Repeat: run 'bug.sh' on bash >Fix: workaround -mno-sched-prolog >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/x-gzip-compressed; name="topolino_bug.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="topolino_bug.tar.gz" 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 LbXUUksttdRSSy211FJLLf0P0b8AQRuWkQBQAAA=