This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c++/9207: GCC3.2 arm prolog stack frame use before allocation with -Os


>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=


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]