http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57260
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Lee Duhem from comment #5)
> (In reply to Andrew Pinski from comment #4)
> > (In reply to Andrew Pinski from comment #3)
> > > Looks like sibcalls are incorrectly done.
> >
> > Or maybe not since it is no longer a call but rather a sibcall which means
> > it can never be using call16 here since it is not a real call.
> >
> > Smallest testcase:
> > int shouldbecall16(void);
> > int g(void) { return shouldbecall16(); }
>
> I think the following testcase is closer to my case:
> int shouldbecall16(void);
> int g(void) { shouldbecall16(); return 0; }
No it is not; mine is the one which shows the issue:
static void
__glXDRIenterServer(GLboolean rendering)
{
....
DRIWakeupHandler(((void *)0), 0, ((void *)0));
}