This is the mail archive of the gcc@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]

Re: ATTRIBUTE_NORETURN on sets_cc0_p


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.


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