Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 beta 3/9/83; site encore.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!talcott!encore!ptw From: ptw@encore.UUCP (P. Tucker Withington) Newsgroups: net.lang.c Subject: Re: Addresses of static functions Message-ID: <169@encore.UUCP> Date: Mon, 25-Feb-85 14:52:00 EST Article-I.D.: encore.169 Posted: Mon Feb 25 14:52:00 1985 Date-Received: Wed, 27-Feb-85 21:13:06 EST References: <8580@brl-tgr.ARPA> Reply-To: ptw@encore.UUCP (P. Tucker Withington) Organization: Encore Computer Corp., Wellesley Hills, MA Lines: 17 Summary: >it's worth it. Just have, for each static whose address is taken in >the module, a long-return (unnamed) function whose sole purpose is >to copy the args back onto the stack and do a short-call to the static Since the static function by def'n can't be seen outside the module, why not have *it* be the "(unnamed)" function? Seems even debuggers could live with that. If they can live with inverted and non-inverted loops (did you use -O?) they should be able to deal with direct and "indirect" functions. Presumably a function declared static should be optimized for "local" use. Taking the & of it and passing it out of the module, while legal, is perhaps a bit perverse (although C++ might not agree with that). Or you could choose a different CPU. o.o --tucker ~