This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: inline-asm/9570: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3
- From: jason at gcc dot gnu dot org
- To: adam at os dot inf dot tu-dresden dot de, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, jason at gcc dot gnu dot org
- Date: 15 Mar 2003 17:24:14 -0000
- Subject: Re: inline-asm/9570: [3.3/3.4 regression] Assember error with -finline-functions with g++-3.3
- Reply-to: jason at gcc dot gnu dot org, adam at os dot inf dot tu-dresden dot de, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, jason at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
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