[all-commits] [llvm/llvm-project] 24e8e2: [flang] Refine WhyNotModifiable()

Peter Klausler via All-commits all-commits at lists.llvm.org
Tue Jan 19 11:45:18 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 24e8e21f19f4380e8410a12f9135bfef3c046142
      https://github.com/llvm/llvm-project/commit/24e8e21f19f4380e8410a12f9135bfef3c046142
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-01-19 (Tue, 19 Jan 2021)

  Changed paths:
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Semantics/check-io.cpp
    M flang/lib/Semantics/tools.cpp
    A flang/test/Semantics/modifiable01.f90

  Log Message:
  -----------
  [flang] Refine WhyNotModifiable()

The utility routine WhyNotModifiable() needed to become more
aware of the use of pointers in data-refs; the targets of
pointer components are sometimes modifiable even when the
leftmost ("base") symbol of a data-ref is not.

Added a new unit test for WhyNotModifiable() that uses internal
READ statements (mostly), since I/O semantic checking uses
WhyNotModifiable() for all its definability checking.

Differential Revision: https://reviews.llvm.org/D94849




More information about the All-commits mailing list