[all-commits] [llvm/llvm-project] 79a25e: [flang] Further work on NULL(MOLD=allocatable) (#1...

Peter Klausler via All-commits all-commits at lists.llvm.org
Mon Mar 3 14:46:56 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 79a25e11fe119520e7cb70118df18e199217c891
      https://github.com/llvm/llvm-project/commit/79a25e11fe119520e7cb70118df18e199217c891
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-03-03 (Mon, 03 Mar 2025)

  Changed paths:
    M flang/include/flang/Evaluate/characteristics.h
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-logical.cpp
    M flang/lib/Evaluate/fold.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Evaluate/shape.cpp
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Lower/ConvertConstant.cpp
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/data-to-inits.cpp
    M flang/lib/Semantics/definable.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/pointer-assignment.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Evaluate/folding06.f90
    M flang/test/Lower/HLFIR/null.f90
    M flang/test/Semantics/associated.f90
    M flang/test/Semantics/call27.f90
    M flang/test/Semantics/null01.f90

  Log Message:
  -----------
  [flang] Further work on NULL(MOLD=allocatable) (#129345)

Refine handling of NULL(...) in semantics to properly distinguish
NULL(), NULL(objectPointer), NULL(procPointer), and NULL(allocatable)
from each other in relevant contexts.

Add IsNullAllocatable() and IsNullPointerOrAllocatable() utility
functions. IsNullAllocatable() is true only for NULL(allocatable); it is
false for a bare NULL(), which can be detected independently with
IsBareNullPointer().

IsNullPointer() now returns false for NULL(allocatable).

ALLOCATED(NULL(allocatable)) now works, and folds to .FALSE.

These utilities were modified to accept const pointer arguments rather
than const references; I usually prefer this style when the result
should clearly be false for a null argument (in the C sense), and it
helped me find all of their use sites in the code.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list