public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug inline-asm/32971]  New: Inline asm with offset addressing fails to compile in 4.0+ without -O
@ 2007-08-03  4:47 kinetik at orcon dot net dot nz
  2007-08-03  4:48 ` [Bug inline-asm/32971] " kinetik at orcon dot net dot nz
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: kinetik at orcon dot net dot nz @ 2007-08-03  4:47 UTC (permalink / raw)
  To: gcc-bugs

The following test case fails to compile without optimization with gcc 4.3.0
(20070503 (experimental)), 4.1.2 (20070502 (Red Hat 4.1.2-12)), and 4.0.4
(20060904 (prerelease) (Debian 4.0.3-7)), but succeeds with 3.3.6 (Debian
1:3.3.6-15) and 3.4.6 (Debian 3.4.6-5).  With optimization (-O and -O2), it
compiles fine with all of the gcc versions mentioned above.

The failing configurations are generating invalid assembly and gas emits the
following error:
/tmp/ccnbmIy1.s:12: Error: register value used as expression

Looking at the assembly emitted by gcc, the failing case looks like:
        lea (%edx)(%eax), %eax

..and with the working configurations, I get the expected code:
        lea 4(%eax), %eax

#include <stddef.h>

struct coord { int x; int y; };

int *
foo(struct coord * c)
{
  int * i;
  asm ("lea %1(%2), %0"
       : "=r" (i)
       : "m" (*(size_t *) offsetof(struct coord, y)),
         "r" (c)
       : "memory");
  return i;
}


-- 
           Summary: Inline asm with offset addressing fails to compile in
                    4.0+ without -O
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: inline-asm
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kinetik at orcon dot net dot nz
 GCC build triplet: i486-linux-gnu
  GCC host triplet: i486-linux-gnu
GCC target triplet: i486-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32971


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

end of thread, other threads:[~2007-08-03 12:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-03  4:47 [Bug inline-asm/32971] New: Inline asm with offset addressing fails to compile in 4.0+ without -O kinetik at orcon dot net dot nz
2007-08-03  4:48 ` [Bug inline-asm/32971] " kinetik at orcon dot net dot nz
2007-08-03  4:51 ` kinetik at orcon dot net dot nz
2007-08-03  5:11 ` kinetik at flim dot org
2007-08-03 12:17 ` pinskia at gcc dot gnu dot org

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).