target/10340: Vararg functions, -fPIC and invalid assembly on i686-pc-linux-gnu
harinath@cs.umn.edu
harinath@cs.umn.edu
Mon Apr 7 19:06:00 GMT 2003
>Number: 10340
>Category: target
>Synopsis: Vararg functions, -fPIC and invalid assembly on i686-pc-linux-gnu
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Apr 07 19:06:02 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: harinath@cs.umn.edu
>Release: gcc version 3.4 20030404 (experimental)
>Organization:
>Environment:
i686-pc-linux-gnu
>Description:
Compiling the following simple program:
static struct { int i; int j; } s;
int fnV (int, ...);
void fnA (void)
{
fnV(s.j, fnV(s.j));
}
with -fPIC -O1 or -fPIC -O2 gives:
$ gcc -c -fPIC -O1 foo.c
/tmp/ccxT9xXg.s: Assembler messages:
/tmp/ccxT9xXg.s:13: Error: suffix or operands invalid for `lea'
The assemblers I tried were
GNU assembler version 2.12.90.0.1 (i386-linux) using BFD version 2.12.90.0.1 20020307 Debian/GNU Linux
GNU assembler version 2.13.90 (i686-pc-linux-gnu) using BFD version 2.13.90 20030407
>How-To-Repeat:
gcc -c -fPIC -O1 foo.c
gcc -c -fPIC -O2 foo.c
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-csrc; name="foo.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="foo.c"
c3RhdGljIHN0cnVjdCB7IGludCBpOyBpbnQgajsgfSBzOwoKaW50IGZuViAoaW50LCAuLi4pOwp2
b2lkIGZuQSAodm9pZCkKewogIGZuVihzLmosIGZuVihzLmopKTsKfQo=
More information about the Gcc-bugs
mailing list