[flang-commits] [PATCH] D155500: [flang] Enable optional copy construction & assignment in the parse tree

Peter Klausler via Phabricator via flang-commits flang-commits at lists.llvm.org
Mon Jul 17 11:03:22 PDT 2023


klausler created this revision.
klausler added a reviewer: vzakhari.
klausler added a project: Flang.
Herald added subscribers: sunshaoce, mehdi_amini, jdoerfert.
Herald added a reviewer: sscalpone.
Herald added a reviewer: awarzynski.
Herald added a reviewer: kiranchandramohan.
Herald added a project: All.
klausler requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: jplehr, sstefan1.

The parse tree's several class definitions all currently go out 
of their ways to ensure that they support only move constructors
and operator= (generated automatically via =default;).  This was
by intent -- during construction of the backtracking parser combinators,
I did not want to worry about any risk of accidentally creating
expensive deep copies of partial parse trees.

However, copyable parse tree classes are a prerequisite for possible
implementations of possible future features, including inlining,  
outlining, F'202Y template prototyping, and parameterized modules.

This patch makes it possible to enable copy construction and copy
assignment for parse tree classes.  It's still off by default.


https://reviews.llvm.org/D155500

Files:
  flang/include/flang/Common/indirection.h
  flang/include/flang/Evaluate/call.h
  flang/include/flang/Evaluate/expression.h
  flang/include/flang/Lower/Support/Utils.h
  flang/include/flang/Parser/dump-parse-tree.h
  flang/include/flang/Parser/format-specification.h
  flang/include/flang/Parser/parse-tree-visitor.h
  flang/include/flang/Parser/parse-tree.h
  flang/include/flang/Parser/tools.h
  flang/include/flang/Parser/user-state.h
  flang/include/flang/Semantics/expression.h
  flang/include/flang/Semantics/tools.h
  flang/lib/Evaluate/call.cpp
  flang/lib/Evaluate/expression.cpp
  flang/lib/Lower/Bridge.cpp
  flang/lib/Lower/OpenMP.cpp
  flang/lib/Lower/PFTBuilder.cpp
  flang/lib/Parser/basic-parsers.h
  flang/lib/Parser/parse-tree.cpp
  flang/lib/Parser/tools.cpp
  flang/lib/Parser/unparse.cpp
  flang/lib/Semantics/canonicalize-do.cpp
  flang/lib/Semantics/canonicalize-omp.cpp
  flang/lib/Semantics/check-cuda.cpp
  flang/lib/Semantics/check-data.cpp
  flang/lib/Semantics/check-do-forall.cpp
  flang/lib/Semantics/check-if-stmt.cpp
  flang/lib/Semantics/check-io.cpp
  flang/lib/Semantics/check-io.h
  flang/lib/Semantics/check-omp-structure.cpp
  flang/lib/Semantics/check-omp-structure.h
  flang/lib/Semantics/data-to-inits.cpp
  flang/lib/Semantics/data-to-inits.h
  flang/lib/Semantics/expression.cpp
  flang/lib/Semantics/mod-file.cpp
  flang/lib/Semantics/program-tree.cpp
  flang/lib/Semantics/resolve-labels.cpp
  flang/lib/Semantics/resolve-names-utils.cpp
  flang/lib/Semantics/resolve-names.cpp
  flang/lib/Semantics/rewrite-parse-tree.cpp
  flang/lib/Semantics/semantics.cpp
  flang/lib/Semantics/tools.cpp
  flang/tools/f18-parse-demo/stub-evaluate.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D155500.541147.patch
Type: text/x-patch
Size: 105931 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/flang-commits/attachments/20230717/18e8fea3/attachment-0001.bin>


More information about the flang-commits mailing list