public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: inline-asm/9570: [3.3/3.4 regression] Assember error with  -finline-functions with g++-3.3
@ 2003-02-24 16:36 Janis Johnson
  0 siblings, 0 replies; 4+ messages in thread
From: Janis Johnson @ 2003-02-24 16:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR inline-asm/9570; it has been noted by GNATS.

From: Janis Johnson <janis187@us.ibm.com>
To: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org,
   gcc-prs@gcc.gnu.org, adam@os.inf.tu-dresden.de
Cc:  
Subject: Re: inline-asm/9570: [3.3/3.4 regression] Assember error with 
 -finline-functions with g++-3.3
Date: Mon, 24 Feb 2003 08:36:50 -0800

 The regression showed up with this patch:
 
 2002-03-03  Richard Henderson  <rth@redhat.com>
 
         * c-decl.c (start_decl): Initialized variables are not common.
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9570
 
 
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: inline-asm/9570: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3
@ 2003-03-15 19:36 Adam Lackorzynski
  0 siblings, 0 replies; 4+ messages in thread
From: Adam Lackorzynski @ 2003-03-15 19:36 UTC (permalink / raw)
  To: jason; +Cc: gcc-prs

The following reply was made to PR inline-asm/9570; it has been noted by GNATS.

From: Adam Lackorzynski <adam@os.inf.tu-dresden.de>
To: jason@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
	gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: inline-asm/9570: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3
Date: Sat, 15 Mar 2003 20:29:27 +0100

 Hi,
 
 On Sat Mar 15, 2003 at 17:24:14 -0000, jason@gcc.gnu.org wrote:
 > Synopsis: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3
 > 
 > State-Changed-From-To: analyzed->closed
 > State-Changed-By: jason
 > State-Changed-When: Sat Mar 15 17:24:13 2003
 > State-Changed-Why:
 >     This is not a bug.  Your code assumes that the inline assembly
 >     will be emitted after the definition of foo(), but if foo() is
 >     inline (as a result of -finline-functions), it is deferred until
 >     EOF, so the inline assembly is emitted after the definition of i.
 >     i lives in .bss, so you end up trying to emit executable code into
 >     .bss, which doesn't work very well.  You probably want to wrap
 >     that code in .pushsection ".text" and .popsection
 > 
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9570
 
 Just a small annotation: I think the problem is the location of the "b"
 definition. If I pull the definition of "b" out of the
 function, the test case compiles. Looking at the asm-code, the place of
 the definition (or whatever it exactly is) of b differs and if it's
 below the inline asm code, it doesn't work.
 
 --- x.c Sat Mar 15 19:56:23 2003
 +++ x2.c        Sat Mar 15 19:56:36 2003
 @@ -1,7 +1,7 @@
  int i = 0;
  
 -void foo() {
    static bool b;
 +void foo() {
    if (! i)
      asm("movl %%esp, %0" : "=r" (i));
  }
 
 
 Adding .pushsection and .popsection around the call does seem to fix it
 as well.
 
 
 
 Thanks,
 Adam
 -- 
 Adam                 adam@os.inf.tu-dresden.de
   Lackorzynski         http://os.inf.tu-dresden.de/~adam/


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: inline-asm/9570: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3
@ 2003-03-15 17:24 jason
  0 siblings, 0 replies; 4+ messages in thread
From: jason @ 2003-03-15 17:24 UTC (permalink / raw)
  To: adam, gcc-bugs, gcc-prs, jason

Synopsis: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3

State-Changed-From-To: analyzed->closed
State-Changed-By: jason
State-Changed-When: Sat Mar 15 17:24:13 2003
State-Changed-Why:
    This is not a bug.  Your code assumes that the inline assembly will be emitted after the definition of foo(), but if foo() is inline (as a result of -finline-functions), it is deferred until EOF, so the inline assembly is emitted after the definition of i.  i lives in .bss, so you end up trying to emit executable code into .bss, which doesn't work very well.  You probably want to wrap that code in .pushsection ".text" and .popsection

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9570


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: inline-asm/9570: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3
@ 2003-03-15 17:07 jason
  0 siblings, 0 replies; 4+ messages in thread
From: jason @ 2003-03-15 17:07 UTC (permalink / raw)
  To: adam, gcc-bugs, gcc-prs, jason, nobody

Synopsis: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3

Responsible-Changed-From-To: unassigned->jason
Responsible-Changed-By: jason
Responsible-Changed-When: Sat Mar 15 17:07:01 2003
Responsible-Changed-Why:
    got it

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9570


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-03-15 19:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-24 16:36 inline-asm/9570: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3 Janis Johnson
2003-03-15 17:07 jason
2003-03-15 17:24 jason
2003-03-15 19:36 Adam Lackorzynski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).