This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

x86 sibling call stuff



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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]