ATTRIBUTE_NORETURN on sets_cc0_p

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Fri Oct 16 10:40:00 GMT 1998


 > From: Jeffrey A Law <law@cygnus.com>
 > 
 >   In message < 199810150408.AAA26944@caip.rutgers.edu >you write:
 >   > 	Right.  HAVE_cc0 is defined in insn-config.h which appears after
 >   > rtl.h in jump.c.  We have to move insn-config.h above rtl.h, but in
 >   > *every* file, not just jump.c.  The harmful scenario is other files
 >   > which incorrectly assume sets_cc0_p() doesn't return, (and don't even
 >   > complain about it.)
 > Ugh.  Note this includes backends, possibly the insn*.c files, and possibly
 > even front-ends since many want to include rtl.h (including front-ends we
 > don't control yet like ada, pascal, & modula).
 > 
 > Another thought would be to include insn-config via rtl.h.  We've tried to
 > avoid too much of this in the gcc sources though.


	I tried this, but it gave me a circular dependency.  Roughly:

rtl.h -> insn-config.h -> genconfig -> genconfig.o -> rtl.h.

So that's why I suggested my alternative.



 > I'm not sure which is the cleaner solution.
 > 
 > I'm very tempted to punt it for now since marking sets_cc0_p as noreturn is
 > strictly an optimization.
 > jeff

	I agree.  Do I have your approval to revert the noreturn on
sets_cc0_p?

		--Kaveh



More information about the Gcc mailing list