ATTRIBUTE_NORETURN on sets_cc0_p
Andreas Schwab
schwab@issan.informatik.uni-dortmund.de
Fri Oct 16 07:00:00 GMT 1998
Jeffrey A Law <law@cygnus.com> writes:
|> In message < 199810150200.TAA14764@smtp.earthlink.net >you write:
|> >
|> > On x86-linux-gnu (which defines HAVE_cc0), I'm seeing:
|> >
|> > ../../gcc/jump.c: In function `sets_cc0_p':
|> > ../../gcc/jump.c:3335: warning: function declared `noreturn' has a `return'
|> > statement
|> >
|> > That's not good; this function does return and we don't want the
|> > compiler assuming it doesn't. That could be very dangerous.
|> >
|> > I see that rtl.h has:
|> >
|> > extern int sets_cc0_p PROTO ((rtx))
|> > #ifndef HAVE_cc0
|> > ATTRIBUTE_NORETURN
|> > #endif
|> > ;
|> >
|> > Perhaps HAVE_cc0 is not yet be set at that point?
|> That would be my guess.
It looks pretty bogus to me to have a function that returns a value but
does not return. ATTRIBUTE_NORETURN does not make sense on a non-void
function and is most likely misplaced here.
Andreas.
More information about the Gcc
mailing list