Deutsch English Français Italiano |
<vepqtt$2jh7e$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Gary Scott <garylscott@sbcglobal.net> Newsgroups: comp.lang.fortran Subject: Re: DEALLOCATE Of Non-ALLOCATEd Should Be No-Op Date: Wed, 16 Oct 2024 20:57:17 -0500 Organization: A noiseless patient Spider Lines: 20 Message-ID: <vepqtt$2jh7e$1@dont-email.me> References: <vepn2d$2f9jq$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 17 Oct 2024 03:57:18 +0200 (CEST) Injection-Info: dont-email.me; posting-host="19c3a086004d8a7cf5c20c434847a7df"; logging-data="2737390"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/s9xGU/wTIu7wnrJtqdLsnWbQ6SZBzq1o=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:AksM8JUjqSpSpxMjw8++FY3ERDY= Content-Language: en-US In-Reply-To: <vepn2d$2f9jq$1@dont-email.me> Bytes: 2088 On 10/16/2024 7:51 PM, Lawrence D'Oliveiro wrote: > It’s annoying to find that if you try to DEALLOCATE an ALLOCATABLE > variable that has not been ALLOCATEd (or that has already been > DEALLOCATEd), this is an error. > > The usual practice is for storage-disposal calls to be harmless no-ops if > called with a NULL pointer (or equivalent). This is true of the C/POSIX > free(3) call <https://manpages.debian.org/3/free.3.en.html>, for example, > and also for the “delete” statement in C++. > > This way, one can simplify cleanup by 1) ensuring all temporary pointers > are initialized to NULL at the start, and 2) unconditionally freeing all > of them at the end. > > I suppose Fortran tries to simplify things by handling both conventions > automatically, but this still causes irritations in other places, like > loops. The way these things are handled in Fortran is to add a "stat=" specifier. Having a run time error message is standard (meaning typical) operating behavior for Fortran. I like it that way.