[PATCH] D87859: [flang] Unnecessary call to CHECK() for call to NULL() as an actual argument

Peter Klausler via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 18 09:39:38 PDT 2020


klausler added a comment.

In D87859#2280893 <https://reviews.llvm.org/D87859#2280893>, @PeteSteinfeld wrote:

> In D87859#2280407 <https://reviews.llvm.org/D87859#2280407>, @klausler wrote:
>
>> `NULL()` isn't "undefined".  It's a pointer (or in some other contexts, an unallocated allocatable), and the description of `ASSOCIATED()` in 16.9.16 just requires that its first (`POINTER=`) argument be a pointer.
>>
>> (Even if `NULL()` were undefined, it would be okay -- see paragraph (2) of 16.1, which describes general rules for inquiry functions, of which `ASSOCIATED` is an example.)  "Unless the description of an intrinsic inquiry function states otherwise, these arguments are permitted to be unallocated allocatable variables or pointers that are undefined or disassociated."
>
> This all sounds reasonable to me.  If what you say is all correct, I would expect the call to `ALLOCATED()` to return `.FALSE.`.  But every compiler I've tried (IBM, Intel, PGI, and GNU) all produce compile-time errors.
>
> @klausler, is it your guidance that we should compiler the expression `ALLOCATED(NULL))` without error?

nagfor gets it right; we should do so too.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D87859/new/

https://reviews.llvm.org/D87859



More information about the llvm-commits mailing list