[Bug target/49866] New: [4.6 Regression] -mcmodel=large tail call fails to assemble
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 27 11:40:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49866
Summary: [4.6 Regression] -mcmodel=large tail call fails to
assemble
Product: gcc
Version: 4.6.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: jakub@gcc.gnu.org
CC: uros@gcc.gnu.org
Target: x86_64-linux
void fn (void *, int, int);
int fn2 (void);
void baz (int);
static void
foo (void *x, int y)
{
int i;
for (i = 0; i < y; i++)
fn (x, fn2 (), i);
}
void
bar (int u, int v, int w, void *x)
{
baz (u);
foo (x, w);
baz (u);
}
gcc -O2 -mcmodel=large -c rh725516.c
fails to assemble, we end up with
jmp *$baz
This got fixed on the trunk with
http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=173797
but for the backport it would be certainly preferrable if we got a smaller and
less riskier fix than that.
In r166110 it was (likely incorrectly for large model, but at least it
assembled) emitting jmp baz, I expect the change came with
http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166119
More information about the Gcc-bugs
mailing list