home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!spool.mu.edu!agate!dog.ee.lbl.gov!news!nosc!dale.cts.com!jhb
- From: jhb@dale.cts.com (John Bollenbacher)
- Subject: Re: Language pitfalls (was Re: FORTRAN bug)
- Message-ID: <BzDEAH.But@dale.cts.com>
- Sender: news@dale.cts.com (USENET News Account)
- Organization: Titan Linkabit Corporation
- X-Newsreader: Tin 1.1 PL5
- References: <1992Dec16.163242.18923@ennews.eas.asu.edu>
- Date: Wed, 16 Dec 1992 20:59:01 GMT
- Lines: 38
-
- Harry Koehnemann (koehnema@enuxha.eas.asu.edu) wrote:
- : In article <EACHUS.92Dec15202249@oddjob.mitre.org> eachus@oddjob.mitre.org (Robert I. Eachus) writes:
- : >In article <1992Dec15.203558.18211@inmet.camb.inmet.com> stt@spock.camb.inmet.com (Tucker Taft) writes:
- : >
- : > Oh boy. That is a nasty one. This argues for a "friendly"
- : > Ada compiler giving a warning about any use of "null;" other
- : > than the idiomatic ones like "when others => null;" or "begin null; end;"
- : > (especially in a function that returns an access type ;-).
- : >
- : > Actually, there is an Ada rule which normally catches this, and
- : >which Robert Dewar and I have argued should be removed in Ada 9X. (A
- : >function must contain a return statement RM 6.5(1).) If it belongs on
- : >the top ten list, then the rule should stay.
- :
- : The "null;"/"return null;" was a problem with the base case in a
- : recursive function (null is overloaded, and even worse it's an
- : expression *and* a statement - isn't that something we hate about
- : C :). This implies there will be additional returns somewhere in
- : the routine and it will not be caught by the compiler. The real
- : problem is that there exists an execution path that can lead out
- : of the function without encountering a return.
-
- Seems to me the real problem is that there is a potential path out if the
- function which does not raise an exception but has the 'wrong' value, e.g.
- if mumble = null then
- null;
- end if;
- ...
- return new mumble_ptr;
- Thanks for pointing out this gotcha. I'd never seen it before.
-
- --
- -----------------------------------------------------------------------------
- - John Bollenbacher jhb@dale.cts.com -
- - Titan Linkabit Corp. (619) 552-9963 -
- - 3033 Science Park Rd. -
- - San Diego, Ca. 92121 -
- -----------------------------------------------------------------------------
-