[PATCH] D85560: [flang] Handle DATA initialization of EQUIVALENCE'd objects

Peter Klausler via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 7 14:41:52 PDT 2020


klausler created this revision.
klausler added reviewers: sscalpone, schweitz, tskeith.
klausler added a project: Flang.
Herald added subscribers: llvm-commits, mgorny.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: DavidTruby.
Herald added a project: LLVM.
klausler requested review of this revision.

Objects that are storage associated by EQUIVALENCE and
initialized with DATA are initialized by creating a
compiler temporary data object in the same scope,
assigning it an offset, type, and size that covers the
transitive closure of the associated initialized original
symbols, and combining their initializers into one common
initializer for the temporary.

Some problems with offset assignment of EQUIVALENCE'd objects
in COMMON were exposed and corrected, and some more error
cases are checked.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D85560

Files:
  flang/include/flang/Evaluate/initial-image.h
  flang/include/flang/Parser/parsing.h
  flang/include/flang/Semantics/semantics.h
  flang/include/flang/Semantics/type.h
  flang/lib/Evaluate/initial-image.cpp
  flang/lib/Parser/parsing.cpp
  flang/lib/Semantics/CMakeLists.txt
  flang/lib/Semantics/check-data.cpp
  flang/lib/Semantics/check-data.h
  flang/lib/Semantics/compute-offsets.cpp
  flang/lib/Semantics/data-to-inits.cpp
  flang/lib/Semantics/data-to-inits.h
  flang/lib/Semantics/semantics.cpp
  flang/lib/Semantics/type.cpp
  flang/test/Semantics/block-data01.f90
  flang/test/Semantics/data09.f90

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85560.284061.patch
Type: text/x-patch
Size: 57343 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200807/53e8d425/attachment.bin>


More information about the llvm-commits mailing list