[net.micro.pc] Reentrancy and C Compilers

Ciccarelli.PA@PARC-MAXC.ARPA (05/24/83)

I'm looking at several C compilers for the IBM PC, to generate code
for a ROM-based system.  I've narrowed the choice down to the Lattice,
Computer Innovations, and Whitesmiths compilers since I want a full
implementation.  I believe each of these compilers produces code that
can operate in ROM, but I can't determine if they generate reentrant
code (i.e. code that can be shared between two or more tasks).

Can any of you compiler cognoscenti out there comment on this?  Does
the fact that C permits one to write recursive functions *imply* that
the resulting code is reentrant?

/John

INFO-IBMPC%USC-ISIB@sri-unix.UUCP (05/27/83)

From:  Dick Gillmann <INFO-IBMPC@USC-ISIB>

Not necessarily.  A routine can be recursive and not reentrant.  For
example, a routine could have self-modifying code and as long this was
restored before a recursive call, it would work.  Ditto for own
variables.  It's not likely that a C compiler would do such things,
though.
-------