x86 sibling call stuff
Mark Mitchell
mark@codesourcery.com
Sun Mar 19 12:10:00 GMT 2000
Richard & Jeff --
The sibling call stuff seems to be responsible for the failure of
g++.jason/inline3.C on i686-pc-linux-gnu.
Right now, this test won't compile. The reason is that a
NOTE_INSN_EH_REGION_BEG note that gets created during an expand_call
never makes it into the final instruction stream, even thow the END
note does. A sanity check in flow causes an abort.
Backing out the 386 MD changes gets us back to building -- but the
call to `f' in this function:
int
main()
{
g( f() );
return r;
}
does not appear in the generated code. (No, it's not being inlined;
it's being dropped by flow2, as far as I can tell.)
I'm not sure exactly why. But, first the test started failing at
run-time, and now it's failing at compile-time; the first failure
started about when the sibling call support went in, and the second
when the x86 MD changes went in, so I'm betting they're related
somehow.
Would one of you mind checking this out?
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
More information about the Gcc-bugs
mailing list