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