From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30317 invoked by alias); 17 May 2002 05:26:01 -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 30293 invoked by uid 71); 17 May 2002 05:26:01 -0000 Date: Thu, 16 May 2002 22:26:00 -0000 Message-ID: <20020517052601.30286.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Nam SungHyun Subject: Re: optimization/6673: gcc-3.1 produces wrong assembly code Reply-To: Nam SungHyun X-SW-Source: 2002-05/txt/msg00479.txt.bz2 List-Id: The following reply was made to PR optimization/6673; it has been noted by GNATS. From: Nam SungHyun To: Richard Henderson , rth@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, namsh@kldp.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Cc: Subject: Re: optimization/6673: gcc-3.1 produces wrong assembly code Date: Fri, 17 May 2002 14:24:42 +0900 Richard Henderson wrote: > On Fri, May 17, 2002 at 01:53:24PM +0900, Nam SungHyun wrote: > > I saw the feed back message from the gnats web, but did not get a > > mail. Did not know how I can reply for that feedback. > > The gnats bug form has an originator email address that > it cc's all status changes on. Did you mistype it? I typed namsh@kldp.org and it's valid. ??? > > the 'a' in my example source is a 'global variable'. > > So, should the gcc treat it as a volatile by default? > > No. > > > There are so many multi-threaded program. I didn't see > > any program which use volatile for the global variable. > > Nor does any C compiler produce "thread aware" code by default. > > You have to use cpu-specific thread synchronization primitives > in order for that to work reliably. Such a primitive would as > a side effect tell the compiler that data must be committed to > memory, which would cause 'a' to be written. > > You did none of these. You mean I should use '-fvolatile-global -fvolatile-static'? Now I compiled the example source with: ppc-eabi-gcc -O1 -fvolatile-global -fvolatile-static -S ex.c The result is same. What's wrong? Regards, namsh .file "ex.c" .globl __eabi .section ".text" .align 2 .globl main .type main,@function main: stwu 1,-8(1) mflr 0 stw 0,12(1) bl __eabi .L2: b .L2 .Lfe1: .size main,.Lfe1-main .comm a,4,4 .ident "GCC: (GNU) 3.1"