[all-commits] [llvm/llvm-project] 038649: [flang] Prevent segfault in DynamicType::IsTkCompa...

Eric Schweitz via All-commits all-commits at lists.llvm.org
Thu Apr 9 08:15:09 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 03864907513dd71c084bc234ee00ae495847f278
      https://github.com/llvm/llvm-project/commit/03864907513dd71c084bc234ee00ae495847f278
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-03 (Wed, 03 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/type.cc

  Log Message:
  -----------
  [flang] Prevent segfault in DynamicType::IsTkCompatibleWith

Make sure `derived_` is not null before dereferencing it.

This might only happen when there is a previous error. I saw it
compiling a test program where a USEd module was not found.

Original-commit: flang-compiler/f18 at 2db516556b1509a8519ce91013f49431b6d43d22
Reviewed-on: https://github.com/flang-compiler/f18/pull/550


  Commit: 6b8df08cadf40865d5f583d8ac59a7a17951f48a
      https://github.com/llvm/llvm-project/commit/6b8df08cadf40865d5f583d8ac59a7a17951f48a
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-03 (Wed, 03 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#550 from flang-compiler/tsk-bug

Prevent segfault in DynamicType::IsTkCompatibleWith

Original-commit: flang-compiler/f18 at 8ff0df020b09b1df135f5c0bb4bb68ae93a6f992
Reviewed-on: https://github.com/flang-compiler/f18/pull/550


  Commit: d1de4fe462736e990299ebd9295312113fa86354
      https://github.com/llvm/llvm-project/commit/d1de4fe462736e990299ebd9295312113fa86354
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-03 (Wed, 03 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/type.cc

  Log Message:
  -----------
  [flang] Avoid null pointer dereference

Original-commit: flang-compiler/f18 at 3c108c0edcdbf67e75039ddcefba74598905e87c
Reviewed-on: https://github.com/flang-compiler/f18/pull/553
Tree-same-pre-rewrite: false


  Commit: e05f5399177df2ee5e2f4fae8aeb4b74a942a1df
      https://github.com/llvm/llvm-project/commit/e05f5399177df2ee5e2f4fae8aeb4b74a942a1df
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-03 (Wed, 03 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc

  Log Message:
  -----------
  [flang] Crash less

Original-commit: flang-compiler/f18 at e8ac1a697d7682bdcd7c5e1dc75d2445b92333bd
Reviewed-on: https://github.com/flang-compiler/f18/pull/553
Tree-same-pre-rewrite: false


  Commit: cc2172b6f4749abbc933f3ec39f845112a0370ec
      https://github.com/llvm/llvm-project/commit/cc2172b6f4749abbc933f3ec39f845112a0370ec
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-08 (Mon, 08 Jul 2019)

  Changed paths:
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Fix multi-file compilations in throwaway driver

Original-commit: flang-compiler/f18 at 7954d0aecf6874027fb138a45485b3a9701db334
Reviewed-on: https://github.com/flang-compiler/f18/pull/553
Tree-same-pre-rewrite: false


  Commit: 626a4cfdfce09dc1368b3a6a298b0b7e4571247b
      https://github.com/llvm/llvm-project/commit/626a4cfdfce09dc1368b3a6a298b0b7e4571247b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-08 (Mon, 08 Jul 2019)

  Changed paths:
    M flang/documentation/Extensions.md

  Log Message:
  -----------
  [flang] Document non-standard use of larger INTEGER for sizes

Original-commit: flang-compiler/f18 at edc79c4257079378df534247858832dba7a35920
Reviewed-on: https://github.com/flang-compiler/f18/pull/553
Tree-same-pre-rewrite: false


  Commit: 7a6dabf974bdf28a9ed04f3fddaf63709737cba4
      https://github.com/llvm/llvm-project/commit/7a6dabf974bdf28a9ed04f3fddaf63709737cba4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-08 (Mon, 08 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/type.cc

  Log Message:
  -----------
  [flang] Resolve merge

Original-commit: flang-compiler/f18 at 44743f1fa9377ec6d5929dfe2227295d33ca5673
Reviewed-on: https://github.com/flang-compiler/f18/pull/553
Tree-same-pre-rewrite: false


  Commit: 644b2aabd0c85188d7d9e1a3688db636a49540bb
      https://github.com/llvm/llvm-project/commit/644b2aabd0c85188d7d9e1a3688db636a49540bb
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-08 (Mon, 08 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/symbol13.f90

  Log Message:
  -----------
  [flang] Support *length character length specifiers

Original-commit: flang-compiler/f18 at 874b13b7d85837ddf9b76568ee3cd41cf28eb19b
Reviewed-on: https://github.com/flang-compiler/f18/pull/553
Tree-same-pre-rewrite: false


  Commit: 008e697192b18752ff5e7e7c51725da86d54763d
      https://github.com/llvm/llvm-project/commit/008e697192b18752ff5e7e7c51725da86d54763d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-08 (Mon, 08 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/variable.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix regressions found in testing

Original-commit: flang-compiler/f18 at ea09b191dfbcb00097a44df3aae3bdbd5f6e8392
Reviewed-on: https://github.com/flang-compiler/f18/pull/553


  Commit: 9b730917583ae62b4ea0b4868ac8866b043a7538
      https://github.com/llvm/llvm-project/commit/9b730917583ae62b4ea0b4868ac8866b043a7538
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-08 (Mon, 08 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#553 from flang-compiler/pmk-fixes

Support "*length" character length specifier on declarations, plus a couple small fixes.

Original-commit: flang-compiler/f18 at afe12f7f4b36ad3c1f798a658f1febcfd7eb1caf
Reviewed-on: https://github.com/flang-compiler/f18/pull/553


  Commit: 0f8e792455b20421f47bea43888a77dcd8080d4d
      https://github.com/llvm/llvm-project/commit/0f8e792455b20421f47bea43888a77dcd8080d4d
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-07-09 (Tue, 09 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] 2.8.1 SIMD structural checks (flang-compiler/f18#554)

Straightforward implementation but not including:
* list-item on aligned clause
* nesting check with the ordered construct (parse tree changes needed!)
* list-item attributes check on aligned clause

Original-commit: flang-compiler/f18 at cf04d8ad26fc392822335a529430afb65421d7b4
Reviewed-on: https://github.com/flang-compiler/f18/pull/554


  Commit: 2ce7432bb8b353eb011a15645187b5bdeda8039b
      https://github.com/llvm/llvm-project/commit/2ce7432bb8b353eb011a15645187b5bdeda8039b
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve35.f90

  Log Message:
  -----------
  [flang] Enabling automatic declaration of names in SHARED locality-spec's

Prior to this change, the compiler issued an error message when a name in a
SHARED locality-spec had not been declared explicitly in an enclosing scope.
Presumably, this was done to enforce constraint C1124.  This constraint states
that "A variable-name in a locality-spec shall be the name of a variable in the
innermost executable construct or scoping unit that includes the DO CONCURRENT
statement".  For LOCAL and LOCAL_INIT locality-spec's, we were automatically
creating a local variable in the situation where one had not been explicitly
declared rather than issuing an error message.

The only compiler I could find that implements the SHARED locality-spec was the
PGI compiler, which automatically creates a variable and does not emit an error
message.  Also, @vdonaldson said that he had consulted with a member of the
Fortran standards committee who said that the correct thing was to create a
variable if necessary.

This change has the compiler creating a variable in the enclosing scope of a DO
CONCURRENT statement if necessary.  I also changed a test to adapt to the new
behavior.  I also consolidated the semantic checking for the constraints
associated with all of the locality-spec's.

Original-commit: flang-compiler/f18 at d9253a76fcbc49df11c017557b365dfeed7c2b3b
Reviewed-on: https://github.com/flang-compiler/f18/pull/551
Tree-same-pre-rewrite: false


  Commit: 66e8935dec74b7395bf116d88c5de13520ba4501
      https://github.com/llvm/llvm-project/commit/66e8935dec74b7395bf116d88c5de13520ba4501
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve35.f90

  Log Message:
  -----------
  [flang] Changes related to feedback from pull request flang-compiler/f18#551

 - Changed the name a a function to FindOrDeclareEnclosingEntity
 - Changed that function to return a reference rather than a pointer
 - Polished the setting of the IMPLICIT flag on a declared entity in a
 locality-spec
 - Changed a test to remove an unreported error

Original-commit: flang-compiler/f18 at 0c1a00d7c2c67064801f9f6fb37c0a26224c0ea4
Reviewed-on: https://github.com/flang-compiler/f18/pull/551
Tree-same-pre-rewrite: false


  Commit: 18f26282873ae0af687a224bfb9a396862c4c9b8
      https://github.com/llvm/llvm-project/commit/18f26282873ae0af687a224bfb9a396862c4c9b8
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Changed the warning as recommended.

Original-commit: flang-compiler/f18 at 7887331705113619c0710f7052da390b2ac188e3
Reviewed-on: https://github.com/flang-compiler/f18/pull/551
Tree-same-pre-rewrite: false


  Commit: 542264e519b766825fd9d7b8ef77f86075decbfc
      https://github.com/llvm/llvm-project/commit/542264e519b766825fd9d7b8ef77f86075decbfc
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Improved warning message base on feedback from Peter.

Original-commit: flang-compiler/f18 at 030f36432455e48996bd200df5e5c5d6f1d4ef53
Reviewed-on: https://github.com/flang-compiler/f18/pull/551


  Commit: 0ddcf62681ca96780794aeee97e70421c926fc46
      https://github.com/llvm/llvm-project/commit/0ddcf62681ca96780794aeee97e70421c926fc46
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#551 from flang-compiler/ps-shared-locality

Enabling automatic declaration of names in SHARED locality-spec's

Original-commit: flang-compiler/f18 at b553d3857cb38044fcada5641635c8045f514ab0
Reviewed-on: https://github.com/flang-compiler/f18/pull/551


  Commit: 03f5723cb685ad36512783ee8396c3cd73cd76ee
      https://github.com/llvm/llvm-project/commit/03f5723cb685ad36512783ee8396c3cd73cd76ee
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/documentation/Extensions.md

  Log Message:
  -----------
  [flang] Update extension documentation

Original-commit: flang-compiler/f18 at 40b44b2e3a087fad4f95009c6e7b345dab970fbb
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: b2b1f045d959480183cabaa8a380c99f5507066a
      https://github.com/llvm/llvm-project/commit/b2b1f045d959480183cabaa8a380c99f5507066a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/test/semantics/modfile28.f90

  Log Message:
  -----------
  [flang] Remove reference to EUC_JP from test

Original-commit: flang-compiler/f18 at ca5c812994a4dd3ea948d54a62a4271dceef3fce
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: 8ccd6b19c40ed2c7733e11d5b8fb449182353a4a
      https://github.com/llvm/llvm-project/commit/8ccd6b19c40ed2c7733e11d5b8fb449182353a4a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/test/evaluate/folding05.f90

  Log Message:
  -----------
  [flang] Allow BOZ argument to more intrinsics; generalize BOZ conversions in folding

Original-commit: flang-compiler/f18 at 6df0136ee889f3c27b33d3ddac970af1b7a52c68
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: 584240986458cbedb2c9926fb383422064c009f1
      https://github.com/llvm/llvm-project/commit/584240986458cbedb2c9926fb383422064c009f1
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/documentation/Preprocessing.md

  Log Message:
  -----------
  [flang] Document preprocessing of Fortran comments in macro actual args

Original-commit: flang-compiler/f18 at f491b73636fe95ede63d9f402d14e6f29250f95b
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: 2ccba3837d8aaa95c915b235732868122dda4438
      https://github.com/llvm/llvm-project/commit/2ccba3837d8aaa95c915b235732868122dda4438
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] Do not emit PROCEDURE(TYPE(REAL)), pgf90 cannot deal.  Use PROCEDURE(REAL).

Original-commit: flang-compiler/f18 at ee5f3923814b6f85262bf2dfa43371126f07305f
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: caf9e8e624ca78468abc916ffdae0cc8c5abfbaf
      https://github.com/llvm/llvm-project/commit/caf9e8e624ca78468abc916ffdae0cc8c5abfbaf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix name resolution with directly recursive calls.

Original-commit: flang-compiler/f18 at b8e8610430049e9b1da1d4df0c942310d06ac3b0
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: ef061f3e654dbca7e2dbf8bd529159618d09c909
      https://github.com/llvm/llvm-project/commit/ef061f3e654dbca7e2dbf8bd529159618d09c909
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/test/semantics/procinterface01.f90
    M flang/test/semantics/symbol02.f90
    M flang/test/semantics/symbol08.f90

  Log Message:
  -----------
  [flang] Update tests

Original-commit: flang-compiler/f18 at aa18f1bca5ad918d0cb92735b9557c4b5217262e
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: f7057e031ca4f595a1621eac8912f7990a4f7444
      https://github.com/llvm/llvm-project/commit/f7057e031ca4f595a1621eac8912f7990a4f7444
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Add -fxor-operator

Original-commit: flang-compiler/f18 at b8365afc91f8e99c2e4cfb79d8ea9bf60a4b99f2
Reviewed-on: https://github.com/flang-compiler/f18/pull/557
Tree-same-pre-rewrite: false


  Commit: 28f4c5ca2dc5bbcb8403db6699fa2f1bfcbe4220
      https://github.com/llvm/llvm-project/commit/28f4c5ca2dc5bbcb8403db6699fa2f1bfcbe4220
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/parser/grammar.h
    M flang/test/semantics/procinterface01.f90

  Log Message:
  -----------
  [flang] Update grammar and a test in light of C1516

Original-commit: flang-compiler/f18 at df4ddccde7e3f8caf9dc3784396b1ee419df5099
Reviewed-on: https://github.com/flang-compiler/f18/pull/557


  Commit: ce1f2174e116aa8203f53f5f77a2ad4045fdbd23
      https://github.com/llvm/llvm-project/commit/ce1f2174e116aa8203f53f5f77a2ad4045fdbd23
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#557 from flang-compiler/pmk-fixes

Fix name resolution for direct recursion; adjust BOZ arguments to intrinsics.

Original-commit: flang-compiler/f18 at 537a501f4770a07a99a80639a11db803ee44e9a2
Reviewed-on: https://github.com/flang-compiler/f18/pull/557


  Commit: ca06058da81b9111050cc9832cfced3ce5a0e3ac
      https://github.com/llvm/llvm-project/commit/ca06058da81b9111050cc9832cfced3ce5a0e3ac
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix formatting

Original-commit: flang-compiler/f18 at bef7ddd43b155417657aefaf284ffc1b28d2b8d6
Reviewed-on: https://github.com/flang-compiler/f18/pull/559
Tree-same-pre-rewrite: false


  Commit: c37707a5b1d5076d043265e6fe8d9f174829974e
      https://github.com/llvm/llvm-project/commit/c37707a5b1d5076d043265e6fe8d9f174829974e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h

  Log Message:
  -----------
  [flang] Move various Instantiate functions to tools.cc

Move these functions from scope.cc, symbol.cc, type.cc into tools.cc:
  Scope::FindOrInstantiateDerivedType
  Scope::InstantiateDerivedType
  Scope::InstantiateIntrinsicType
  Symbol::Instantiate
  DerivedTypeSpec::ProcessParameterExpressions
  DerivedTypeSpec::Instantiate

This eliminates some dependencies in these files on SemanticsContext,
FoldingContext, etc.

It also allows three of the functions to be private to tools.cc
because they are only called from the others.

Original-commit: flang-compiler/f18 at 48c6efbf95390446fa10ca61b3e7f6b7db6c836d
Reviewed-on: https://github.com/flang-compiler/f18/pull/559
Tree-same-pre-rewrite: false


  Commit: cc8e1e9e9f1dd8f90becbc58e7a6d56724c2df02
      https://github.com/llvm/llvm-project/commit/cc8e1e9e9f1dd8f90becbc58e7a6d56724c2df02
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Change two member functions of DerivedTypeDetails to non-member

In `OrderParameterNames` and `OrderParameterDeclarations` it was
always true that `this == &type.get<DerivedTypeDetails>()` which
meant that `this` was redundant.

So convert them to non-member functions in `tools.h` that get the
details from the symbol passed in. This makes life simpler for the
callers.

Original-commit: flang-compiler/f18 at 81710d4e6ec9e316d95b955a1efd253d9c485fef
Reviewed-on: https://github.com/flang-compiler/f18/pull/559


  Commit: eb97418b2d0e34b4dc7476c2fa8489020483b5c4
      https://github.com/llvm/llvm-project/commit/eb97418b2d0e34b4dc7476c2fa8489020483b5c4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#559 from flang-compiler/tsk-symbols3

Move some functions to semantics/tools.h

Original-commit: flang-compiler/f18 at e133247901d9618cca73dd5557923ff642da93cb
Reviewed-on: https://github.com/flang-compiler/f18/pull/559


  Commit: 20dd13e492b89855894502bdf265bafcc4a67b4c
      https://github.com/llvm/llvm-project/commit/20dd13e492b89855894502bdf265bafcc4a67b4c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/procinterface01.f90
    M flang/test/semantics/symbol13.f90

  Log Message:
  -----------
  [flang] Better name resolution for intrinsics

Original-commit: flang-compiler/f18 at 31fd9c82e9bd90b03bd37accd3d9f187ccbfa979
Reviewed-on: https://github.com/flang-compiler/f18/pull/561


  Commit: b2479a78c6df02a97e0eebc1eef19fcf3d39e44c
      https://github.com/llvm/llvm-project/commit/b2479a78c6df02a97e0eebc1eef19fcf3d39e44c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#561 from flang-compiler/pmk-fixes

Better name resolution for intrinsics

Original-commit: flang-compiler/f18 at 33aceaec8f1fffbaa959806fea479af6bf602a6b
Reviewed-on: https://github.com/flang-compiler/f18/pull/561


  Commit: 800b96540b0bfff66dae541359a210cb002efc03
      https://github.com/llvm/llvm-project/commit/800b96540b0bfff66dae541359a210cb002efc03
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] Examples of Composite and Combined constructs (flang-compiler/f18#558)

* Examples of Composite and Combined constructs

2.8.3 Loop SIMD Construct
2.11.1 Parallel Loop Construct
2.11.3 Parallel Loop SIMD Construct

Not in the implementation:
2.8.3 DO SIMD: A list item may appear in a linear or firstprivate clause but not both

Original-commit: flang-compiler/f18 at 75d9c1a081474c02a3e106ac13924134e06793ca
Reviewed-on: https://github.com/flang-compiler/f18/pull/558


  Commit: ca3dc401a9fe69ae302b54078b71caf46dee77e2
      https://github.com/llvm/llvm-project/commit/ca3dc401a9fe69ae302b54078b71caf46dee77e2
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] add ORDERED construct w/ THREADS and SIMD clauses (parse error)

Original-commit: flang-compiler/f18 at 23a71aed74ee34ddd4dbf80ac3f906bf8c255bd9
Reviewed-on: https://github.com/flang-compiler/f18/pull/566
Tree-same-pre-rewrite: false


  Commit: ed2213bb516db281170598fb22dfe893ef32c125
      https://github.com/llvm/llvm-project/commit/ed2213bb516db281170598fb22dfe893ef32c125
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h

  Log Message:
  -----------
  [flang] Ensure that no OMP clause is a prefix of a later one in the grammar; then alphabetize the order.

Original-commit: flang-compiler/f18 at 7f4b4f8e74d003e87523ae62e7c1a82b8441299a
Reviewed-on: https://github.com/flang-compiler/f18/pull/566


  Commit: 4370b717f000d438bed4dec4573bd224bc33ef94
      https://github.com/llvm/llvm-project/commit/4370b717f000d438bed4dec4573bd224bc33ef94
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-07-11 (Thu, 11 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#566 from flang-compiler/by-mp-validity

Add missing THREADS and SIMD clauses

Original-commit: flang-compiler/f18 at ade72d803d2b795d30244a4f9e72c5f26dafd454
Reviewed-on: https://github.com/flang-compiler/f18/pull/566


  Commit: 507cc50866c265e8e828819b9c0f86f6dcdd57b8
      https://github.com/llvm/llvm-project/commit/507cc50866c265e8e828819b9c0f86f6dcdd57b8
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-12 (Fri, 12 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/type.cc

  Log Message:
  -----------
  [flang] Add IsGlobal and IsDerivedType to Scope

These are properties of Scopes that are checked frequently
so add IsGlobal and IsDerivedType for convenience.

Original-commit: flang-compiler/f18 at aebb2379d71fbc00f544cc7d831e032fd60564a1
Reviewed-on: https://github.com/flang-compiler/f18/pull/567
Tree-same-pre-rewrite: false


  Commit: 714d3be8bf0f406656db8efad47f0a25edf89450
      https://github.com/llvm/llvm-project/commit/714d3be8bf0f406656db8efad47f0a25edf89450
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-12 (Fri, 12 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/resolve53.f90

  Log Message:
  -----------
  [flang] Use passed-object dummy in distinguishability checks

Complete the checks for distinguishable specifics procedure in a generic
by considering any passed-object dummy arguments.

C1514 rule 3 is implemented and the checks for the other rules are
extended to consider the PASS attribute, including the concept of the
"effective" position of an argument in an argument list, computed by
ignoring passed-object arguments.

Add `pass` to `characteristics::DummyArgument` to mark each
passed-object dummy argument.

Change symbols to store the index of the passed-object dummy argument
rather than its symbol.

Check that specifics of a type-bound generic are distinguishable only
after all of the procedure bindings have been processed. They don't have
to be before the generic.

Original-commit: flang-compiler/f18 at 2751490f95fa5ca321c912330aca1091cdbc2f70
Reviewed-on: https://github.com/flang-compiler/f18/pull/567


  Commit: 9bb9352a09947b845399c169b4e3d59184945f9c
      https://github.com/llvm/llvm-project/commit/9bb9352a09947b845399c169b4e3d59184945f9c
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#567 from flang-compiler/tsk-pass-2

Use passed-object dummy in distinguishability checks

Original-commit: flang-compiler/f18 at c87fbc387f8a7fbe82334427ed5280e2ef906ae6
Reviewed-on: https://github.com/flang-compiler/f18/pull/567


  Commit: 40c797d773c2542249ef792a87953307e270705a
      https://github.com/llvm/llvm-project/commit/40c797d773c2542249ef792a87953307e270705a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/documentation/ParserCombinators.md
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/token-parsers.h

  Log Message:
  -----------
  [flang] Add "..."_id token syntax for complete tokens with lookahead

Original-commit: flang-compiler/f18 at 19695ccfa4f2db50fb65af3f4db1bb595ef2f568
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: bdec2cd8c955b97aa00325957e77653fd5bc50df
      https://github.com/llvm/llvm-project/commit/bdec2cd8c955b97aa00325957e77653fd5bc50df
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h

  Log Message:
  -----------
  [flang] Refinements; builds and passes tests again

Original-commit: flang-compiler/f18 at a83410a4400a05b2b21e0207c605b5351bda6dbe
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 51b43e9e484b74a0a2df756106570ebb4a9b2f87
      https://github.com/llvm/llvm-project/commit/51b43e9e484b74a0a2df756106570ebb4a9b2f87
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/token-parsers.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] Define and use OpenMPConstructDirective

Original-commit: flang-compiler/f18 at cd716fa90702613fc1cd1596705dbe6e85b07d57
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: b85df7393516d2c8bc61d86f6ce0c9932e31be69
      https://github.com/llvm/llvm-project/commit/b85df7393516d2c8bc61d86f6ce0c9932e31be69
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h

  Log Message:
  -----------
  [flang] Restore alphabetical order to OpenMP nodes in parse tree dumper

Original-commit: flang-compiler/f18 at 88b1a26035b5be64d4e3f70293555d8ee14b3074
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 1a26c576deca34edacbbc2d56601e5bc2a21d20b
      https://github.com/llvm/llvm-project/commit/1a26c576deca34edacbbc2d56601e5bc2a21d20b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] Eliminate a lot of needless indirection in OMP data structures

Original-commit: flang-compiler/f18 at 47c6cb0ba9f1bef1ce50071b18a33c584c2973aa
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: a3242b8107be149b93aeeed4e65483f4cd009b48
      https://github.com/llvm/llvm-project/commit/a3242b8107be149b93aeeed4e65483f4cd009b48
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] more progress

Original-commit: flang-compiler/f18 at 1a219e50732ab5bd8c79ec9e85609c0b64598c69
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 2d0f9636a820d4d3cfb656779b37fb824d728be9
      https://github.com/llvm/llvm-project/commit/2d0f9636a820d4d3cfb656779b37fb824d728be9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h

  Log Message:
  -----------
  [flang] Change some empty classes into enums

Original-commit: flang-compiler/f18 at 652e47455660c7bb5ba41f791f1f42533ac30321
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 2075e06dffef12d869c6f7ad88fb89e23a6f00ad
      https://github.com/llvm/llvm-project/commit/2075e06dffef12d869c6f7ad88fb89e23a6f00ad
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] Change more empty classes into enums

Original-commit: flang-compiler/f18 at e73b0368b226f72cca7f32ae1742758324700649
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 6599bdf9b587bae3f710c26f0c54223537f2f78d
      https://github.com/llvm/llvm-project/commit/6599bdf9b587bae3f710c26f0c54223537f2f78d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h

  Log Message:
  -----------
  [flang] Convert more empty classes to enums

Original-commit: flang-compiler/f18 at 9cf8b9eea7162c8cbee347c3e8333bed046011d5
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 521a9770af21f414f3d37818385c38411527ea4a
      https://github.com/llvm/llvm-project/commit/521a9770af21f414f3d37818385c38411527ea4a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] Combine BARRIER/TASKWAIT/TASKYIELD

Original-commit: flang-compiler/f18 at c56c893a05648475eadfeece8fdd02c8b3ef224f
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 5557fff6e8580ec82fc5fbcb08b18974c6fbeee2
      https://github.com/llvm/llvm-project/commit/5557fff6e8580ec82fc5fbcb08b18974c6fbeee2
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/documentation/ParserCombinators.md
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h

  Log Message:
  -----------
  [flang] Complete source provenance on OMP constructs (except ATOMIC)

Original-commit: flang-compiler/f18 at 8f6e93d579e5a7263296c33323bed5d92c5b8427
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: ef59f7ad128358b6e2be9094917a3e97d7e3b193
      https://github.com/llvm/llvm-project/commit/ef59f7ad128358b6e2be9094917a3e97d7e3b193
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h

  Log Message:
  -----------
  [flang] Ensure that provenance is preserved in move ctor/assignment of Verbatim

Original-commit: flang-compiler/f18 at fcb5513486ed9efec4d145fdfd253a6a86aafe43
Reviewed-on: https://github.com/flang-compiler/f18/pull/569
Tree-same-pre-rewrite: false


  Commit: 3d8b3ddef08420913638ea451efd25b81ea26899
      https://github.com/llvm/llvm-project/commit/3d8b3ddef08420913638ea451efd25b81ea26899
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h

  Log Message:
  -----------
  [flang] Separate keyword from clauses in provenance of construct directives

Original-commit: flang-compiler/f18 at 9994d2351eb7329e4175dce693089b0a81e198a7
Reviewed-on: https://github.com/flang-compiler/f18/pull/569


  Commit: 5f9ea62fae8295df745b90ff2b52c667248bc680
      https://github.com/llvm/llvm-project/commit/5f9ea62fae8295df745b90ff2b52c667248bc680
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#569 from flang-compiler/pmk-omp

Add source provenance to OpenMP parse tree nodes; clean things up.

Original-commit: flang-compiler/f18 at 03786ec4073cd04103a6e4385b0cd1873cebadc7
Reviewed-on: https://github.com/flang-compiler/f18/pull/569


  Commit: 97e60b7354fc1d2217c36712f89aadc974a8060b
      https://github.com/llvm/llvm-project/commit/97e60b7354fc1d2217c36712f89aadc974a8060b
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve53.f90

  Log Message:
  -----------
  [flang] Procedure distinguishability rules for operators

Generic operators and assignment have different rules than generic
names for their procedures being distinguishable.

Implement those rules in `DistinguishableOpOrAssign`. The rules are
considerably simpler: they must have the name number of dummy arguments
and at least one pair in the same position must be distinguishable.

Fixes issue flang-compiler/f18#563.

Original-commit: flang-compiler/f18 at 276bb082060dcbdb7d2b2a7dbe344bb72ecddab6
Reviewed-on: https://github.com/flang-compiler/f18/pull/576


  Commit: 937fad77a77f50192afc29f4e4aa447d0a10d590
      https://github.com/llvm/llvm-project/commit/937fad77a77f50192afc29f4e4aa447d0a10d590
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#576 from flang-compiler/tsk-pass

Procedure distinguishability rules for operators

Original-commit: flang-compiler/f18 at fc35c3ed0b41e0b722673a421f8b008fffa9d275
Reviewed-on: https://github.com/flang-compiler/f18/pull/576


  Commit: 4635eb1aac9256b944d76a9f9d971ea8423828a8
      https://github.com/llvm/llvm-project/commit/4635eb1aac9256b944d76a9f9d971ea8423828a8
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-12 (Fri, 12 Jul 2019)

  Changed paths:
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/allocate11.f90
    M flang/test/semantics/allocate13.f90
    M flang/test/semantics/coarrays01.f90
    A flang/test/semantics/common.sh
    M flang/test/semantics/resolve50.f90
    M flang/test/semantics/test_any.sh
    M flang/test/semantics/test_errors.sh
    M flang/test/semantics/test_modfile.sh
    M flang/test/semantics/test_symbols.sh

  Log Message:
  -----------
  [flang] Improvements to semantics tests

Change test scripts so that cmake passes in the path to the `f18`
that it just built. They no longer have to use relative paths.

Simplify argument passing in test scripts by sharing it in `common.sh`.

Move `if_arith01.f90`, `if_construct01.f90`, `if_stmt01.f90` to `ERROR_TESTS`.
As it was, nothing was being tested on them.

For `test_error.sh`, find the include directory relative to `f18` and
pass that in with a `-I` option. Eliminate the temporary definitions of
`iso_fortran_env`, `iso_c_binding`, `ieee_exceptions` in the tests
because the "real" ones are now available.

The tests that are run with `test_any.sh` could probably have similar
changes, but they are not part of this commit.

Original-commit: flang-compiler/f18 at b62fe489be9aefeebb11954a6436285a1b5e6840
Reviewed-on: https://github.com/flang-compiler/f18/pull/568


  Commit: f2d0ae546e9d31c35d036827d99506964dee76f4
      https://github.com/llvm/llvm-project/commit/f2d0ae546e9d31c35d036827d99506964dee76f4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#568 from flang-compiler/tsk-test

Improvements to semantics tests

Original-commit: flang-compiler/f18 at 4dde0d7daae7504ec87bccbaee5c9909cc406f05
Reviewed-on: https://github.com/flang-compiler/f18/pull/568


  Commit: 5597f366e1ae4f13d1a6ef18bd97c104c0ab20ae
      https://github.com/llvm/llvm-project/commit/5597f366e1ae4f13d1a6ef18bd97c104c0ab20ae
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-08 (Mon, 08 Jul 2019)

  Changed paths:
    M flang/lib/semantics/canonicalize-do.cc
    M flang/lib/semantics/resolve-labels.cc
    A flang/test/semantics/label14.f90

  Log Message:
  -----------
  [flang] Fix issues 518 and 546
- Only allow out-of-scope label target for label-do-stmt
  when the label is on an end-stmt of a scope directly nested
  into the one of the label-do-stmt.
- Also transform label-do-stmt into non-label-do constructs
  so that later phases do not have to handle label-do-stmt.

Original-commit: flang-compiler/f18 at 91cff2f29698506ac95138107c5f0c625fa237ba
Reviewed-on: https://github.com/flang-compiler/f18/pull/552
Tree-same-pre-rewrite: false


  Commit: 8a4b595bf63cf219dda4686617761ff1c4685bf9
      https://github.com/llvm/llvm-project/commit/8a4b595bf63cf219dda4686617761ff1c4685bf9
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-09 (Tue, 09 Jul 2019)

  Changed paths:
    M flang/lib/semantics/canonicalize-do.cc
    M flang/lib/semantics/resolve-labels.cc
    M flang/test/semantics/label14.f90

  Log Message:
  -----------
  [flang] Answer comments
* Support target label of label-do on all executable constructs as well as
  forall and where.
* Re-oder and rename related checks in resolve-labels.cc

Original-commit: flang-compiler/f18 at e5ac8a1660511a7e48f0b2075f87ca1d8dbe23d9
Reviewed-on: https://github.com/flang-compiler/f18/pull/552
Tree-same-pre-rewrite: false


  Commit: 16cf49488842532dfdea78eafe56d0acdf602cc0
      https://github.com/llvm/llvm-project/commit/16cf49488842532dfdea78eafe56d0acdf602cc0
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-09 (Tue, 09 Jul 2019)

  Changed paths:
    M flang/lib/parser/features.h
    M flang/lib/semantics/resolve-labels.cc
    M flang/lib/semantics/resolve-labels.h
    M flang/lib/semantics/semantics.cc
    M flang/test/semantics/canondo07.f90
    R flang/test/semantics/label14.f90

  Log Message:
  -----------
  [flang] Add non standard feature for labeled do not ending with END DO or CONTINUE
* The warning was already here, this commit only refactors things so that
 it can be controled with -Mstandard.
* Also makes the warning point to the do-stmt and adds a note to the warning
  pointing to the statements where it ends.

Original-commit: flang-compiler/f18 at 11e1eb6edd4a88b7d6517ecfc3378e95757a3a24
Reviewed-on: https://github.com/flang-compiler/f18/pull/552
Tree-same-pre-rewrite: false


  Commit: 93e05161ea543e595f50ed20efe758ea1c77c2fa
      https://github.com/llvm/llvm-project/commit/93e05161ea543e595f50ed20efe758ea1c77c2fa
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/semantics/canonicalize-do.cc
    M flang/test/semantics/canondo07.f90
    A flang/test/semantics/canondo08.f90
    A flang/test/semantics/canondo09.f90
    A flang/test/semantics/canondo10.f90
    A flang/test/semantics/canondo11.f90
    A flang/test/semantics/canondo12.f90
    A flang/test/semantics/canondo13.f90
    A flang/test/semantics/canondo14.f90
    A flang/test/semantics/canondo15.f90
    A flang/test/semantics/canondo16.f90
    A flang/test/semantics/canondo17.f90
    A flang/test/semantics/canondo18.f90

  Log Message:
  -----------
  [flang] Answer comment: split cannondo new tests

Original-commit: flang-compiler/f18 at 7ebf7f72b039385072e6f9fc0e182e8491258f8c
Reviewed-on: https://github.com/flang-compiler/f18/pull/552
Tree-same-pre-rewrite: false


  Commit: 31cab04be73543747ba969c9796daf53e2b003e0
      https://github.com/llvm/llvm-project/commit/31cab04be73543747ba969c9796daf53e2b003e0
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-10 (Wed, 10 Jul 2019)

  Changed paths:
    M flang/lib/semantics/canonicalize-do.cc
    A flang/test/semantics/canondo19.f90

  Log Message:
  -----------
  [flang] Add fix for issue flang-compiler/f18#517

Original-commit: flang-compiler/f18 at d9bb6890d781b85cee4b820fd0c43eacfc7919e6
Reviewed-on: https://github.com/flang-compiler/f18/pull/552


  Commit: 64206257a0693c1fa645eb495c64b9862433809c
      https://github.com/llvm/llvm-project/commit/64206257a0693c1fa645eb495c64b9862433809c
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#552 from flang-compiler/jpr-fix-518

Fix issues flang-compiler/f18#517, flang-compiler/f18#518, and flang-compiler/f18#546

Original-commit: flang-compiler/f18 at bc3c549d48a4166c63fbfb312adf0fc7079adeb1
Reviewed-on: https://github.com/flang-compiler/f18/pull/552


  Commit: 375dcec348ad3f1aec37bfe469565e5024df2989
      https://github.com/llvm/llvm-project/commit/375dcec348ad3f1aec37bfe469565e5024df2989
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/procinterface01.f90
    M flang/test/semantics/symbol13.f90

  Log Message:
  -----------
  [flang] When creating symbols for intrinsics, do not put them in the global scope, and do not emit them to module files.

Original-commit: flang-compiler/f18 at 9907026609122ed5842340ae5b4de5c353846dec
Reviewed-on: https://github.com/flang-compiler/f18/pull/565
Tree-same-pre-rewrite: false


  Commit: fc638c021cba2b6813ed8818e1a1cdcb9dfdcca8
      https://github.com/llvm/llvm-project/commit/fc638c021cba2b6813ed8818e1a1cdcb9dfdcca8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Make warning about exponent letters more useful

Original-commit: flang-compiler/f18 at 9c9aaacd7b43c4101140758b1924343b745e1f88
Reviewed-on: https://github.com/flang-compiler/f18/pull/565
Tree-same-pre-rewrite: false


  Commit: 29004ece9549f5a04f5c7f20d13d33f9def41096
      https://github.com/llvm/llvm-project/commit/29004ece9549f5a04f5c7f20d13d33f9def41096
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] fix crash in ASSOCIATED() intrinsic with two arguments

Original-commit: flang-compiler/f18 at 1a393ff43b627f1cf111d6a8a1a5403e285d7431
Reviewed-on: https://github.com/flang-compiler/f18/pull/565
Tree-same-pre-rewrite: false


  Commit: 8c0aa901852d1b7d38d6376c8f2d6147959979d3
      https://github.com/llvm/llvm-project/commit/8c0aa901852d1b7d38d6376c8f2d6147959979d3
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc

  Log Message:
  -----------
  [flang] Handle USE and host associations in characteristics analysis

Original-commit: flang-compiler/f18 at 1625f72e35a4ec5f8626b2dd07776f49f1a84f5a
Reviewed-on: https://github.com/flang-compiler/f18/pull/565
Tree-same-pre-rewrite: false


  Commit: 8f40dbcd1944be7ebb3bf01f1cf0f146d5102a00
      https://github.com/llvm/llvm-project/commit/8f40dbcd1944be7ebb3bf01f1cf0f146d5102a00
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/type.h
    M flang/test/semantics/resolve20.f90

  Log Message:
  -----------
  [flang] Fix flang-compiler/f18#571: forward reference to interface

Original-commit: flang-compiler/f18 at 5e00d1699c0ca6fe656447ac10c4184b86e8e992
Reviewed-on: https://github.com/flang-compiler/f18/pull/565
Tree-same-pre-rewrite: false


  Commit: 367d3eec60855fc9b9afb0c4ca90246a8f383bfa
      https://github.com/llvm/llvm-project/commit/367d3eec60855fc9b9afb0c4ca90246a8f383bfa
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Address review comment

Original-commit: flang-compiler/f18 at 5d6749c3d4f5b940a99421ec645961924aa5d8d9
Reviewed-on: https://github.com/flang-compiler/f18/pull/565
Tree-same-pre-rewrite: false


  Commit: d3c8af484a0ef505cf2b1ee5e3e4830b421d6117
      https://github.com/llvm/llvm-project/commit/d3c8af484a0ef505cf2b1ee5e3e4830b421d6117
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix typo

Original-commit: flang-compiler/f18 at f7d9f5bd7c6b03344e0cb2030e928cf1945f5d79
Reviewed-on: https://github.com/flang-compiler/f18/pull/565


  Commit: 66a7639f499d59575ba8bae46bb1619f235735aa
      https://github.com/llvm/llvm-project/commit/66a7639f499d59575ba8bae46bb1619f235735aa
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#565 from flang-compiler/pmk-fixes

When creating symbols for intrinsics, do not put them in the global s…

Original-commit: flang-compiler/f18 at 38789942a74f83d38c1132e96708158738ae0784
Reviewed-on: https://github.com/flang-compiler/f18/pull/565


  Commit: 16356d58bcbb66e876ead7bc7260c6bbee01aa34
      https://github.com/llvm/llvm-project/commit/16356d58bcbb66e876ead7bc7260c6bbee01aa34
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/resolve38.f90

  Log Message:
  -----------
  [flang] Allow forward reference to binding name in type-bound generic

Type-bound generic statements can have binding names that refer to
bindings that occur later in the type. So save a map of generic to
binding names and process them when we get to the end of the
type-bound procedure part. This is similar to how specific procedures
of generic identifiers are handled.

Also detect duplicate binding names for a type-bound generic.

Fixes issue flang-compiler/f18#572.

Original-commit: flang-compiler/f18 at d58bb77cfa8cde2838a5eaba3e44956bdaa042e7
Reviewed-on: https://github.com/flang-compiler/f18/pull/577


  Commit: 721a2c55db5c6d4eefcce47bf4e408b4a4edb2ac
      https://github.com/llvm/llvm-project/commit/721a2c55db5c6d4eefcce47bf4e408b4a4edb2ac
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#577 from flang-compiler/tsk-issue572

Allow forward reference to binding name in type-bound generic

Original-commit: flang-compiler/f18 at 3ed8a8a35619ad3c84bae12ab7f308677b7fb044
Reviewed-on: https://github.com/flang-compiler/f18/pull/577


  Commit: 258e8bda21ce4537a43e3a4fc3e9c5e90a0c6a2e
      https://github.com/llvm/llvm-project/commit/258e8bda21ce4537a43e3a4fc3e9c5e90a0c6a2e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/resolve20.f90
    M flang/test/semantics/resolve32.f90

  Log Message:
  -----------
  [flang] Allow forward references to procedure interfaces in derived types (fixing flang-compiler/f18#571 more)

Original-commit: flang-compiler/f18 at c1aeeae7765527c40c1934d4d4d15086bf88758f
Reviewed-on: https://github.com/flang-compiler/f18/pull/580
Tree-same-pre-rewrite: false


  Commit: 40fb469233e5ed16da8e6948d516c7444b31f1ae
      https://github.com/llvm/llvm-project/commit/40fb469233e5ed16da8e6948d516c7444b31f1ae
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix bug flang-compiler/f18#579 while here

Original-commit: flang-compiler/f18 at eefbcdcb544573c7cdf5c47e8ff24ed0412f144f
Reviewed-on: https://github.com/flang-compiler/f18/pull/580
Tree-same-pre-rewrite: false


  Commit: 2f49ddeefe6d099a6a413061602aa1b31b0a08e6
      https://github.com/llvm/llvm-project/commit/2f49ddeefe6d099a6a413061602aa1b31b0a08e6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve20.f90
    M flang/test/semantics/resolve32.f90

  Log Message:
  -----------
  [flang] review comment

Original-commit: flang-compiler/f18 at f5c46291ece846986c20dd1dbeeff433e0e20462
Reviewed-on: https://github.com/flang-compiler/f18/pull/580


  Commit: 5b91eceb693d5e1a8930178a6dc8e87eabd0ea49
      https://github.com/llvm/llvm-project/commit/5b91eceb693d5e1a8930178a6dc8e87eabd0ea49
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#580 from flang-compiler/pmk-fixes

Allow forward references to procedure interfaces in derived types (fi…

Original-commit: flang-compiler/f18 at 8c63aa94972fb3f7b88f23fa1b78f8b67ffa8732
Reviewed-on: https://github.com/flang-compiler/f18/pull/580


  Commit: 2a3f3163e63eb080675e0209dcd9ed403e10af8d
      https://github.com/llvm/llvm-project/commit/2a3f3163e63eb080675e0209dcd9ed403e10af8d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Extension: relax "same kind" rules on some intrinsics

Original-commit: flang-compiler/f18 at ce5130f84bcb78007180ee87661c84b1483a476c
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 8187bc12cd963b6a40035ecc0fa80a7921249ccb
      https://github.com/llvm/llvm-project/commit/8187bc12cd963b6a40035ecc0fa80a7921249ccb
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/integer.h

  Log Message:
  -----------
  [flang] Silence spurious overflow warning on negative int4->int2 folding

Original-commit: flang-compiler/f18 at 5f1cad3911e791c47ef83e729a612d7f49022355
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 3dbc1b7abe001760374b7842fc64b6dae15f16a3
      https://github.com/llvm/llvm-project/commit/3dbc1b7abe001760374b7842fc64b6dae15f16a3
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc

  Log Message:
  -----------
  [flang] Allow BOZ initializers on REAL parameters, too.

Original-commit: flang-compiler/f18 at e1ab6b316e6d28d7ff8733ad19b4bdc5feaf0745
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 99ec2fa834d57864c1d39105d8d18415a30ec8fa
      https://github.com/llvm/llvm-project/commit/99ec2fa834d57864c1d39105d8d18415a30ec8fa
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
    M flang/documentation/Extensions.md

  Log Message:
  -----------
  [flang] Document BOZ initializers for REAL

Original-commit: flang-compiler/f18 at d72d5feb01e374e6874826f41aaafd25995c1a19
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 85db492ea0206a573ee928bb52817efba9fc0f8d
      https://github.com/llvm/llvm-project/commit/85db492ea0206a573ee928bb52817efba9fc0f8d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/parser/message.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/evaluate/expression.cc
    M flang/test/evaluate/folding.cc
    M flang/test/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Support SELECTED_CHAR_KIND("DEFAULT")

Original-commit: flang-compiler/f18 at c05c96c47452555e8cc81e77b2a44ad2339e6f53
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 14f693fb947e6c031c357595bfd053997457b66c
      https://github.com/llvm/llvm-project/commit/14f693fb947e6c031c357595bfd053997457b66c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-18 (Thu, 18 Jul 2019)

  Changed paths:
    M flang/documentation/Extensions.md

  Log Message:
  -----------
  [flang] Document intent to not support modules & programs whose names conflict with contents

Original-commit: flang-compiler/f18 at e23c48191105f1ffe472caaa6baf10c937521190
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 6da0d748d5ec58104ed1ea2533e388d585dfa5c5
      https://github.com/llvm/llvm-project/commit/6da0d748d5ec58104ed1ea2533e388d585dfa5c5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-18 (Thu, 18 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Accept NULL() in struct constructor for ALLOCATABLE component

Original-commit: flang-compiler/f18 at 7aee0e4852f34cc85ba0de9cc44fbed167029675
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 834c4d6bc44fb401d48ec1d9fc0d502c179c3f2a
      https://github.com/llvm/llvm-project/commit/834c4d6bc44fb401d48ec1d9fc0d502c179c3f2a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-18 (Thu, 18 Jul 2019)

  Changed paths:
    M flang/documentation/Extensions.md

  Log Message:
  -----------
  [flang] document a non-extension

Original-commit: flang-compiler/f18 at 625daf5218d42e2f20daef53c4df204973b3bc39
Reviewed-on: https://github.com/flang-compiler/f18/pull/590
Tree-same-pre-rewrite: false


  Commit: 645d98719d9be0db6ebeca9f1df08f459b7f6908
      https://github.com/llvm/llvm-project/commit/645d98719d9be0db6ebeca9f1df08f459b7f6908
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-19 (Fri, 19 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] address review comment

Original-commit: flang-compiler/f18 at 7012b6178654bca8b64ab9db334bb053b5c01965
Reviewed-on: https://github.com/flang-compiler/f18/pull/590


  Commit: 88cb878bbcb5195125fbb1074b952144534ab5ad
      https://github.com/llvm/llvm-project/commit/88cb878bbcb5195125fbb1074b952144534ab5ad
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-19 (Fri, 19 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#590 from flang-compiler/pmk-fixes

Roll up some fixes and extensions

Original-commit: flang-compiler/f18 at 561719d276695b8316836ebf15ca72da22feb55c
Reviewed-on: https://github.com/flang-compiler/f18/pull/590


  Commit: 815cc42e9af20bbe06afe883159568dad97bcbb3
      https://github.com/llvm/llvm-project/commit/815cc42e9af20bbe06afe883159568dad97bcbb3
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-19 (Fri, 19 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-labels.cc

  Log Message:
  -----------
  [flang] Fix issue flang-compiler/f18#515
Do not emit "is not a branch target" warning for old action-stmt just
because these action-stmt are depreciated. The depreciated aspect of
these features is already handled via -Mstandard.

Original-commit: flang-compiler/f18 at f7d124d8cd3d97ee81208121a336f14fef9595ac
Reviewed-on: https://github.com/flang-compiler/f18/pull/593


  Commit: 1199ce264e26c0b97208297e95848d18566254fc
      https://github.com/llvm/llvm-project/commit/1199ce264e26c0b97208297e95848d18566254fc
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-07-22 (Mon, 22 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#593 from flang-compiler/jpr-fix-515

Fix issue flang-compiler/f18#515

Original-commit: flang-compiler/f18 at 415d6d611062b5bc8ccfd156557f70352bf00174
Reviewed-on: https://github.com/flang-compiler/f18/pull/593


  Commit: 978b246229d763de2ae92340aa9c2d145338907d
      https://github.com/llvm/llvm-project/commit/978b246229d763de2ae92340aa9c2d145338907d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-19 (Fri, 19 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-allocate.cc

  Log Message:
  -----------
  [flang] Avoid crashing in check-allocate.cc on CLASS(*)

Original-commit: flang-compiler/f18 at 7ba4275998262a2bd277928baa9e63112004d7f1
Reviewed-on: https://github.com/flang-compiler/f18/pull/595


  Commit: 52df04445e3581fde69a0852fbe5d9b62c27043a
      https://github.com/llvm/llvm-project/commit/52df04445e3581fde69a0852fbe5d9b62c27043a
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-22 (Mon, 22 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#595 from flang-compiler/pmk-fixes

Avoid crashing in check-allocate.cc on CLASS(*) source

Original-commit: flang-compiler/f18 at 95f76866e4366b9f5b9e56498b4918a51af882b3
Reviewed-on: https://github.com/flang-compiler/f18/pull/595


  Commit: 7c03f03c67da1e41ebe715dcde67baa7587eb734
      https://github.com/llvm/llvm-project/commit/7c03f03c67da1e41ebe715dcde67baa7587eb734
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-19 (Fri, 19 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Do not add invalid subscript triple to whole assumed-size array reference

Original-commit: flang-compiler/f18 at 71c134a55206c173acabe02bfd863080f1625117
Reviewed-on: https://github.com/flang-compiler/f18/pull/597
Tree-same-pre-rewrite: false


  Commit: 31ffd34a02735900bf5a862d17786725af4fbea9
      https://github.com/llvm/llvm-project/commit/31ffd34a02735900bf5a862d17786725af4fbea9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-19 (Fri, 19 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/constant.cc
    M flang/lib/evaluate/constant.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/formatting.cc

  Log Message:
  -----------
  [flang] Avoid crash on bad subscript, refactor Constant bounds a bit

Original-commit: flang-compiler/f18 at c2e01e838665e1f79e7419a56c2ffaf3475ba140
Reviewed-on: https://github.com/flang-compiler/f18/pull/597


  Commit: 1cdcfbcad37b3f6499df5b860f119eca6e577fe7
      https://github.com/llvm/llvm-project/commit/1cdcfbcad37b3f6499df5b860f119eca6e577fe7
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-22 (Mon, 22 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#597 from flang-compiler/pmk-fixes-2

Fix a couple of crashes on tests, refactor Constant bounds information a bit

Original-commit: flang-compiler/f18 at e980d641377a18e30c55a8e18a85daee2a4b5607
Reviewed-on: https://github.com/flang-compiler/f18/pull/597


  Commit: 953d93dbe85e858d84aa0651ab7f610f942856ad
      https://github.com/llvm/llvm-project/commit/953d93dbe85e858d84aa0651ab7f610f942856ad
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/documentation/C++style.md
    M flang/lib/common/Fortran.h
    M flang/lib/evaluate/constant.cc
    M flang/lib/evaluate/constant.h
    M flang/lib/evaluate/fold.cc
    M flang/test/evaluate/CMakeLists.txt
    A flang/test/evaluate/folding06.f90

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#544 from flang-compiler/jpr-reshape-only-folding

RESHAPE without shared runtime/front-end descriptor API

Original-commit: flang-compiler/f18 at 24856b82387a6d729b8d50314bc3e67200ec6f86
Reviewed-on: https://github.com/flang-compiler/f18/pull/544

Due to a conflicting rebase during the linearizing of flang-compiler/f18, this commit squashes a number of other commits:

flang-compiler/f18 at 2ec1d85d398e4171b6d77a21ccbe1fffec9e420d Implement RESHAPE folding on Constant<T> only
flang-compiler/f18 at 539463053942adf93ae015af800934e73d8942e3 Enable RESHAPE folding tests
flang-compiler/f18 at 83b2b86253c9536bb5698526d461f4c68c1affaf Answer review comment + Add a common path for intrsinic function folding before specializing the folding per type. + Make reshape folding return an "invalid" intrinsic after errors are met so that warnings do not get re-generated. + Misc style changes
flang-compiler/f18 at 2e5c29f2805e1e8dfdb8caa8f13eac9472c4c3c2 add missing file to previous commit...
flang-compiler/f18 at 9bd5ad9875e894a9a86e94f1e2153cc2cd5ef8d5 Document issue #518 workaround
flang-compiler/f18 at a4f8f518318f01c298392f3c6e3b8745e34c2953 Go back to clang-format version 7.01
flang-compiler/f18 at e871e58a5218504d9c92056058458706f3ad0c27 answer comment regarding naming and interface
flang-compiler/f18 at 145c7c1ecee57ff557527c0e6eb5655f43f00e39 Merge branch 'master' into jpr-reshape-only-folding Too many logical conflicts to simply rebase.


  Commit: 3f00257e3baf4fe30b199e496112f5048493cf0b
      https://github.com/llvm/llvm-project/commit/3f00257e3baf4fe30b199e496112f5048493cf0b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-22 (Mon, 22 Jul 2019)

  Changed paths:
    M flang/lib/semantics/tools.cc

  Log Message:
  -----------
  [flang] Fix crash

Original-commit: flang-compiler/f18 at e00864f17e956d2e8805cf794cd677b56fc92d92
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: 3028ecf0b820992afb7a07effcd1938da86fa99f
      https://github.com/llvm/llvm-project/commit/3028ecf0b820992afb7a07effcd1938da86fa99f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-22 (Mon, 22 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/descender.h
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traversal.h

  Log Message:
  -----------
  [flang] Reimplement GetLastSymbol with expression visitor

Original-commit: flang-compiler/f18 at a996751e972a6ce6c4bab4caab03797c91c79bd2
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: daf9eb09d49f39819083dfe151209c9a5db7a205
      https://github.com/llvm/llvm-project/commit/daf9eb09d49f39819083dfe151209c9a5db7a205
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-22 (Mon, 22 Jul 2019)

  Changed paths:
    M flang/.gitignore

  Log Message:
  -----------
  [flang] Add root/ to .gitignore, remove old build-specific directory names

Original-commit: flang-compiler/f18 at d5843aa319a3375142eeae1476329eb1835f6da8
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: e4945e5d09587297c186bdae9d0c7d5cd3775c35
      https://github.com/llvm/llvm-project/commit/e4945e5d09587297c186bdae9d0c7d5cd3775c35
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traversal.h
    M flang/test/semantics/symbol11.f90

  Log Message:
  -----------
  [flang] Improve expression traversal, use it more for tools

Original-commit: flang-compiler/f18 at 4980b928bc61a392ee50cdac4129f905ed1e4559
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: 00861127ac9a9d5083fbb29c4a23a26632e73908
      https://github.com/llvm/llvm-project/commit/00861127ac9a9d5083fbb29c4a23a26632e73908
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/traversal.h

  Log Message:
  -----------
  [flang] Improve comments

Original-commit: flang-compiler/f18 at 277fb1cc917d46760100dcef27d137d82021d903
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: 3f753af9379eee60d549b9e0e8702d80fc52a4aa
      https://github.com/llvm/llvm-project/commit/3f753af9379eee60d549b9e0e8702d80fc52a4aa
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/lib/semantics/assignment.cc

  Log Message:
  -----------
  [flang] Fix pointer target check

Original-commit: flang-compiler/f18 at 8249bc8cd4a854f89cad38ab7292134a9facfe16
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: 353202bdcfaf3c432d937b6408beab2ef8a248d6
      https://github.com/llvm/llvm-project/commit/353202bdcfaf3c432d937b6408beab2ef8a248d6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc

  Log Message:
  -----------
  [flang] Fix handling of ALLOCATABLE components in GetLastTarget

Original-commit: flang-compiler/f18 at 6b3b404bdce4963cf4a87d5c69df55a291b65e04
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: a65661d5e6c7913626f7fa2615a80210cbc80024
      https://github.com/llvm/llvm-project/commit/a65661d5e6c7913626f7fa2615a80210cbc80024
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/lib/semantics/assignment.cc

  Log Message:
  -----------
  [flang] Review comment

Original-commit: flang-compiler/f18 at 784d2cc6dfb13dd4bd060b649e3f862ab272d59d
Reviewed-on: https://github.com/flang-compiler/f18/pull/601
Tree-same-pre-rewrite: false


  Commit: ee23b2fbbdade65538ed6c3c718607f08dd5dc8c
      https://github.com/llvm/llvm-project/commit/ee23b2fbbdade65538ed6c3c718607f08dd5dc8c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/.gitignore

  Log Message:
  -----------
  [flang] Do not remove things from .gitignore

Original-commit: flang-compiler/f18 at 27c896ea0b36cee706133e65db8f705a6f85155a
Reviewed-on: https://github.com/flang-compiler/f18/pull/601


  Commit: 165b0b8053284a5d2a3abb42a103e014f2be4b78
      https://github.com/llvm/llvm-project/commit/165b0b8053284a5d2a3abb42a103e014f2be4b78
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#601 from flang-compiler/pmk-fixes

Fix legal pointer target test

Original-commit: flang-compiler/f18 at 751cb64ae9935586123088fafc5880f34c4422f4
Reviewed-on: https://github.com/flang-compiler/f18/pull/601


  Commit: 8ed0f4c806b2a3398d0d171d14606e1010c5bc76
      https://github.com/llvm/llvm-project/commit/8ed0f4c806b2a3398d0d171d14606e1010c5bc76
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/resolve56.f90

  Log Message:
  -----------
  [flang] Avoid interference between different association variable resoltions
Fix issue 598 and related issues.

Transform resolve-names.cc ConstructVisitor association_ member into a
stack so that different association construct (select-type, select-rank,
change-team, associate) imbrication/succession do not interfere with each
other leading to wrong erronous symbol resolution.

Original-commit: flang-compiler/f18 at 5781f29ed6d3d235065e4a873a007431f6a48c02
Reviewed-on: https://github.com/flang-compiler/f18/pull/600
Tree-same-pre-rewrite: false


  Commit: ee845d4c64b00146112be098d0d26cd47c9b1410
      https://github.com/llvm/llvm-project/commit/ee845d4c64b00146112be098d0d26cd47c9b1410
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-24 (Wed, 24 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Address comment: make CHECK test more explicit

Original-commit: flang-compiler/f18 at a346462676b676d0abe2f98db2a80c8a4af3bd42
Reviewed-on: https://github.com/flang-compiler/f18/pull/600


  Commit: 7d8a0733c363eba9e28399e03e8276a18e174adc
      https://github.com/llvm/llvm-project/commit/7d8a0733c363eba9e28399e03e8276a18e174adc
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-07-24 (Wed, 24 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#600 from flang-compiler/jpr-fix-598

Avoid interference between different construct association in name resolutions

Original-commit: flang-compiler/f18 at 28c32a753879eb64f080872e39c129859cc6efba
Reviewed-on: https://github.com/flang-compiler/f18/pull/600


  Commit: 64a8b9b3d3d8228ca2151831ffa74fd8ef376d63
      https://github.com/llvm/llvm-project/commit/64a8b9b3d3d8228ca2151831ffa74fd8ef376d63
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-24 (Wed, 24 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/resolve17.f90

  Log Message:
  -----------
  [flang] Merge use-associated generics

When the same generic is use-associated from two different modules,
they must be merged together into a symbol with GenericDetails.

After that merger, if there is a use association of the same name
with a non-generic we have to report an error. So save the UseDetails
from the original USE in GenericDetails so we can create the
appropriate UseErrorDetails.

Fixes flang-compiler/f18#586.

Original-commit: flang-compiler/f18 at 5067345f70af1fa262803535515dc644828b43ae
Reviewed-on: https://github.com/flang-compiler/f18/pull/591


  Commit: 8269bf6c8c1451060a1c357c403a790f8846e04d
      https://github.com/llvm/llvm-project/commit/8269bf6c8c1451060a1c357c403a790f8846e04d
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-24 (Wed, 24 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#591 from flang-compiler/tsk-issue586

Merge use-associated generics

Original-commit: flang-compiler/f18 at e0b28015f13201b7e18d2a4ad9a4b4939de4a08c
Reviewed-on: https://github.com/flang-compiler/f18/pull/591


  Commit: 5ab96a860445cfd2ee968951937df208a11c28d5
      https://github.com/llvm/llvm-project/commit/5ab96a860445cfd2ee968951937df208a11c28d5
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/test/semantics/allocate09.f90

  Log Message:
  -----------
  [flang] Fix issue flang-compiler/f18#582: implicit ac-do-variable kind in expressions

Original-commit: flang-compiler/f18 at 4150a5e41147940dd2b8e951becaf6ded0447fc4
Reviewed-on: https://github.com/flang-compiler/f18/pull/583


  Commit: 23bf80fb7ce88cfb487cff084e0051a8ac105eca
      https://github.com/llvm/llvm-project/commit/23bf80fb7ce88cfb487cff084e0051a8ac105eca
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-07-24 (Wed, 24 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#583 from flang-compiler/jpr-fix-582

Fix issue flang-compiler/f18#582: implicit ac-do-variable kind in expressions

Original-commit: flang-compiler/f18 at cebc2be4b1a05a921993e7c4d7a1082cd724679f
Reviewed-on: https://github.com/flang-compiler/f18/pull/583


  Commit: 9b079deed5724b38f9a4ba3a7f3814ffbd58f5e8
      https://github.com/llvm/llvm-project/commit/9b079deed5724b38f9a4ba3a7f3814ffbd58f5e8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-24 (Wed, 24 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/integer.h
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/real.h
    M flang/test/evaluate/CMakeLists.txt
    A flang/test/evaluate/folding07.f90

  Log Message:
  -----------
  [flang] Fold more model inquiry intrinsics

Original-commit: flang-compiler/f18 at a3d82893b768865aa51f105f92805f61a87d95f1
Reviewed-on: https://github.com/flang-compiler/f18/pull/602
Tree-same-pre-rewrite: false


  Commit: 4aa659f795dee897c0910b63e3ccc37d8a4020a5
      https://github.com/llvm/llvm-project/commit/4aa659f795dee897c0910b63e3ccc37d8a4020a5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Address comments; allow "real,parameter::x=tiny(x)"

Original-commit: flang-compiler/f18 at e865358871da6211790b2869a58db7239d9c2e68
Reviewed-on: https://github.com/flang-compiler/f18/pull/602


  Commit: 02826fbfe0bfea1c4b95606955a04b7411fd4da0
      https://github.com/llvm/llvm-project/commit/02826fbfe0bfea1c4b95606955a04b7411fd4da0
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#602 from flang-compiler/pmk-next

Fold more model inquiry intrinsics

Original-commit: flang-compiler/f18 at 7d1aeea40979d4d545b0f21f079ccd39ac6012a0
Reviewed-on: https://github.com/flang-compiler/f18/pull/602


  Commit: 5eebbe7c9b0b83813c83d45bc4a3681c05851c5f
      https://github.com/llvm/llvm-project/commit/5eebbe7c9b0b83813c83d45bc4a3681c05851c5f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix IsVariable for Pete

Original-commit: flang-compiler/f18 at 4a24f74ae476f7d315bb68ed62f7dd39ad3b4d10
Reviewed-on: https://github.com/flang-compiler/f18/pull/603
Tree-same-pre-rewrite: false


  Commit: 6347b7c6952642f429b6f4c941c6cbf9fc6eadca
      https://github.com/llvm/llvm-project/commit/6347b7c6952642f429b6f4c941c6cbf9fc6eadca
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
    M flang/lib/evaluate/tools.h

  Log Message:
  -----------
  [flang] Fix bug

Original-commit: flang-compiler/f18 at 482f882e3f8c5d6dae699949eb848001dc65bbc7
Reviewed-on: https://github.com/flang-compiler/f18/pull/603


  Commit: bc7dfc3be34731e41786b62073b446432715bcd3
      https://github.com/llvm/llvm-project/commit/bc7dfc3be34731e41786b62073b446432715bcd3
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#603 from flang-compiler/pmk-fix

Fix IsVariable for Pete

Original-commit: flang-compiler/f18 at 73e8c365e2b05904e0a3950f4c0813b445333ba1
Reviewed-on: https://github.com/flang-compiler/f18/pull/603


  Commit: 814b241b45a34fbd7c77f7d9358d554e7af17793
      https://github.com/llvm/llvm-project/commit/814b241b45a34fbd7c77f7d9358d554e7af17793
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/resolve35.f90
    A flang/test/semantics/resolve57.f90

  Log Message:
  -----------
  [flang] Changes for constraint C1128.

Specifically, these changes enforce the last sentence of the constraint, which
prohibits names that cannot appear in a variable definition context from
appearing in a locality-spec.  Here are the details.

 - Created the function "IsModifiableName" to return "true" when its parameter
   is the name of a variable that can appear in a variable definition context.
 - Created the function "GetAssociationRoot" to follow construct associations
   to potentially get to an underlying variable.  This function is similar to
   the existing "GetUltimate" function that follows use associations and host
   associations.  One difference is that "GetAssociationRoot" requires access
   to the types "MaybeExpr" and "SomeExpr", which makes is inappropriate to put
   into symbol.cc, which is where "GetUltimate" lives.  Perhaps we should move
   "GetUltimate" to tools.[h,cc].
 - Generalized the functions "IsPureFunction" to "IsPureProcedure" since either
   a pure function or subroutine can provide a context for variables that
   cannot be modified.  Changed "FindPureFunctionContaining" to
   "FindPureProcedueContaining" to go along with this.
 - Added the function "IsExternalInPureContext" to detect the case where a
   nominally pure procedure potentially modifies a variable.
 - Created the function "IsOrContainsEventOrLockComponent" to detect variables
   that either are of EVENT_TYPE or LOCK_TYPE or contain components of these
   types.  Such variables cannot appear in variable definition contexts.
 - Added the test resolve56.f90 to test most of these conditions.  Note that I
   only tested the new code from the perspective of locality-specs.

Original-commit: flang-compiler/f18 at c9d2507b74da881dda2eb11805a0394a415db2e4
Reviewed-on: https://github.com/flang-compiler/f18/pull/596
Tree-same-pre-rewrite: false


  Commit: 0904c4cfd111073e91ccb13523539c4d377811d4
      https://github.com/llvm/llvm-project/commit/0904c4cfd111073e91ccb13523539c4d377811d4
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/structconst03.f90
    M flang/test/semantics/structconst04.f90

  Log Message:
  -----------
  [flang] Responses to previous review comments, specifically --

 - expression.cc - fixed an error message.  This required changing the tests
 structconst0[3,4].f90
 - tools.[h,cc] - Added a new function called ```WhyNotModifiable()``` to see
 if a name can be modified.  This function returns a string that describes why
 the name cannot be modified.  I changed the existing function
 ```IsModifiable()``` to call ```WhyNotModifiable()```.  I fixed and
 restructured the code for ```GetAssociationRoot()```.  This involved creating
 the mutually recursive function ```GetAssociatedVariable()```.  I added a
 check  to see if a name is an INTENT(IN) dummy argument to the function
 ```IsVariableName()```.
 - resolve-names.cc - Wrote the function ```SayWithReason()``` that allows an
 arbitrary message to be added to an existing message.  I changed the code in
 ```PassesLocalityChecks()``` to call the new function ```WhyNotModifiable()```
 to get the specifics of why a variable name cannot be used in a variable
 modification context and then call the new function ```SayWithReason()``` to
 report the error.  I also cleaned up the code as per Jean's suggestion.

Original-commit: flang-compiler/f18 at 8a2f4bdfd24a568a87b3bcb9faa9bc87a68eee84
Reviewed-on: https://github.com/flang-compiler/f18/pull/596
Tree-same-pre-rewrite: false


  Commit: 177948f9f668b0b3b3d101c447451ffefa22ab83
      https://github.com/llvm/llvm-project/commit/177948f9f668b0b3b3d101c447451ffefa22ab83
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/resolve35.f90
    M flang/test/semantics/resolve57.f90

  Log Message:
  -----------
  [flang] More changes in response to review comments.

 - resolve-names.cc: I reworded the message when a name appears in a
   locality-spec when a name is used that cannot appear in a variable
   definition context.
 - tools.cc: I removed the unused functions ```IsValueDummy()``` and
   ```IsModifiable()```.  I made the function ```GetAssociatedVariable()```
   static.  I cleaned up the code in ```GetAssociationRoot()```.  I cleaned up
   the code in ```IsOrContainsEventOrLockComponent()```.  I added a TODO to
   ```WhyNotModifiable()``` and made some other improvements to it.
 - tools.h: Removed some deleted and unnecessary functions.
 - I fixed up a couple of tests related to the changes in error messages.

Original-commit: flang-compiler/f18 at 47da8ff9c8c131a6fc7a4a6f4a8fa89c8b582b71
Reviewed-on: https://github.com/flang-compiler/f18/pull/596


  Commit: de551721e59ead8e787e51e4513b1856c68af41f
      https://github.com/llvm/llvm-project/commit/de551721e59ead8e787e51e4513b1856c68af41f
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#596 from flang-compiler/ps-variable-definition

Changes for constraint C1128

Original-commit: flang-compiler/f18 at d79137104ef0ab679b95d5393318aad4840e7e53
Reviewed-on: https://github.com/flang-compiler/f18/pull/596


  Commit: 423fcec80189f046b7219b8e22a6c198239a8dc4
      https://github.com/llvm/llvm-project/commit/423fcec80189f046b7219b8e22a6c198239a8dc4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-29 (Mon, 29 Jul 2019)

  Changed paths:
    M flang/lib/common/idioms.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/unparse-with-symbols.cc

  Log Message:
  -----------
  [flang] Add a way to check and dereference a pointer

It is common to get a pointer, check it is not null, and dereference it.
Sometimes that requires a named temporary just to be able to do the check.

The macro `DEREF(p)` provides this capability: it asserts that `p` is not null
and returns `*p`. This is analagous to `.value()` on an `std::optional`.

We might want to add a way to disable `CHECK` and the check in `DEREF` together.

This change also includes some examples of making use of `DEREF`.

Original-commit: flang-compiler/f18 at d7aa90e55ac80c7f2460ab7b0cb6d1ef0c068938
Reviewed-on: https://github.com/flang-compiler/f18/pull/608


  Commit: 1f490974d89707b47f867639703cdc2be0f63358
      https://github.com/llvm/llvm-project/commit/1f490974d89707b47f867639703cdc2be0f63358
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#608 from flang-compiler/tsk-deref

Add a way to check and dereference a pointer

Original-commit: flang-compiler/f18 at 31a3fae9f893565392e35fd3df1612615363dcdd
Reviewed-on: https://github.com/flang-compiler/f18/pull/608


  Commit: ebe4ff24b44d0ca03bccf96f2bc8bfcae5ed7378
      https://github.com/llvm/llvm-project/commit/ebe4ff24b44d0ca03bccf96f2bc8bfcae5ed7378
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/rewrite-parse-tree.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/modfile07.f90
    M flang/test/semantics/resolve17.f90
    M flang/test/semantics/resolve18.f90
    M flang/test/semantics/resolve36.f90

  Log Message:
  -----------
  [flang] Improve handling of generics with same name as type or procedure

Create symbols for generics in a pre-pass over the specification part so
it is easier to handle cases when they have the same name as a derived
type or subprogram. This is done by calling `PreSpecificationConstruct`
on each `SpecificationConstruct` of a specification part before we
continue walking it. The generics symbols are created there and the same
mechanism will be used to handle forward references to derived types.

Report an error when the same name is used for a generic interface,
derived type, and subprogram.

Improve the error message issued when a procedure and generic interface
have the same name but the procedure is not a specific of the generic.

Change `SayAlreadyDeclared` to report the error on the second occurence
of the name when possible. This can arise for declarations the are
processed out of order, e.g. contained subprograms and generic interfaces.

Avoid multiple "already declared" errors for the case when a contained
subprogram has the same name as a declared entity. We first create the
symbol with SubprogramNameDetails, then replace it with the entity (and
report the error), then replace it with the real subprogram (and get the
error again). By setting and checking the error flag we avoid the second
error.

Original-commit: flang-compiler/f18 at 48fc0767834154a7dbe9d5a964e603855ca88ab5
Reviewed-on: https://github.com/flang-compiler/f18/pull/614
Tree-same-pre-rewrite: false


  Commit: 5e39c9aa1d48a18360f0c77cddd94cbcf83641c4
      https://github.com/llvm/llvm-project/commit/5e39c9aa1d48a18360f0c77cddd94cbcf83641c4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/test/semantics/modfile07.f90
    M flang/test/semantics/test_errors.sh

  Log Message:
  -----------
  [flang] Fix bug when writing empty generic to .mod file

When a generic interface had no specific procedures, we were writing
it the `.mod` file as `generic::g=>`, which is not valid Fortran.

Change to writing generics as interface blocks rather than generic
statements so that this case is handled. Include an access stmt if it
was declared private.

Also fix a bug in `test_errors.sh` where the expected/actual error
messages weren't sorted by line number correctly.

Original-commit: flang-compiler/f18 at 1c32a289b53d787c0033ed45033db86afde33458
Reviewed-on: https://github.com/flang-compiler/f18/pull/614
Tree-same-pre-rewrite: false


  Commit: 723add0b8d211a9ca41c486fbe319fd3717080ce
      https://github.com/llvm/llvm-project/commit/723add0b8d211a9ca41c486fbe319fd3717080ce
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-01 (Thu, 01 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/resolve18.f90

  Log Message:
  -----------
  [flang] Fix merging of use associated generics

When we use-associate a generic interface name and then add more
procedures to the generic, we create a new symbol for the merged
generic. That symbol has to include a pointer to the derived type
or procedure with the same name, just as the original generic did.

To achieve that, change `AddSpecificProcsFrom` to also copy those
fields from the original symbol and change its name to `CopyFrom`
to reflect its new purpose. Also, change it to take `GenericDetails`
instead of `Symbol` as its argument so we can't call it on the wrong
kind of symbol.

Original-commit: flang-compiler/f18 at 1e22970e4352775df8a32e018435743786a66280
Reviewed-on: https://github.com/flang-compiler/f18/pull/614


  Commit: 38114c07d090575467eb6616f4aa1e687b8c2b72
      https://github.com/llvm/llvm-project/commit/38114c07d090575467eb6616f4aa1e687b8c2b72
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-01 (Thu, 01 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#614 from flang-compiler/tsk-generics

 Improve handling of generics with same name as type or procedure

Original-commit: flang-compiler/f18 at a1e26df148c4d480178aa8b765aad4ceaaa5eae2
Reviewed-on: https://github.com/flang-compiler/f18/pull/614


  Commit: cdd1ca064c8b2209e6f40966e4ab40455e10e8ab
      https://github.com/llvm/llvm-project/commit/cdd1ca064c8b2209e6f40966e4ab40455e10e8ab
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-01 (Thu, 01 Aug 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] Add Sections and Single Construct check (flang-compiler/f18#585)

* [OpenMP] Add Sections and Single Construct check

Parse tree for OmpEndSingle needs to be modified to save the provenance
of END SINGLE directive and check its own clauses

* Update on reviews

1. PushContext is created to push new context with source provenance

2. Tweak the logic for SECTION nesting, treak Orphaned or wrong nesting
   as the same error type

3. Make sure the check for NOWAIT clause only applies to the ones that
   are not handled by parser.
   Note that the case for DO or DO_SIMD will take effect after the
   loop association work (parse tree change) is done. But I still list
   them there for completeness.

4. Happen to find that NOWAIT is not accepted by PARALLEL SECTIONS,
   fixed it in the parser.


Original-commit: flang-compiler/f18 at 236cf1efea77b8af5c533aa55029ce49a2c2e72c
Reviewed-on: https://github.com/flang-compiler/f18/pull/585


  Commit: 971744e106bc239bc15a3db259f87229f5add408
      https://github.com/llvm/llvm-project/commit/971744e106bc239bc15a3db259f87229f5add408
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-01 (Thu, 01 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/resolve32.f90
    R flang/test/semantics/symbol04.f90
    A flang/test/semantics/symbol14.f90

  Log Message:
  -----------
  [flang] Correct scopes of components and type parameters

Original-commit: flang-compiler/f18 at 6d9f85a2410d82b0f9880d3e8cf358d7c0236f05
Reviewed-on: https://github.com/flang-compiler/f18/pull/613
Tree-same-pre-rewrite: false


  Commit: d9bbf47cdcaa6ac199f0454603afdcd0ac1cc1cd
      https://github.com/llvm/llvm-project/commit/d9bbf47cdcaa6ac199f0454603afdcd0ac1cc1cd
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-01 (Thu, 01 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Do not inherit bindings as bare names, just components and type parameters

Original-commit: flang-compiler/f18 at c4c70a6a8160b7f8c675021f3cbe88d4054c3aab
Reviewed-on: https://github.com/flang-compiler/f18/pull/613


  Commit: f812a7d7f1a2571df7ab37db5d6322cefd972dac
      https://github.com/llvm/llvm-project/commit/f812a7d7f1a2571df7ab37db5d6322cefd972dac
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#613 from flang-compiler/pmk-component-scope

Correct scopes of components

Original-commit: flang-compiler/f18 at 00bdacd6d416b6c2d22552a7a88bc599c6f5f1aa
Reviewed-on: https://github.com/flang-compiler/f18/pull/613


  Commit: 9764563f4d989f1979402770b3e68b1a3344a246
      https://github.com/llvm/llvm-project/commit/9764563f4d989f1979402770b3e68b1a3344a246
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix bug with use-associated base of component reference

When the base of a component reference (`a` in `a%b`) was use
associated, we were failing to follow it to the real symbol.

Fixes flang-compiler/f18#616.

Original-commit: flang-compiler/f18 at 95bfac6f65eccfedd03d791f01267d43497c6153
Reviewed-on: https://github.com/flang-compiler/f18/pull/617


  Commit: b72ef0b370e801018e88ee56ba394717bdb1132b
      https://github.com/llvm/llvm-project/commit/b72ef0b370e801018e88ee56ba394717bdb1132b
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#617 from flang-compiler/tsk-issue616

Fix bug with use-associated base of component reference

Original-commit: flang-compiler/f18 at ded6d831eecffdbba4a44bd6ac21f135a0905699
Reviewed-on: https://github.com/flang-compiler/f18/pull/617


  Commit: a7041f3a7870747838f64bab5de6327650198810
      https://github.com/llvm/llvm-project/commit/a7041f3a7870747838f64bab5de6327650198810
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/traversal.h

  Log Message:
  -----------
  [flang] Implement GetShape with expression visitor

Original-commit: flang-compiler/f18 at d607d028478ed931ce4f56b5e4e4ef3628a6d15e
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 43b3e4949089b794df557fc063e462a5794d3243
      https://github.com/llvm/llvm-project/commit/43b3e4949089b794df557fc063e462a5794d3243
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/variable.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/evaluate/CMakeLists.txt
    A flang/test/evaluate/folding08.f90

  Log Message:
  -----------
  [flang] Fold LBOUND and UBOUND; do not insert empty triplets into whole array expressions

Original-commit: flang-compiler/f18 at 82fba68a665802c990f35d14222f8df4ac4e1dee
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 2ca6f8220c305843a8b1216a55acb756e05c30a3
      https://github.com/llvm/llvm-project/commit/2ca6f8220c305843a8b1216a55acb756e05c30a3
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/type.cc

  Log Message:
  -----------
  [flang] Handle association entities; fix problems found in testing

Original-commit: flang-compiler/f18 at c4d9fe95872decd9c305b4fec645229517a484c4
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 16f94adf9bfcf313bf8a7a80d6d2a372768109a2
      https://github.com/llvm/llvm-project/commit/16f94adf9bfcf313bf8a7a80d6d2a372768109a2
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/traversal.h
    M flang/test/evaluate/folding08.f90

  Log Message:
  -----------
  [flang] Address some review comments, fix crash

Original-commit: flang-compiler/f18 at 7b7579eb5a896fb2b7d538f37a2df1a36b450f05
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 29d3343910407e3d65808dca2616e68c95629a47
      https://github.com/llvm/llvm-project/commit/29d3343910407e3d65808dca2616e68c95629a47
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc

  Log Message:
  -----------
  [flang] Extract LBOUND/UBOUND folding into their own functions

Original-commit: flang-compiler/f18 at bf9146ad77c3db36b62d84093108048a807e528b
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 63423667fe1cde98ce3e9bed6d717d6f78dcc4e4
      https://github.com/llvm/llvm-project/commit/63423667fe1cde98ce3e9bed6d717d6f78dcc4e4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Clean up some usage of std::optional lambda results

Original-commit: flang-compiler/f18 at 9a66f9da9767d19875a229dbef2532b57b7a79a6
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 6df445d0e7b111ed0b041eaec2c54a76dcb89607
      https://github.com/llvm/llvm-project/commit/6df445d0e7b111ed0b041eaec2c54a76dcb89607
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/shape.cc
    M flang/test/evaluate/folding08.f90

  Log Message:
  -----------
  [flang] Fix LBOUND & UBOUND(function()), add tests

Original-commit: flang-compiler/f18 at 1e093e9927f94a06a19700a6de26b5bfefa659d9
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 25ff9296e0e87cb1a007331c029f92f632ef16c9
      https://github.com/llvm/llvm-project/commit/25ff9296e0e87cb1a007331c029f92f632ef16c9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/shape.cc
    M flang/test/evaluate/folding08.f90

  Log Message:
  -----------
  [flang] Fix LBOUND/UBOUND of associated expr, add test

Original-commit: flang-compiler/f18 at 009095a9bc63ef4a4a7fa86f6d0ca3299fdcd409
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: ca57deed0054d94e21c7c35b28cdd8781a00f976
      https://github.com/llvm/llvm-project/commit/ca57deed0054d94e21c7c35b28cdd8781a00f976
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Address review comment re: ALLOCATED intrinsic argument

Original-commit: flang-compiler/f18 at b24381c7df20b3e8157172e0f070ba602f39b820
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: 61fdf0a93e51437500310b86671f47437c66c3a6
      https://github.com/llvm/llvm-project/commit/61fdf0a93e51437500310b86671f47437c66c3a6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc

  Log Message:
  -----------
  [flang] Take suggestion from review comment

Original-commit: flang-compiler/f18 at 7616b1f71b4bc203f76f9acce258d2f7190d0729
Reviewed-on: https://github.com/flang-compiler/f18/pull/611
Tree-same-pre-rewrite: false


  Commit: c940fb6641ffe2bf2a943ab0374b1cbd32794400
      https://github.com/llvm/llvm-project/commit/c940fb6641ffe2bf2a943ab0374b1cbd32794400
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/documentation/C++style.md
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/test/evaluate/folding08.f90

  Log Message:
  -----------
  [flang] Fix test failure, clean up for merging

Original-commit: flang-compiler/f18 at 77bad2736698cbbb9911ac5efd3efe6ac5b6d01a
Reviewed-on: https://github.com/flang-compiler/f18/pull/611


  Commit: b40ee46b0058b4e6d12a9b0c67bc278eda332547
      https://github.com/llvm/llvm-project/commit/b40ee46b0058b4e6d12a9b0c67bc278eda332547
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#611 from flang-compiler/pmk-bounds

Fold LBOUND and UBOUND intrinsic functions

Original-commit: flang-compiler/f18 at 46d77ab006fd5a633ea9ab18b208ac9a7baee4f2
Reviewed-on: https://github.com/flang-compiler/f18/pull/611


  Commit: f23a18c996237c20d29d3d9263c40dac6441c845
      https://github.com/llvm/llvm-project/commit/f23a18c996237c20d29d3d9263c40dac6441c845
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:
    M flang/documentation/Extensions.md

  Log Message:
  -----------
  [flang] Update Extensions.md

Add note about type parameter declarations needing to come first in a derived type definition.

Original-commit: flang-compiler/f18 at 01358ac86e2a31b54900c38241a1ae01fedce0f6
Reviewed-on: https://github.com/flang-compiler/f18/pull/619


  Commit: 43b5fc77baa4b5ec06ff23fa9ab3fa9d2c273bcd
      https://github.com/llvm/llvm-project/commit/43b5fc77baa4b5ec06ff23fa9ab3fa9d2c273bcd
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-02 (Fri, 02 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#619 from flang-compiler/klausler-patch-1

Update Extensions.md

Original-commit: flang-compiler/f18 at 6e4f320aeb86a78eebb81b7702fcb73c7423e00f
Reviewed-on: https://github.com/flang-compiler/f18/pull/619


  Commit: 97848749fa1604c6ae257b1ae488cf86efc0160b
      https://github.com/llvm/llvm-project/commit/97848749fa1604c6ae257b1ae488cf86efc0160b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Add DIGITS to intrinsic function table; fix results of some others

Original-commit: flang-compiler/f18 at 6d5caef352e1ffe28315c27c4d46adfe36b55173
Reviewed-on: https://github.com/flang-compiler/f18/pull/623
Tree-same-pre-rewrite: false


  Commit: adf204a50e025c4d031c26619d9c1cc03ac7598d
      https://github.com/llvm/llvm-project/commit/adf204a50e025c4d031c26619d9c1cc03ac7598d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/integer.h
    M flang/lib/evaluate/real.h
    M flang/test/semantics/modfile26.f90

  Log Message:
  -----------
  [flang] Fold DIGITS

Original-commit: flang-compiler/f18 at 6c9adff7a6260e3eecc81626147e3290e2346e22
Reviewed-on: https://github.com/flang-compiler/f18/pull/623
Tree-same-pre-rewrite: false


  Commit: 58f93ac714fabbbf2d9ea58ea6195d9dc823c4e9
      https://github.com/llvm/llvm-project/commit/58f93ac714fabbbf2d9ea58ea6195d9dc823c4e9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/integer.h
    M flang/lib/evaluate/real.h
    M flang/test/evaluate/folding02.f90

  Log Message:
  -----------
  [flang] Fold SIGN()

Original-commit: flang-compiler/f18 at 521a02ad518be9323f80abedbf5101d3c313c2bf
Reviewed-on: https://github.com/flang-compiler/f18/pull/623
Tree-same-pre-rewrite: false


  Commit: bef468fbfdcb1ba911ed037a670076826eeac3d3
      https://github.com/llvm/llvm-project/commit/bef468fbfdcb1ba911ed037a670076826eeac3d3
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc

  Log Message:
  -----------
  [flang] Remove obsolete code

Original-commit: flang-compiler/f18 at 81a97453a82e2b9773ee02eb43d78fac7c4ede52
Reviewed-on: https://github.com/flang-compiler/f18/pull/623


  Commit: bd723f22d08eae7f0465a23bab5ad75dcd8e09b0
      https://github.com/llvm/llvm-project/commit/bd723f22d08eae7f0465a23bab5ad75dcd8e09b0
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#623 from flang-compiler/pmk-fixes

Implement features to resolve bugs flang-compiler/f18#621 and flang-compiler/f18#622

Original-commit: flang-compiler/f18 at 2cd989479c3463b93067a2add5725ec591016d29
Reviewed-on: https://github.com/flang-compiler/f18/pull/623


  Commit: deae08c21ee4355551575e7d9a85fc3a523b4fc1
      https://github.com/llvm/llvm-project/commit/deae08c21ee4355551575e7d9a85fc3a523b4fc1
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/omp-declarative-directive.f90

  Log Message:
  -----------
  [flang] [OpenMP] parse tree changes for declarative directives (flang-compiler/f18#620)

1. Changes are to save provenance for directive names
2. check-omp-structure.* is updated to avoid assertion errors
3. Tests added now are only for the basic usages for the declarative directives,
   more complete examples will be added once we start implementing the semantics
   checks for declarative directives

Original-commit: flang-compiler/f18 at 433e274f6876d5f0d6e2cc2e7e8c47ab01c07cc6
Reviewed-on: https://github.com/flang-compiler/f18/pull/620


  Commit: 657dc605446396b7df19f39e7bf0a994bff5acb9
      https://github.com/llvm/llvm-project/commit/657dc605446396b7df19f39e7bf0a994bff5acb9
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/test/semantics/doconcurrent04.f90

  Log Message:
  -----------
  [flang] Noted the constraint being tested.

Original-commit: flang-compiler/f18 at 471aea65d86c3e67d70c02aa1b4d967cf745e501
Reviewed-on: https://github.com/flang-compiler/f18/pull/612
Tree-same-pre-rewrite: false


  Commit: 270ddf843648f98862afa336c3ae96129520cce8
      https://github.com/llvm/llvm-project/commit/270ddf843648f98862afa336c3ae96129520cce8
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/dosemantics05.f90

  Log Message:
  -----------
  [flang] Changes to enforce constraint C1130.

The constraint states that "If the locality-spec DEFAULT ( NONE ) appears in a DO CONCURRENT statement; a variable that is a local or construct entity of a scope containing the DO CONCURRENT construct; and that appears in the block of the construct; shall have its locality explicitly specified by that statement."

Here's a summary of the changes:
 - In check-do.cc: Implemented the function
   CheckDefaultNoneImpliesExplicitLocality() to do the checking.  This involved
   adding the class DoConcurrentVariableEnforce to walk the DO loop's block
   looking for variable names.  I also cleaned up the code a little in
   CheckDoExpression() and EnforceConcurrentLoopControl().
 - Added the test dosemantics05.f90

Original-commit: flang-compiler/f18 at 2369aa805e36acafc2c59063cff3c4f5ae58be1a
Reviewed-on: https://github.com/flang-compiler/f18/pull/612
Tree-same-pre-rewrite: false


  Commit: c2a0096b88342a3cc63903abd3031a8b48d5e99e
      https://github.com/llvm/llvm-project/commit/c2a0096b88342a3cc63903abd3031a8b48d5e99e
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/dosemantics05.f90

  Log Message:
  -----------
  [flang] Responses to review comments.

 - dosemantics05.f90: Added tests for ASSOCIATE, BLOCK and SELECT TYPE statements and changed the error messages.
 - check-do.cc: Changed things so that FindScope() is only called once when DoConcurrentVariableEnforce is instantiated.  I changed the error message.  I changed the type and name of CS to be an std::set and be called SymbolContainer.
 - resolve-names.cc: I changed the Pre() function for parser::Statement to add the source range of a statement to both the current scope and all of its parents.  This fixed a problem with finding the current scope based on the source position.

Original-commit: flang-compiler/f18 at 085b2c18f3b6393a25beaa760a9d88a8ebd483f5
Reviewed-on: https://github.com/flang-compiler/f18/pull/612


  Commit: fb30d812e7d04d23b69ccdef7499e904a8e6cb41
      https://github.com/llvm/llvm-project/commit/fb30d812e7d04d23b69ccdef7499e904a8e6cb41
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#612 from flang-compiler/ps-c1130

Changes to enforce constraint C1130

Original-commit: flang-compiler/f18 at 88af7ce563eb1bff0f5ed32ea3f2fb10feea66d0
Reviewed-on: https://github.com/flang-compiler/f18/pull/612


  Commit: c4e13f6be84ca391458f3ee5e83242be2145f2df
      https://github.com/llvm/llvm-project/commit/c4e13f6be84ca391458f3ee5e83242be2145f2df
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] parse tree changes for standalone directives (flang-compiler/f18#627)

* [OpenMP] parse tree changes for standalone directives

1. Put all standalone directives except FLUSH, CANCEL, and CANCELLATION POINT
   into one `OpenMPSimpleStandaloneConstruct` (for no-clause directive,
   validity checks will be deferred to Semantics). A top-level class will
   include all the standalone directive nodes. This simplies the logic a lot.

2. All the standalone directives now have their own source provenance for
   directive name itself.

3. Change check-omp-structure.* to avoid assertions

4. Add basic tests for standalone directives, more will be added during
   the clause validity checks in Semantics

* Resolve !$OMP ORDERED ambiguity by attempting block construct first - Peter

Original-commit: flang-compiler/f18 at a77aa7ed84880927dea3e2b1bb6433350f99f1ac
Reviewed-on: https://github.com/flang-compiler/f18/pull/627


  Commit: ba7ed2722a876fd592748fe6bb48e9ffec793238
      https://github.com/llvm/llvm-project/commit/ba7ed2722a876fd592748fe6bb48e9ffec793238
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/type.cc

  Log Message:
  -----------
  [flang] Fix extended derived type kind compatibility check
`HaveCompatibleKindParameters` was not considering the kind
parameters of the parent types leading to false answers.
This change fixes this by directly looking into the map of `ParamValue`
of the `DeclTypeSpec` instead of going through the symbols of the derived
type scope. This map contains all the parent and implicit type parameters.

Original-commit: flang-compiler/f18 at cd5b976fc96ec695d46f23910080cbcaa5431a5d
Reviewed-on: https://github.com/flang-compiler/f18/pull/615
Tree-same-pre-rewrite: false


  Commit: 0eafca97591d73ab75ad59e8e48c9ef8c2d8b969
      https://github.com/llvm/llvm-project/commit/0eafca97591d73ab75ad59e8e48c9ef8c2d8b969
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h

  Log Message:
  -----------
  [flang] Fix ParamValue attribute (kind/len) of implicit type parameters
While testing fix for issue 581 it appeared that 'ParamValue`
implicit len parameters had incorrect attribute kind.
This commit:
 + Set correct attribute when creating `ParamValue` for implicit
   type parameter.
 + Also set the correct attribute foe charachter lenght `ParamValue`
   though it is currently not used anywhere.
 + Change some std::int64_t to common::ConstantSubscript on the way.

Original-commit: flang-compiler/f18 at 57a344b25607903638be6df47155bfe5515fff3a
Reviewed-on: https://github.com/flang-compiler/f18/pull/615
Tree-same-pre-rewrite: false


  Commit: 0e17c8aaac3ba605c5d1518208c4dedc7a03e104
      https://github.com/llvm/llvm-project/commit/0e17c8aaac3ba605c5d1518208c4dedc7a03e104
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h
    M flang/test/semantics/resolve53.f90

  Log Message:
  -----------
  [flang] Answer comments
- make `TypaParamAttr` a `ParamValue` argument. Modify
  `GetParamValue` to also take this as an argument.
- remove `GetLenParamValue` that is now useless and
  modify constructor/`GetParamValue` calls
- get it the `TypeParamAttr` right from the begining
  when visiting `parser::DerivedTypeSpec` in resolve-names.cc.
  It was set to `Kind` by default and it was hard to ensure the
  attribute would not be checked until set properly.

Original-commit: flang-compiler/f18 at bcc300e7141db6f692579e1327557c9831b9c85a
Reviewed-on: https://github.com/flang-compiler/f18/pull/615


  Commit: 180ba3354bdecd490355a5eb8adabe64a8495ee5
      https://github.com/llvm/llvm-project/commit/180ba3354bdecd490355a5eb8adabe64a8495ee5
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#615 from flang-compiler/jpr-fix-581

Fix issue 581: extended derived type kind parameter comparison 

Original-commit: flang-compiler/f18 at 4670ae020b45848380fe0150b48a45b46aab0402
Reviewed-on: https://github.com/flang-compiler/f18/pull/615


  Commit: 58ea24d3e3c68ac2e8b568ede0a513896ce7da22
      https://github.com/llvm/llvm-project/commit/58ea24d3e3c68ac2e8b568ede0a513896ce7da22
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/tools.h

  Log Message:
  -----------
  [flang] Dodge two bogus warnings from g++ 8.1

Original-commit: flang-compiler/f18 at aa19aeb92aedb02310a081f794c7a2046e801e2d
Reviewed-on: https://github.com/flang-compiler/f18/pull/633


  Commit: d1d63f3646661216578e34f8400a51777764710d
      https://github.com/llvm/llvm-project/commit/d1d63f3646661216578e34f8400a51777764710d
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#633 from flang-compiler/pmk-warnings

Dodge two bogus warnings from g++ 8.1

Original-commit: flang-compiler/f18 at 2aa98a9d4d868ee18b43b2bcc70fd8831753c4fe
Reviewed-on: https://github.com/flang-compiler/f18/pull/633


  Commit: 80678685a3d023ce4d9915f010bf84dd6c158946
      https://github.com/llvm/llvm-project/commit/80678685a3d023ce4d9915f010bf84dd6c158946
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/lib/parser/char-block.h
    M flang/lib/parser/parse-tree.cc
    M flang/lib/semantics/symbol.cc

  Log Message:
  -----------
  [flang] Add operator<< for parser::CharBlock

Original-commit: flang-compiler/f18 at 439326dc968ffe097cbc6e156559860ec225af41
Reviewed-on: https://github.com/flang-compiler/f18/pull/630
Tree-same-pre-rewrite: false


  Commit: 73738d8bbab8665f3d1b2e0aad9d6a3ba20b38b3
      https://github.com/llvm/llvm-project/commit/73738d8bbab8665f3d1b2e0aad9d6a3ba20b38b3
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/lib/parser/grammar.h

  Log Message:
  -----------
  [flang] Change parsing of ambiguous array-spec

An array-spec like `(:,:)` (with one or more colons) is either a
deferred-shape-spec-list or an assumed-shape-spec-list and they
can only be distinguished by context that the parser doesn't have.

We were parsing these as assumed-shape-spec-list but they are easier
to deal with if we parse them as deferred-shape-spec-list because
anything that is the latter is also one of the former.

Original-commit: flang-compiler/f18 at 78c3f3b96f78e45b1b9966b331d8cda691fa39bd
Reviewed-on: https://github.com/flang-compiler/f18/pull/630
Tree-same-pre-rewrite: false


  Commit: 331c04cce60e585fc6e5cf715403afaaeaf84cbd
      https://github.com/llvm/llvm-project/commit/331c04cce60e585fc6e5cf715403afaaeaf84cbd
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/shape.cc
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h
    M flang/test/evaluate/CMakeLists.txt

  Log Message:
  -----------
  [flang] Change `ArraySpec` from a type alias to a class

This allows it to have member functions `Rank()`, `IsExplicitShape()`,
`IsAssumedShape()`, etc. Make use of those new functions and remove
`isExplicit()` and `isDeferred()` from `ShapeSpec` as they are no
longer needed.

Original-commit: flang-compiler/f18 at 7ef7ad63594db9c41a0889d2ad419dbdf841cb6f
Reviewed-on: https://github.com/flang-compiler/f18/pull/630
Tree-same-pre-rewrite: false


  Commit: 4887ae80cd9f4e2193ce2550873dbbf08bac3223
      https://github.com/llvm/llvm-project/commit/4887ae80cd9f4e2193ce2550873dbbf08bac3223
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/lib/parser/grammar.h
    M flang/lib/semantics/resolve-names.cc
    M flang/test/evaluate/CMakeLists.txt
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/resolve42.f90
    A flang/test/semantics/resolve58.f90

  Log Message:
  -----------
  [flang] Perform more checks on array-specs

There are many constraints on what kind of array-specs can appear
in what contexts. Add `CheckArraySpec()` to perform most of them.
When the check fails, don't set the shape of the symbol being
declared and instead set the Error flag so we can avoid cascading
errors.

Fixes flang-compiler/f18#609.

Original-commit: flang-compiler/f18 at f159d97f1f1e02b4d66e410b0f5a587f3c8fc51a
Reviewed-on: https://github.com/flang-compiler/f18/pull/630
Tree-same-pre-rewrite: false


  Commit: a5f6fa6b2e8fd7884d7c4b05705fef76ef72961d
      https://github.com/llvm/llvm-project/commit/a5f6fa6b2e8fd7884d7c4b05705fef76ef72961d
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/test/semantics/test_modfile.sh

  Log Message:
  -----------
  [flang] Improve failure message from test_modfile.sh

When test_modfile.sh fails a test, show the path to the source file
so it is easier to find the problems when grepping the log.

Original-commit: flang-compiler/f18 at 4a0d0d19a0010b9342425a9b7f1db3ce4dada661
Reviewed-on: https://github.com/flang-compiler/f18/pull/630
Tree-same-pre-rewrite: false


  Commit: 050a921aaf0e82f9fbfc98edb2fe992b7b93556c
      https://github.com/llvm/llvm-project/commit/050a921aaf0e82f9fbfc98edb2fe992b7b93556c
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/module/ieee_exceptions.f90
    M flang/module/iso_fortran_env.f90
    M flang/test/evaluate/folding05.f90
    M flang/test/evaluate/folding06.f90
    M flang/test/evaluate/folding08.f90
    M flang/test/semantics/allocate01.f90
    M flang/test/semantics/allocate12.f90
    M flang/test/semantics/modfile14.f90
    M flang/test/semantics/modfile18.f90
    M flang/test/semantics/modfile24.f90
    M flang/test/semantics/modfile25.f90
    M flang/test/semantics/modfile26.f90
    M flang/test/semantics/modfile27.f90
    M flang/test/semantics/modfile28.f90
    M flang/test/semantics/resolve37.f90
    M flang/test/semantics/stop01.f90

  Log Message:
  -----------
  [flang] Fix errors in tests and predefined modules

There were many places in tests and predefined modules that had
incorrect code that we weren't detecting until now.

Most of the problems were deferred-shape arrays that should have
been implied-shape. For example:
`real, parameter :: a(:) = [1.0, 2.0]`
should have `(*)` rather than `(:)`.

There were also a few places with deferred-shape arrays that were
not allocatable/pointer or explicit-shape ones that were.

Original-commit: flang-compiler/f18 at 0a959ce1d81dd2e54b72886db699b12c7ad59d88
Reviewed-on: https://github.com/flang-compiler/f18/pull/630


  Commit: 00b5ab683f010042966e965636eac15cfe3f3164
      https://github.com/llvm/llvm-project/commit/00b5ab683f010042966e965636eac15cfe3f3164
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#630 from flang-compiler/tsk-array-spec

Perform more checks on array-specs

Original-commit: flang-compiler/f18 at 14a38209a9b08a65e919848207eb45421a168ef2
Reviewed-on: https://github.com/flang-compiler/f18/pull/630


  Commit: b8b0c82a18a9c0eab883438f1b1ac9a40898499f
      https://github.com/llvm/llvm-project/commit/b8b0c82a18a9c0eab883438f1b1ac9a40898499f
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
    M flang/lib/semantics/CMakeLists.txt
    A flang/lib/semantics/check-block.cc
    A flang/lib/semantics/check-block.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/semantics.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/blockconstruct01.f90
    A flang/test/semantics/blockconstruct02.f90
    A flang/test/semantics/blockconstruct03.f90

  Log Message:
  -----------
  [flang] Adding semantic checks for Block Construct

Original-commit: flang-compiler/f18 at e626f431d46144b0003ccb3d0c9fe80c29cfa499
Reviewed-on: https://github.com/flang-compiler/f18/pull/584
Tree-same-pre-rewrite: false


  Commit: 6975bc3dd4cbb9e2dcbc26f55925ab3b7bf74a1e
      https://github.com/llvm/llvm-project/commit/6975bc3dd4cbb9e2dcbc26f55925ab3b7bf74a1e
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2019-07-22 (Mon, 22 Jul 2019)

  Changed paths:
    M flang/lib/semantics/CMakeLists.txt
    R flang/lib/semantics/check-block.cc
    R flang/lib/semantics/check-block.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/semantics.cc
    M flang/test/semantics/blockconstruct01.f90
    M flang/test/semantics/blockconstruct02.f90
    M flang/test/semantics/blockconstruct03.f90
    A flang/test/semantics/label14.f90

  Log Message:
  -----------
  [flang] Changes requested by the comunity

Original-commit: flang-compiler/f18 at 309dd0fdfe4195d4624f9b1e55d3f5fe57e1ac9e
Reviewed-on: https://github.com/flang-compiler/f18/pull/584
Tree-same-pre-rewrite: false


  Commit: 23b033759847f2b7b185b6136e40873b281280d1
      https://github.com/llvm/llvm-project/commit/23b033759847f2b7b185b6136e40873b281280d1
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2019-07-23 (Tue, 23 Jul 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/blockconstruct02.f90

  Log Message:
  -----------
  [flang] Changes in SaveStmt  message for Common Block name specifier

Original-commit: flang-compiler/f18 at 2e63705f5c0e5bab5262495b0164ab90dc19ad47
Reviewed-on: https://github.com/flang-compiler/f18/pull/584
Tree-same-pre-rewrite: false


  Commit: 7aaf74c1bcc34f912409ce9694ca645b80ccfb9b
      https://github.com/llvm/llvm-project/commit/7aaf74c1bcc34f912409ce9694ca645b80ccfb9b
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/blockconstruct02.f90

  Log Message:
  -----------
  [flang] Removing two sentence error

Original-commit: flang-compiler/f18 at fd5aafc5af14e41cfbae9454394d4eb6b39e2e91
Reviewed-on: https://github.com/flang-compiler/f18/pull/584
Tree-same-pre-rewrite: false


  Commit: f4a6fe026d6d4d3cbd19c84003a8724742d33f16
      https://github.com/llvm/llvm-project/commit/f4a6fe026d6d4d3cbd19c84003a8724742d33f16
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:
    M flang/lib/parser/parse-tree.h
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Removing TODO comments as they are implemented by this patch

Original-commit: flang-compiler/f18 at 885eb92b4f8ce07fc39af3655f6c04b74a10a9fa
Reviewed-on: https://github.com/flang-compiler/f18/pull/584


  Commit: 56eb30bb8674ce606837cc7c62c22161433d5032
      https://github.com/llvm/llvm-project/commit/56eb30bb8674ce606837cc7c62c22161433d5032
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-07 (Wed, 07 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#584 from CarolineConcatto/block_construct_patch

Adding semantic checks for Block Construct

Original-commit: flang-compiler/f18 at 47781549a3b042bd609f6cb5b1d8cdbd7983037d
Reviewed-on: https://github.com/flang-compiler/f18/pull/584


  Commit: 1ac63962480fb32911d22b395b7c0a3a8e0797d9
      https://github.com/llvm/llvm-project/commit/1ac63962480fb32911d22b395b7c0a3a8e0797d9
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/resolve05.f90
    M flang/test/semantics/symbol09.f90

  Log Message:
  -----------
  [flang] Fix issue 594
Add ProcBindingDetails to handling GetType.
Also add HostAssocDetails to be consitent with UseDetails handling
in this GetType.

Original-commit: flang-compiler/f18 at b498aab15fa3561818474965ea957a49ba1ae544
Reviewed-on: https://github.com/flang-compiler/f18/pull/607
Tree-same-pre-rewrite: false


  Commit: 06a90e3a0c5474f968495ab8041ea724769c59ee
      https://github.com/llvm/llvm-project/commit/06a90e3a0c5474f968495ab8041ea724769c59ee
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Add a derived type component visitor framework
After fixing 594, it appears there were issues in
FindUltimateComponent that was considering type bound
procedure as components.
This commit fixes and beef-up the component visitation by making a visitor
class for it. The main advantage of making it an class vs functions is that
it is possible to get the component chain to the result component for better
feedback for the user.
The framework allow a single place to define/handle what ultimate, direct and
potential components are.

Original-commit: flang-compiler/f18 at d84821a1d63f35904a004007f3645d689d8c3a4f
Reviewed-on: https://github.com/flang-compiler/f18/pull/607
Tree-same-pre-rewrite: false


  Commit: b08064ca1f62462f19be274b75031912c472bad2
      https://github.com/llvm/llvm-project/commit/b08064ca1f62462f19be274b75031912c472bad2
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-allocate.cc
    M flang/test/semantics/allocate08.f90

  Log Message:
  -----------
  [flang] Do not die on typeless source expression in allocate.
While fixing 594, it appears the CHECK in allocate for non null
expression type pointer was too harsh as it could be a user error.
e.g: a boz used as source.

Original-commit: flang-compiler/f18 at cbacdeaa0eb8077810db85d5b4469f797d524900
Reviewed-on: https://github.com/flang-compiler/f18/pull/607
Tree-same-pre-rewrite: false


  Commit: 0a9725607bd07be07d7d075d5962a1b467679b6e
      https://github.com/llvm/llvm-project/commit/0a9725607bd07be07d7d075d5962a1b467679b6e
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Improve error messages about component types in allocate checks
Use component visitor framework to attach more information reagrding
where is the ultimate/potential component that is forbidden.
Also remove unused functions.

Original-commit: flang-compiler/f18 at 4619c5860a43b86f149698c495769bdff2d63557
Reviewed-on: https://github.com/flang-compiler/f18/pull/607
Tree-same-pre-rewrite: false


  Commit: 153892dd664ca5566f5bf0ac2bab30581440d189
      https://github.com/llvm/llvm-project/commit/153892dd664ca5566f5bf0ac2bab30581440d189
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Checkpoint: derived type component iterators

Original-commit: flang-compiler/f18 at 72d209bb52d28aedc8335c8175a5ffb5bce161fc
Reviewed-on: https://github.com/flang-compiler/f18/pull/607
Tree-same-pre-rewrite: false


  Commit: 965d114d8ccde72a40c63311caa6f8cbfb3ca511
      https://github.com/llvm/llvm-project/commit/965d114d8ccde72a40c63311caa6f8cbfb3ca511
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/lib/semantics/tools.cc

  Log Message:
  -----------
  [flang] use newly added DEREF in component iterator

Original-commit: flang-compiler/f18 at 2185f2000967b7d4b51bf2eba663ba3dcea43a4b
Reviewed-on: https://github.com/flang-compiler/f18/pull/607
Tree-same-pre-rewrite: false


  Commit: edab0a0ebbc5ce113a8b01e81e311bdda5575fd5
      https://github.com/llvm/llvm-project/commit/edab0a0ebbc5ce113a8b01e81e311bdda5575fd5
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-07-31 (Wed, 31 Jul 2019)

  Changed paths:
    M flang/test/semantics/resolve05.f90

  Log Message:
  -----------
  [flang] copyright update

Original-commit: flang-compiler/f18 at e724438925f1cd5c28fe1fcf7ba93b1b9773f9e1
Reviewed-on: https://github.com/flang-compiler/f18/pull/607


  Commit: ea489de811e3bfe63cbd233560feba63e0fe74ae
      https://github.com/llvm/llvm-project/commit/ea489de811e3bfe63cbd233560feba63e0fe74ae
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#607 from flang-compiler/jpr-fix-594

Fix issue 594 and add a derived type component visitor framework

Original-commit: flang-compiler/f18 at 009db27bfaca2a84b0795c0d977c68cd8b57ce88
Reviewed-on: https://github.com/flang-compiler/f18/pull/607


  Commit: 24bb2c29cd96c3c5355d75edda45684edc574447
      https://github.com/llvm/llvm-project/commit/24bb2c29cd96c3c5355d75edda45684edc574447
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/resolve59.f90

  Log Message:
  -----------
  [flang] Prevent result symbol to be converted into function when they are called.
+ Fix issue 589.
+ Catch empty subscript list in array reference
In name resolution, when skimming through the execution statement of a
function, calls to the result symbol should not trigger the conversion
of this symbol to a function symbol. The result is a data object and
cannot be called unless it was explictly declared to be a procedure
pointer.
Notably, recursive function calls cannot be made if RESULT was not used.

The symbol is prevented from being transformed into a function
symbol by transforming it into an object before skimming through the
executable statement. This is done after processing all the
specifications so that if the result actually is a procedure pointer,
the call to `ConvertToObjectEntity` introduced by this commit will
not convert it to an object by mistake.

This commit also introduce a check when fixing misparsed function
reference into array reference to verify the array reference has
array subscripts. Currently this went uncaught. It is not possible
to complain later in expressions because the subscript list of
expression might be empty for unrelated error recovery reasons
(e.g. if an entity of the wrong type appeared as susbcript).

Add related tests.

Original-commit: flang-compiler/f18 at 2fd8b65f58aadc567dd23d64e4654304a42f6176
Reviewed-on: https://github.com/flang-compiler/f18/pull/631
Tree-same-pre-rewrite: false


  Commit: 3b7b2f56d5d433b865c0a7668b53bb6c10f80c12
      https://github.com/llvm/llvm-project/commit/3b7b2f56d5d433b865c0a7668b53bb6c10f80c12
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Answer PR 631 comments:
 - Create a function `IsFunctionResult(const Symbol &)` in
   lib/semantics/tools.h.
 - style edit in weird var definition style.

Original-commit: flang-compiler/f18 at 15e3f87b40345765ac500e5f8c1412c31d4e2658
Reviewed-on: https://github.com/flang-compiler/f18/pull/631
Tree-same-pre-rewrite: false


  Commit: 7e197e691f3867d6d38406a3f14c2cc97bd4fb56
      https://github.com/llvm/llvm-project/commit/7e197e691f3867d6d38406a3f14c2cc97bd4fb56
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Fix reabsing conflict issue
Remove duplicate `IsFunctionResultWithSameNameAsFunction` declarartion.

Original-commit: flang-compiler/f18 at d88597ca7213ed63660a6633a0c88021b9d35949
Reviewed-on: https://github.com/flang-compiler/f18/pull/631


  Commit: ee2dd1c5037612e5fe051e7c89e5f770a78fa504
      https://github.com/llvm/llvm-project/commit/ee2dd1c5037612e5fe051e7c89e5f770a78fa504
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#631 from flang-compiler/jpr-fix-589

Prevent result symbol to be converted into function when they are called

Original-commit: flang-compiler/f18 at 464310a1e3b8cc222b0069c213de01c4c4561eaf
Reviewed-on: https://github.com/flang-compiler/f18/pull/631


  Commit: 57af252f56367cc18e1159cd7e0e9eaa3d664a9f
      https://github.com/llvm/llvm-project/commit/57af252f56367cc18e1159cd7e0e9eaa3d664a9f
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:
    M flang/test/evaluate/CMakeLists.txt

  Log Message:
  -----------
  [flang] Fix problems building with shared libraries on Linux

Building with gcc 8 or 9 with shared libraries had linking
problems in test/evaluate. Fix those by adding FortranSemantics
to the library dependencies.

Original-commit: flang-compiler/f18 at 009b9ab171b4a9d9a3b7ca79f1d0c0b5d0ee7a8c
Reviewed-on: https://github.com/flang-compiler/f18/pull/639


  Commit: ca973fc355aa2de1f4b49fb92b79a2062212a758
      https://github.com/llvm/llvm-project/commit/ca973fc355aa2de1f4b49fb92b79a2062212a758
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#639 from flang-compiler/tsk-shared

Fix problems building with shared libraries on Linux

Original-commit: flang-compiler/f18 at 0e3ed603c8d6ca611e5ae71cf52da72d351e81fc
Reviewed-on: https://github.com/flang-compiler/f18/pull/639


  Commit: dd8601162bab144870ef101aa058c0f35bd0ee4e
      https://github.com/llvm/llvm-project/commit/dd8601162bab144870ef101aa058c0f35bd0ee4e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/test/semantics/modfile07.f90

  Log Message:
  -----------
  [flang] Fix bug with generic and specific having same name

If a generic interface had a specific procedure with the same name that
is specified by an interface body, it was not handled correctly.

We were replacing the generic symbol with the symbol for the specific
procedure. Instead, leave the generic symbol in the scope and just
insert the new symbol for the specific into the generic.

Also, don't do distinguishability checks when one of the specific
procedures already has an error.

Fixes flang-compiler/f18#587.

Original-commit: flang-compiler/f18 at 2e905656758d7214635fb96a612760405b368b09
Reviewed-on: https://github.com/flang-compiler/f18/pull/640


  Commit: 39807b8389162df89d87741d77d9c7ae53dae3a3
      https://github.com/llvm/llvm-project/commit/39807b8389162df89d87741d77d9c7ae53dae3a3
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#640 from flang-compiler/tsk-issue587

Fix bug with generic and specific having same name

Original-commit: flang-compiler/f18 at e8c8c0357bc428838b937912747e84b596ca4f9c
Reviewed-on: https://github.com/flang-compiler/f18/pull/640


  Commit: c7fc08a8ead9ff0c4f11b626f330209c2f66a580
      https://github.com/llvm/llvm-project/commit/c7fc08a8ead9ff0c4f11b626f330209c2f66a580
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/omp-atomic.f90

  Log Message:
  -----------
  [flang] [OpenMP] parse tree changes for ATOMIC constructs (flang-compiler/f18#636)

1. make the parse tree nodes more conform with OpenMP spec

2. isolate the memory related clauses to make the parse tree nodes
   extendable for OpenMP 5.0

3. source provenance is saved for each atomic-clause (read, write, update,
   and capture); for atomic-clause that is not present, source location
   is saved for "ATOMIC" directive name itself

More tests will be added during Semantics.

Original-commit: flang-compiler/f18 at 8e2db2f868f9dce705aa0a504e1c9ac1af8fe08f
Reviewed-on: https://github.com/flang-compiler/f18/pull/636


  Commit: 5045af7710562b519998dadd90460595d2b090e8
      https://github.com/llvm/llvm-project/commit/5045af7710562b519998dadd90460595d2b090e8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Deferred processing of pointer initializers (incomplete)

Original-commit: flang-compiler/f18 at 2913b01c51ec3f1b3739c109aca9c41970b28d6c
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: 5bfc7852189ab4683ab96eeafaa8d9b0ba8d8fd1
      https://github.com/llvm/llvm-project/commit/5bfc7852189ab4683ab96eeafaa8d9b0ba8d8fd1
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h

  Log Message:
  -----------
  [flang] Checkpoint work

Original-commit: flang-compiler/f18 at b8f614c3c41815410acfc93989885d6eaea46bd8
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: de7c7c07ce4a31d878887b3dde5ea9a19f16ca8c
      https://github.com/llvm/llvm-project/commit/de7c7c07ce4a31d878887b3dde5ea9a19f16ca8c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/procinterface01.f90

  Log Message:
  -----------
  [flang] Save proc pointer inits in symbol table; add IsSaved() predicate to tools

Original-commit: flang-compiler/f18 at 23c6be91681b04cad4981281301e450a16ae5b62
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: c9d286d6c4fba7836e3021cd767c2b019febccaa
      https://github.com/llvm/llvm-project/commit/c9d286d6c4fba7836e3021cd767c2b019febccaa
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h

  Log Message:
  -----------
  [flang] Restore symbol to ProcBindingDetails

Original-commit: flang-compiler/f18 at 5dc1c91156d58ebd4f2e1ab720b01236976eb0a9
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: fca50c0822bd1de4b5e463e06d58098f6f8e5091
      https://github.com/llvm/llvm-project/commit/fca50c0822bd1de4b5e463e06d58098f6f8e5091
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Proper PDT handling

Original-commit: flang-compiler/f18 at 32256daa15d663cd6b24bccd15727cd1e4ddefe6
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: 699b499469642ab48a3d527aaebb3ad204283248
      https://github.com/llvm/llvm-project/commit/699b499469642ab48a3d527aaebb3ad204283248
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] prep for review

Original-commit: flang-compiler/f18 at 41f11f4fa0ddd91ffff003451e29bf6fff8c83b1
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: da6445198a07fe820c2709ff46f1f32a4d0a89b4
      https://github.com/llvm/llvm-project/commit/da6445198a07fe820c2709ff46f1f32a4d0a89b4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] rebase

Original-commit: flang-compiler/f18 at a2086f040602473917846b027b923fcd141bd193
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: e071162e046fdbd03e76936cce249f8749f306ce
      https://github.com/llvm/llvm-project/commit/e071162e046fdbd03e76936cce249f8749f306ce
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/allocate08.f90
    M flang/test/semantics/dosemantics03.f90
    M flang/test/semantics/resolve20.f90
    M flang/test/semantics/resolve32.f90

  Log Message:
  -----------
  [flang] More fixes; tests now all pass (with updates to some)

Original-commit: flang-compiler/f18 at 236ff3a3db90bec3c7f859f18ce31bd38491347f
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: f13f372833fda8ca762a0f32ffc6240b95359b9c
      https://github.com/llvm/llvm-project/commit/f13f372833fda8ca762a0f32ffc6240b95359b9c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/symbol15.f90

  Log Message:
  -----------
  [flang] Add test for forward references in pointer initializers

Original-commit: flang-compiler/f18 at 9e01c102a1e14721bc10149f9902d41edfc96b77
Reviewed-on: https://github.com/flang-compiler/f18/pull/638
Tree-same-pre-rewrite: false


  Commit: bc4d468d29622afe5f67a6c9470531efe9c3d20a
      https://github.com/llvm/llvm-project/commit/bc4d468d29622afe5f67a6c9470531efe9c3d20a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/resolve20.f90
    M flang/test/semantics/resolve32.f90

  Log Message:
  -----------
  [flang] address comments

Original-commit: flang-compiler/f18 at 2bf995562cd86f61be7013e50e38c1aa5edc39eb
Reviewed-on: https://github.com/flang-compiler/f18/pull/638


  Commit: 3020151f716cdd062d90fe4f257e74a46025d2aa
      https://github.com/llvm/llvm-project/commit/3020151f716cdd062d90fe4f257e74a46025d2aa
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#638 from flang-compiler/pmk-forward

Handle forward references to procedures and interfaces

Original-commit: flang-compiler/f18 at c2ce89030b0f2cc4da77d2da7b27bd5b75b9a572
Reviewed-on: https://github.com/flang-compiler/f18/pull/638


  Commit: b41d10beae715cebb1f7cb93a5d3ad91e1e8d6a6
      https://github.com/llvm/llvm-project/commit/b41d10beae715cebb1f7cb93a5d3ad91e1e8d6a6
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] parse tree changes for `OpenMPBlockConstruct` (flang-compiler/f18#632)

* [OpenMP] parse tree changes for `OpenMPBlockConstruct`

1. merge `Workshare` and `Single` into `OpenMPBlockConstruct` because
   they both accept structured-block and syntax is similar to other block
   directives.

2. `OpenMPBlockConstruct` changes to structure like `{Begin, Block, End}`,
   where `Begin` and `End` are tuple of `{Directive, ClauseList}`.

3. Updated the check-omp-structure.* for necessary parts. Added all the END
   directive enumeration types that may have clauses.

More tests will be added during Semantics.

* [OpenMP] Update on Tim's suggestion

1. Fix unspecified enumeration for `OmpDirective` in the `OmpContext`.
   This is through getting rid of `PushContext(source)` function to
   make sure whenever it is about to push a NEW context, directive
   source location and enumeration are available. To do that, I moved
   around all the switches for directive into high level `Construct`'s
   `Enter` node. Besides fixing the issue, the side benefit is that
   whenever we call `GetContext().directive`, we are sure that the
   `directive` here was set already.

2. When `Enter` the `OmpEndBlockDirective` node, partial context
   information, such as directive source location or legal clause lists,
   needs to be reset. The new directive source location should be
   `OmpEndBlockDirective`'s `source`. The enumeration `directive`
   should not be reset for the END directives that do not accept
   clauses because nothing needs to be checked (for example any clause
   that is on `END PARALLEL` is illegal).

Original-commit: flang-compiler/f18 at e5bd6b7ba0fbe9006f3e431260428b194f2d2616
Reviewed-on: https://github.com/flang-compiler/f18/pull/632


  Commit: 5bade83a0b90f21b69019700c1992c932c8247a9
      https://github.com/llvm/llvm-project/commit/5bade83a0b90f21b69019700c1992c932c8247a9
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/doconcurrent01.f90
    A flang/test/semantics/dosemantics06.f90
    A flang/test/semantics/dosemantics07.f90
    A flang/test/semantics/dosemantics08.f90

  Log Message:
  -----------
  [flang] Tests for DO loop semantics
These are tests for checks that are already implemented, but for which we
did not have tests.

Original-commit: flang-compiler/f18 at 68f5acf7b1202162150162e1974fe43341a33eed
Reviewed-on: https://github.com/flang-compiler/f18/pull/637
Tree-same-pre-rewrite: false


  Commit: 8768a11d4ca7f50d55a6d240c165125789b0d39f
      https://github.com/llvm/llvm-project/commit/8768a11d4ca7f50d55a6d240c165125789b0d39f
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-09 (Fri, 09 Aug 2019)

  Changed paths:
    M flang/module/ieee_exceptions.f90
    M flang/test/semantics/doconcurrent01.f90

  Log Message:
  -----------
  [flang]  - ieee_exceptions.f90: I added all of the routines listed in table 17.3 of the standard that were not currently specified.  I also re-ordered the routines to be in the same order as the standard.
 - doconcurrent01.f90: I removed the custom versions of ieee_exceptions and
 iso_fortran_env.  I also fixed a typo in a comment.  Also, the use of the real
 standare interface caused one of the error messages to go away, so I fixed
 that.

Original-commit: flang-compiler/f18 at a8b310a9685d7e6502073ecb011c16aaa1e1d14b
Reviewed-on: https://github.com/flang-compiler/f18/pull/637


  Commit: fb27f631f12800371815fe082170bf07e400cea3
      https://github.com/llvm/llvm-project/commit/fb27f631f12800371815fe082170bf07e400cea3
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-08-10 (Sat, 10 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#637 from flang-compiler/ps-do-tests

Tests for DO loop semantics

Original-commit: flang-compiler/f18 at 960d76131e46ccb2ff704ab2bdbc070dff8cd279
Reviewed-on: https://github.com/flang-compiler/f18/pull/637


  Commit: 165ab68837e91b46eac01c347b2971e3f6af96ce
      https://github.com/llvm/llvm-project/commit/165ab68837e91b46eac01c347b2971e3f6af96ce
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/semantics.h

  Log Message:
  -----------
  [flang] Fix bug flang-compiler/f18#644, always enable backslash escapes when reading module files

Original-commit: flang-compiler/f18 at f1c897cedad109e3cccea9fa914d12c529c15742
Reviewed-on: https://github.com/flang-compiler/f18/pull/645


  Commit: 09670c9a610a9af845bb7eb136ff0a888ebe1c60
      https://github.com/llvm/llvm-project/commit/09670c9a610a9af845bb7eb136ff0a888ebe1c60
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#645 from flang-compiler/pmk-fix-644

Fix bug flang-compiler/f18#644, always enable backslash escapes when reading module files

Original-commit: flang-compiler/f18 at 4ade6c36755fbf343af1db6e657fb5de6eb49ec4
Reviewed-on: https://github.com/flang-compiler/f18/pull/645


  Commit: f3b5d156cb4c05a7253bcc0bde3874002b3fb7ca
      https://github.com/llvm/llvm-project/commit/f3b5d156cb4c05a7253bcc0bde3874002b3fb7ca
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Fix bug flang-compiler/f18#642

Original-commit: flang-compiler/f18 at d898b29285b65fea4a43cc4901623decec481c1a
Reviewed-on: https://github.com/flang-compiler/f18/pull/648


  Commit: cd9a4613e6ddd0db5a859d26043dfb274721985a
      https://github.com/llvm/llvm-project/commit/cd9a4613e6ddd0db5a859d26043dfb274721985a
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#648 from flang-compiler/pmk-fix-642

Fix bug flang-compiler/f18#642

Original-commit: flang-compiler/f18 at 319c083673ca135d375e4977e6cedd4133c4bdf5
Reviewed-on: https://github.com/flang-compiler/f18/pull/648


  Commit: cbb0be6a377c290037f05c9555bc097818ebf601
      https://github.com/llvm/llvm-project/commit/cbb0be6a377c290037f05c9555bc097818ebf601
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Fix bug flang-compiler/f18#643

Original-commit: flang-compiler/f18 at 29bb4312e1f2861fa04f847c8e552ca894989593
Reviewed-on: https://github.com/flang-compiler/f18/pull/646


  Commit: e008024e9f7d4e63aa60c9c7ba3fd839ab0d5b33
      https://github.com/llvm/llvm-project/commit/e008024e9f7d4e63aa60c9c7ba3fd839ab0d5b33
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#646 from flang-compiler/pmk-fix-643

Fix bug flang-compiler/f18#643

Original-commit: flang-compiler/f18 at f8368e30e098f5cc2f87288e938e2ce08542e005
Reviewed-on: https://github.com/flang-compiler/f18/pull/646


  Commit: 65de6787e22918b9de900fa2cedc4f1a612ceb06
      https://github.com/llvm/llvm-project/commit/65de6787e22918b9de900fa2cedc4f1a612ceb06
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] parse tree changes for Critical Construct (flang-compiler/f18#641)

Simple changes: add source provenance for directive itself and renaming

Original-commit: flang-compiler/f18 at 9246d266b0b5854db4f1f8beaf47cac80fcf7f0d
Reviewed-on: https://github.com/flang-compiler/f18/pull/641


  Commit: 2bc9a1ebed0e1deadbad192822bbe3a6ce212f21
      https://github.com/llvm/llvm-project/commit/2bc9a1ebed0e1deadbad192822bbe3a6ce212f21
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/modfile04.f90
    M flang/test/semantics/modfile06.f90
    M flang/test/semantics/modfile07.f90
    A flang/test/semantics/modfile30.f90

  Log Message:
  -----------
  [flang] Write function result to .mod file after dummy args

The function result can depend on the declaration of the dummy
arguments so it should be written to the .mod file after them.

For example:
```
  function f(x)
    integer :: x(:)
    integer :: f(size(x))
  end
```

Original-commit: flang-compiler/f18 at f6c8c58c24368ae9f209b2c03637531ed869adeb
Reviewed-on: https://github.com/flang-compiler/f18/pull/650
Tree-same-pre-rewrite: false


  Commit: 7fcaf88bf807abc88688f8e3b869f5e188beeafb
      https://github.com/llvm/llvm-project/commit/7fcaf88bf807abc88688f8e3b869f5e188beeafb
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/modfile19.f90
    M flang/test/semantics/modfile21.f90
    M flang/test/semantics/modfile30.f90

  Log Message:
  -----------
  [flang] Fix source location of some symbol names

Symbols can be declared across multiple statements. The CharBlock
that is used for the symbol name is from the first of these.

Sometimes that is not the best choice. If a name appears in a
type-declaration-stmt or a derived-type-stmt, that occurrence is a
better choice. Errors referencing that symbol should normally point
at that name (not its appearance in an earlier PUBLIC statement,
for example).

Also, the order of symbols in .mod files is based on the order of
their names in the cooked source. Here is an example where it is
necessary to sort `a` based on where its type-declaration-stmt
occurs rather than the first occurrence of `a`:
```
  public :: a
  type t
  end type
  type(t), parameter :: a = t()
```

The fix is to add `Symbol::ReplaceName()` so that we can update the
CharBlock for a symbol name when a better one is found, without
changing the actual characters that make up the name.

Original-commit: flang-compiler/f18 at 5544f163486df1da80d0e343282afc18ce057672
Reviewed-on: https://github.com/flang-compiler/f18/pull/650
Tree-same-pre-rewrite: false


  Commit: 47ca9b8da2cbe4b1ffec0b9cc9c21b948a7913c3
      https://github.com/llvm/llvm-project/commit/47ca9b8da2cbe4b1ffec0b9cc9c21b948a7913c3
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/test/semantics/modfile20.f90
    M flang/test/semantics/modfile30.f90

  Log Message:
  -----------
  [flang] Small .mod file fixes

- Only emit initializations for parameters and derived type components.
- Use `=>` for pointer initializations.
- Don't emit intrinsic symbols.

Original-commit: flang-compiler/f18 at b91748c053a11349f85645c65b870fab222ea135
Reviewed-on: https://github.com/flang-compiler/f18/pull/650
Tree-same-pre-rewrite: false


  Commit: d151b5e88b90b03feeb01913928fee9bb5239792
      https://github.com/llvm/llvm-project/commit/d151b5e88b90b03feeb01913928fee9bb5239792
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/formatting.cc
    M flang/test/semantics/modfile22.f90
    M flang/test/semantics/modfile28.f90

  Log Message:
  -----------
  [flang] Fix bug writing character array constructor to .mod file

Character literals in an array constructor were always written
with no kind prefix, so if kind was not 1 they were incorrect.
`c4a` in `modfile28.f90` was an example of this.

Change it to always include the kind as is done with non-array
character literals.

Original-commit: flang-compiler/f18 at 4f4caa700639b87503729f69f13d5e0ec0e20583
Reviewed-on: https://github.com/flang-compiler/f18/pull/650


  Commit: 3d09841326b1c244394fda63f5dbbab02cb0e752
      https://github.com/llvm/llvm-project/commit/3d09841326b1c244394fda63f5dbbab02cb0e752
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#650 from flang-compiler/tsk-modfiles

Fix bugs writing .mod files

Original-commit: flang-compiler/f18 at a7f90a3c77a7e4fe780baedb295967d0bd175f20
Reviewed-on: https://github.com/flang-compiler/f18/pull/650


  Commit: 465393f40f364f2b3150ea83bde61cd15681672a
      https://github.com/llvm/llvm-project/commit/465393f40f364f2b3150ea83bde61cd15681672a
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Add an entry to the intrinsics table for dimag.
Also, document extensions dconjg and dimag.

Original-commit: flang-compiler/f18 at 21535280ee2c3ed7e0e33b70be3fcd844ab5f541
Reviewed-on: https://github.com/flang-compiler/f18/pull/654


  Commit: 9dc7ef171cb85bd3f08db85a1c6187a824e35dca
      https://github.com/llvm/llvm-project/commit/9dc7ef171cb85bd3f08db85a1c6187a824e35dca
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#654 from flang-compiler/sjs-dimag

Add an entry to the intrinsics table for dimag.

Original-commit: flang-compiler/f18 at daa2d7537e56341ef60284c60d5a6e3922ddb686
Reviewed-on: https://github.com/flang-compiler/f18/pull/654


  Commit: af794f959be600e5373983d87982061ce8b237ae
      https://github.com/llvm/llvm-project/commit/af794f959be600e5373983d87982061ce8b237ae
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-12 (Mon, 12 Aug 2019)

  Changed paths:
    M flang/tools/f18/CMakeLists.txt
    A flang/tools/f18/flang.sh

  Log Message:
  -----------
  [flang] Create a throwaway wrapper for the throwaway driver.
Add a script called flang to the bin directory that calls
f18 with the -I option pointing to the module files for the
predefined modules. The wrapper also sets the module suffix
to .fmf to avoid naming conflicts with module files generated
by other compilers. Now, the build creates and installs both
.mod and .fmf files for the predefined module files to
accommodate the flang script.

Original-commit: flang-compiler/f18 at b6c30284e7876f6ccd4bb024bd5f349128e99b7c
Reviewed-on: https://github.com/flang-compiler/f18/pull/653
Tree-same-pre-rewrite: false


  Commit: 51fea2427fadcfeb00856cfe528d16ec9b823569
      https://github.com/llvm/llvm-project/commit/51fea2427fadcfeb00856cfe528d16ec9b823569
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/tools/f18/CMakeLists.txt
    M flang/tools/f18/f18.cc
    M flang/tools/f18/flang.sh

  Log Message:
  -----------
  [flang] Change the suffix of the module files to be .f18.mod
so makefiles with "rm *.mod" will still work. Add a
new option to f18, -intrinsic-module-directory, which
supplies a directory in which f18 searches for standard
intrinsic modules. Neither the option nor the path is passed to F18_FC.

Original-commit: flang-compiler/f18 at 0bbda4c39edf170d3c194e4ad16b07e88995e46c
Reviewed-on: https://github.com/flang-compiler/f18/pull/653


  Commit: e688b2721014bc2d55a8dd6e8c8c580ccf46179b
      https://github.com/llvm/llvm-project/commit/e688b2721014bc2d55a8dd6e8c8c580ccf46179b
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-14 (Wed, 14 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#653 from flang-compiler/sjs-throwaway-wrapper2

Create a throwaway wrapper for the throwaway driver.

Original-commit: flang-compiler/f18 at 5ef563285e431a82a4c21527852a83301f0ed84c
Reviewed-on: https://github.com/flang-compiler/f18/pull/653


  Commit: e59305d7ae99a10355bef4e45a5a8351315e4006
      https://github.com/llvm/llvm-project/commit/e59305d7ae99a10355bef4e45a5a8351315e4006
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-14 (Wed, 14 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/stmt-parser.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] parse tree changes for Sections/Parallel Sections constructs (flang-compiler/f18#652)

```
!$omp sections [clause[ [,] clause] ... ]
[!$omp section]
structured-block
[!$omp section
structured-block]
...
!$omp end sections [nowait]
```

1. Following parse tree node changes for Block constructs, changing the
   Sections/Parallel Sections to `{Begin, Section-Blocks, End}`

2. Handles `!$omp section` in the parser, do not create parse tree node
   for this directive because basically it is a delimiter to split the
   code into different `Block`s within the Sections/Parallel Sections
   constructs. So, the `Section-Blocks` here is a `std::list` of `Block`s.
   (thanks to Tim's suggestion)

3. Modify check-omp-structure.* to avoid breaking existing tests

More tests will be added during Semantics. Also, similar to Block constructs,
the `Begin` and `End` directive matching will be done in future PR.

This commit also contains Peter's important fix for allowing "!$OMP END SECTION"
as a legal statement following `Block` (daf5630: Modify execution part error
recovery to not consume !$OMP SECTION).


Original-commit: flang-compiler/f18 at 75d016f6d27e73f5d559fe68d8a01df251c6d8cb
Reviewed-on: https://github.com/flang-compiler/f18/pull/652


  Commit: 0653dab8de4d25fdd4dba7719bfebb6d5512cae0
      https://github.com/llvm/llvm-project/commit/0653dab8de4d25fdd4dba7719bfebb6d5512cae0
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-14 (Wed, 14 Aug 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Add dcmplx to the intrinsic table and extensions documentation.
Formatting change to dimag intrinsic table entry.

Original-commit: flang-compiler/f18 at 7f9237531ca346306ff97ad99e11ea11c7fe0a49
Reviewed-on: https://github.com/flang-compiler/f18/pull/662


  Commit: cf2ab3e2d88eb2a6cfbacfda1316c78fdb2c6b2b
      https://github.com/llvm/llvm-project/commit/cf2ab3e2d88eb2a6cfbacfda1316c78fdb2c6b2b
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-14 (Wed, 14 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#662 from flang-compiler/sjs-dcmplx

Add dcmplx to the intrinsic table and extensions documentation.

Original-commit: flang-compiler/f18 at 8e0c2dea823c3e41324aabc6b2755d373d51a955
Reviewed-on: https://github.com/flang-compiler/f18/pull/662


  Commit: bcaba6e571d0670167d6528198b752ce5d4f12d7
      https://github.com/llvm/llvm-project/commit/bcaba6e571d0670167d6528198b752ce5d4f12d7
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-14 (Wed, 14 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/grammar.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/type-parsers.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h

  Log Message:
  -----------
  [flang] [OpenMP] parse tree changes for `OpenMPLoopConstruct` (flang-compiler/f18#656)

1. Following Block and Sections constructs, re-structure loop related
   constructs into `{Begin, Loop, End}`. Being part of the work in
   PR flang-compiler/f18#599, the `Loop` and `End` nodes are optional during parser. They
   should be filled in during the phase of `CanonicalizationOfOmp`. This
   commit is solely for the parse tree change. So, after this commit,
   PR flang-compiler/f18#599 needs to be changed accordingly.

2. Removed parse tree nodes for `END DO` and `END DO SIMD`. Similar to
   Block and Sections constructs, `End` node now accepts clauses too,
   the validity checks are deferred into Semantics. This is more genernal
   and error message could be better.

3. With this commit alone, assertion error would occur when `End` directive
   is present, for example `!$OMP END DO` because the `End` node is not
   moved into `OpenMPLoopConstruct` yet. Again, PR flang-compiler/f18#599 will handle that.

More tests will be added in PR flang-compiler/f18#599 and during the future Semantics work.

Original-commit: flang-compiler/f18 at 8cd1932fd61fa67f8ad5abfd337cf7a223ea89f4
Reviewed-on: https://github.com/flang-compiler/f18/pull/656


  Commit: 7b17a671901e07ed57936380acdfee6cdef50258
      https://github.com/llvm/llvm-project/commit/7b17a671901e07ed57936380acdfee6cdef50258
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/module/iso_c_binding.f90

  Log Message:
  -----------
  [flang] Define the named constants for the C characters with
special semantics in the ISO_C_BINDING intrinsic module.

Original-commit: flang-compiler/f18 at bee546fdb22bd0a4f0a287e623fcb69ceafeb976
Reviewed-on: https://github.com/flang-compiler/f18/pull/660
Tree-same-pre-rewrite: false


  Commit: da480fc6ce17748ddb5e8e6b2f1a0f7f6550a327
      https://github.com/llvm/llvm-project/commit/da480fc6ce17748ddb5e8e6b2f1a0f7f6550a327
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-14 (Wed, 14 Aug 2019)

  Changed paths:
    M flang/module/iso_c_binding.f90

  Log Message:
  -----------
  [flang] Use ACHAR() instead of the nonstandard backslash escape sequences.

Original-commit: flang-compiler/f18 at 103ed895fe27ae0f4503a4cf379132392dc14788
Reviewed-on: https://github.com/flang-compiler/f18/pull/660


  Commit: ef72ee7f76e7b88b8c1845390aae09a447fd0c28
      https://github.com/llvm/llvm-project/commit/ef72ee7f76e7b88b8c1845390aae09a447fd0c28
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-15 (Thu, 15 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#660 from flang-compiler/sjs-c-chars

Define the named constants for the C characters with special semantics

Original-commit: flang-compiler/f18 at 9c4ce244ad0447b923964431cf3b9f772fa03af0
Reviewed-on: https://github.com/flang-compiler/f18/pull/660


  Commit: 069ea6ec751ded3cab1f800f364fbd01aacb8a79
      https://github.com/llvm/llvm-project/commit/069ea6ec751ded3cab1f800f364fbd01aacb8a79
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix IMPLICIT issue 547

So far, in `ImplicitRules` class, `isImplicitNoneType_` is a ternary
unset -> nothing about implicit in this scope, look into parents
set true -> There is an IMPLICIT NONE for types in this scope.
set to false -> There is an IMPLICIT statement mapping types in
this false.

However, it was never set to false, so the IMPORT NONE of parent scopes
was "leaking" when it should not.

Set `isImplicitNoneType_` to false if an IMPLICIT statement is met to
fix the issue.

However, this change made the current name-resolution to then completly
disregard parent scope IMPLICIT NONE even for letters for which no
mapping were defined in the current scope. To fix this `GetType` was
modified to check for implicit none.

This led to `ApplyImplicitRules` to do redudant check, so it was
reorganised to querry for a type and complain if gets a nuulptr.

`GetImplicitType` was modified to avoid redundant error message.

Original-commit: flang-compiler/f18 at 962dbf3d8be5dc1a6780544bf1be5a803b6d7724
Reviewed-on: https://github.com/flang-compiler/f18/pull/635
Tree-same-pre-rewrite: false


  Commit: 0818c5396667ff20e48992457dc4e8d24c55904f
      https://github.com/llvm/llvm-project/commit/0818c5396667ff20e48992457dc4e8d24c55904f
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-08 (Thu, 08 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve04.f90

  Log Message:
  -----------
  [flang] Transform implict none ternaries to bool in `ImplicitRules`

Original-commit: flang-compiler/f18 at 324567bd2de6722d5e370f5c7ddc46b28762e945
Reviewed-on: https://github.com/flang-compiler/f18/pull/635
Tree-same-pre-rewrite: false


  Commit: 16b8b4cf78b6577a24e9e2598995d0e964491e69
      https://github.com/llvm/llvm-project/commit/16b8b4cf78b6577a24e9e2598995d0e964491e69
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-14 (Wed, 14 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Address review comments
Rename SetType to SetTypeMapping and change argumnet names.
Style changes.

Original-commit: flang-compiler/f18 at 3860097815fd4e20c8c81f809c9891e163678c6a
Reviewed-on: https://github.com/flang-compiler/f18/pull/635


  Commit: 146946d253028016ccf8f3bbf48bcd1cb0b0286c
      https://github.com/llvm/llvm-project/commit/146946d253028016ccf8f3bbf48bcd1cb0b0286c
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#635 from flang-compiler/jpr-fix-547

Fix IMPLICIT issue 547

Original-commit: flang-compiler/f18 at f4f31f179bb1aad1ea0ea669949e202a32b2d65f
Reviewed-on: https://github.com/flang-compiler/f18/pull/635


  Commit: 73632f5c36865a14ec7a619c043c74f5dd91fa03
      https://github.com/llvm/llvm-project/commit/73632f5c36865a14ec7a619c043c74f5dd91fa03
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/lib/common/enum-set.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/preprocessor.cc
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Enable some new warnings, clean up some of their consequences

Original-commit: flang-compiler/f18 at b82d1e9ac90723406ae93c15061d1ee8326468ce
Reviewed-on: https://github.com/flang-compiler/f18/pull/666
Tree-same-pre-rewrite: false


  Commit: e8c453f4ae0755c9fad20478e1fd294942dc3978
      https://github.com/llvm/llvm-project/commit/e8c453f4ae0755c9fad20478e1fd294942dc3978
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/intrinsics-library-templates.h
    M flang/lib/evaluate/intrinsics-library.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/type.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/lib/semantics/tools.cc
    M flang/test/evaluate/ISO-Fortran-binding.cc

  Log Message:
  -----------
  [flang] Clean up all newly enabled warnings

Original-commit: flang-compiler/f18 at 34a917c761541d7325156baafab47966264f2a3c
Reviewed-on: https://github.com/flang-compiler/f18/pull/666
Tree-same-pre-rewrite: false


  Commit: 10688e0903d490faadf67e37d66c1d7ccd7a0832
      https://github.com/llvm/llvm-project/commit/10688e0903d490faadf67e37d66c1d7ccd7a0832
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/lib/evaluate/descender.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/int-power.h
    M flang/lib/evaluate/real.cc
    M flang/lib/evaluate/real.h
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/parser/tools.cc
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-deallocate.cc
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/program-tree.cc
    M flang/lib/semantics/resolve-labels.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/tools.cc
    M flang/test/evaluate/real.cc

  Log Message:
  -----------
  [flang] Enable more warnings, deal with fallout

Original-commit: flang-compiler/f18 at 65c5b485afe521dab57c35991c96826612ef1d79
Reviewed-on: https://github.com/flang-compiler/f18/pull/666
Tree-same-pre-rewrite: false


  Commit: 7749d43f3f72b656fe57fab6a4cea84bcab17dd0
      https://github.com/llvm/llvm-project/commit/7749d43f3f72b656fe57fab6a4cea84bcab17dd0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/lib/common/format.h
    M flang/test/evaluate/fp-testing.cc
    M flang/test/evaluate/real.cc

  Log Message:
  -----------
  [flang] Another pass with clean builds

Original-commit: flang-compiler/f18 at e05dc1f4440fc42f0264f50cc01b4eb072d4c10f
Reviewed-on: https://github.com/flang-compiler/f18/pull/666


  Commit: 43cfeb75b3e598c14ae7bbb9ae5c281bd9c49fa1
      https://github.com/llvm/llvm-project/commit/43cfeb75b3e598c14ae7bbb9ae5c281bd9c49fa1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#666 from flang-compiler/pmk-warnings

Fix bug flang-compiler/f18#665, enable more warnings, deal with fallout

Original-commit: flang-compiler/f18 at 5762c2d88bd6844895bccf1226fd6301721a98c0
Reviewed-on: https://github.com/flang-compiler/f18/pull/666


  Commit: ff768d92dd68426385db1623ba2c336803c25ede
      https://github.com/llvm/llvm-project/commit/ff768d92dd68426385db1623ba2c336803c25ede
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-13 (Tue, 13 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/symbol05.f90

  Log Message:
  -----------
  [flang] Special handling for VOLATILE and ASYNCHRONOUS

The VOLATILE and ASYNCHRONOUS attributes are special in two ways:
- they can be applied to use-associated variables
- if they are applied to a host-associated variable in a block, that
  variable has the attribute only within the scope of the block

The latter is implemented by making a new `HostAssocDetails` symbol
within the block where the attribute can be set without affecting the
variable in the outer scope. This is similar to how the SHARED locality
spec is implemented.

Fixes flang-compiler/f18#649.

Original-commit: flang-compiler/f18 at 471aba451341a65ff6014bbe30cb2c64cf905da6
Reviewed-on: https://github.com/flang-compiler/f18/pull/655


  Commit: fdf85d5dbe4414169d868bfed4621ffc83e3656b
      https://github.com/llvm/llvm-project/commit/fdf85d5dbe4414169d868bfed4621ffc83e3656b
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#655 from flang-compiler/tsk-issue649

Special handling for VOLATILE and ASYNCHRONOUS

Original-commit: flang-compiler/f18 at 75a57c59d244303844291f990f9487a69f290b73
Reviewed-on: https://github.com/flang-compiler/f18/pull/655


  Commit: 39be4ad473382b185571ba484d70b26315fa7401
      https://github.com/llvm/llvm-project/commit/39be4ad473382b185571ba484d70b26315fa7401
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-declarative-directive.f90

  Log Message:
  -----------
  [flang] [OpenMP] parse tree fix for `Declare Target` (flang-compiler/f18#670)

The original implementation will throw parsing error for multiple
clauses on `declare target` directive, for example:
```
!$omp declare target to(Q) link(R)
```

Based on the OpenMP Spec, we only need two types for the specifier:

```
!$omp declare target (extended-list)
```
or
```
!$omp declare target [clause[ [,] clause] ... ]
```

This fix makes `declare target` accepts either the `list` or `clauses`,
which is more general and better for error messages.

Adjusted existing test for checking the parse tree changes. More tests
will be added during Semantics.

Original-commit: flang-compiler/f18 at 60f47fc1a15803001d9251d8d8e3c53cf979ccc6
Reviewed-on: https://github.com/flang-compiler/f18/pull/670


  Commit: ca5fee537573179941eddea7e6c15856d5946005
      https://github.com/llvm/llvm-project/commit/ca5fee537573179941eddea7e6c15856d5946005
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-declarative-directive.f90

  Log Message:
  -----------
  [flang] [OpenMP] miscellaneous parse tree fix (flang-compiler/f18#669)

Fix `aligned(argument-list[ : alignment])` for `declare simd`

(original implementation will throw parser error if `: alignment` is present.


Original-commit: flang-compiler/f18 at f3f50f9ad3b77174d0054011a17c8e4d3af50d98
Reviewed-on: https://github.com/flang-compiler/f18/pull/669


  Commit: d8c4f96f1427831fc794c420204aa163f0bf6033
      https://github.com/llvm/llvm-project/commit/d8c4f96f1427831fc794c420204aa163f0bf6033
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc

  Log Message:
  -----------
  [flang] Clean-up of check-do.cc
I got rid of duplicate functions that test for a procedure being PURE, renamed
the type SymbolContainer to SymbolSet, and moved some functions into the class
where they're referenced.

Original-commit: flang-compiler/f18 at e48bfdf5737d102b2fa8faedb0f002faf5f30a7e
Reviewed-on: https://github.com/flang-compiler/f18/pull/663
Tree-same-pre-rewrite: false


  Commit: 6b8a1e8248b7069975554efe47a41e0f8a9f307f
      https://github.com/llvm/llvm-project/commit/6b8a1e8248b7069975554efe47a41e0f8a9f307f
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/dosemantics04.f90
    A flang/test/semantics/dosemantics09.f90

  Log Message:
  -----------
  [flang] Changes to implement constraint C1129
"C1129 A variable that is referenced by the scalar-mask-expr of a concurrent-header or by any concurrent-limit or concurrent-step in that concurrent-header shall not appear in a LOCAL locality-spec in the same DO CONCURRENT statement."

In the process of implementing these checks, I found and fixed some other problems.  I also cleaned up some of the code in check-do.cc.  I ran into two notable difficulties in implementing these checks.  First, the symbols associated with the names in a locality spec get created when the locality specs are process during name resolution.  Thus, they're different from the symbols associated with names that appear in the control expressions.  At Tim's suggestion, I dealt with this by looking up the symbols from the names in the locality spec starting with the closest enclosing scope containing the DO construct.  Second, the symbols can be hidden behind host- use- and construct-associations.

Original-commit: flang-compiler/f18 at 055788c2f0604c5bd37637732aec863f8e3aebf2
Reviewed-on: https://github.com/flang-compiler/f18/pull/663
Tree-same-pre-rewrite: false


  Commit: d440b2e166b941f317d3211cbe96e82c27c36ec2
      https://github.com/llvm/llvm-project/commit/d440b2e166b941f317d3211cbe96e82c27c36ec2
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/test/semantics/dosemantics04.f90
    M flang/test/semantics/dosemantics09.f90

  Log Message:
  -----------
  [flang] Responses to comments on the pull request:
 - I removed the redundant test s3() from dosemantics90.f90
 - I changed the error messages to state "LOCAL locality-spec" rather than just
   "locality-spec"
 - I changed the names of a couple of variables/parameters in check-do.cc to
   make the code more understandable.

Original-commit: flang-compiler/f18 at bcc6291e8370d97cb3d4c23a30e676bf3a0012ab
Reviewed-on: https://github.com/flang-compiler/f18/pull/663


  Commit: d06c8f8ee42ecc1b2076ff8ad338be3bef694b75
      https://github.com/llvm/llvm-project/commit/d06c8f8ee42ecc1b2076ff8ad338be3bef694b75
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#663 from flang-compiler/ps-c1129

Checks for constraint C1129

Original-commit: flang-compiler/f18 at f724efb6836a404ef83b9ce240dfddfc1066cb2e
Reviewed-on: https://github.com/flang-compiler/f18/pull/663


  Commit: 9325f9974ab9612bd44c53ee62894a0072dd7997
      https://github.com/llvm/llvm-project/commit/9325f9974ab9612bd44c53ee62894a0072dd7997
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    A flang/include/fir/FIROps.td

  Log Message:
  -----------
  [flang] Add mlir-tablegen for FIR ops

Original-commit: flang-compiler/f18 at aae4b525dab5192ab7bc2d9004014025cfd9c64f
Reviewed-on: https://github.com/flang-compiler/f18/pull/668
Tree-same-pre-rewrite: false


  Commit: 7f2ce553e4b8a5a3b86e0e15166fb523849d8e00
      https://github.com/llvm/llvm-project/commit/7f2ce553e4b8a5a3b86e0e15166fb523849d8e00
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    A flang/include/fir/Dialect.h

  Log Message:
  -----------
  [flang] Add FIR dialect header

Original-commit: flang-compiler/f18 at 3c902e04d7db782ffecdbee937b4b9e3b35b5551
Reviewed-on: https://github.com/flang-compiler/f18/pull/668


  Commit: be2ab4b3a25c097188d05bd950b0c2635e6197e4
      https://github.com/llvm/llvm-project/commit/be2ab4b3a25c097188d05bd950b0c2635e6197e4
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-08-21 (Wed, 21 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#668 from schweitzpgi/master

Add mlir-tablegen for FIR ops

Original-commit: flang-compiler/f18 at f6eec72eead759713287dddc124fea375c4f65db
Reviewed-on: https://github.com/flang-compiler/f18/pull/668


  Commit: ccb0b48805233d0d941c2414916b01d37b273ab9
      https://github.com/llvm/llvm-project/commit/ccb0b48805233d0d941c2414916b01d37b273ab9
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Handle AssocEntityDetails in mis-parsed function reference
Fix issue flang-compiler/f18#574.
Array references can be mistaken for function references during
parsing. This is handled and fixed by semantics. however, if the
symbol in the misparsed array reference was construct associated,
then semantics was not handling the case correctly because
semantics was only expecting `ObjectEntityDetails`.
It was not possible to change the related `GetUltimate` into
`GetAssociationRoot` because associated symbols are not always
associated to another symbol (variable) but may be assoicated to
an expression. Hence, this change allow `AssocEntityDetails` to
be also accepted when dealing with array references misparsed as
function references.

Original-commit: flang-compiler/f18 at b6a8b5f42bdb40d65f4c242a3673bc436a2d0601
Reviewed-on: https://github.com/flang-compiler/f18/pull/672
Tree-same-pre-rewrite: false


  Commit: 1bb0e9e3626e9b1b00eff8a0981926f7612e14e3
      https://github.com/llvm/llvm-project/commit/1bb0e9e3626e9b1b00eff8a0981926f7612e14e3
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-21 (Wed, 21 Aug 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve39.f90

  Log Message:
  -----------
  [flang] Add comments and tests for issue 574 fix

Original-commit: flang-compiler/f18 at 89337cefc7f22944ab53347f97261cb6038a628f
Reviewed-on: https://github.com/flang-compiler/f18/pull/672


  Commit: f8f98c2cdee7ba9c4878a7891e2bc2de8d958189
      https://github.com/llvm/llvm-project/commit/f8f98c2cdee7ba9c4878a7891e2bc2de8d958189
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-22 (Thu, 22 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#672 from flang-compiler/jpr-fix-574

 Handle AssocEntityDetails in mis-parsed function reference

Original-commit: flang-compiler/f18 at 0006272bbd79f1d4073d52516e0672911108138a
Reviewed-on: https://github.com/flang-compiler/f18/pull/672


  Commit: 5330ebbc4a8ccb08057903efb6cf1de72df37f32
      https://github.com/llvm/llvm-project/commit/5330ebbc4a8ccb08057903efb6cf1de72df37f32
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-22 (Thu, 22 Aug 2019)

  Changed paths:
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/CMakeLists.txt
    A flang/lib/semantics/canonicalize-omp.cc
    A flang/lib/semantics/canonicalize-omp.h
    M flang/lib/semantics/semantics.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/omp-loop-association.f90

  Log Message:
  -----------
  [flang]  [OpenMP] Canonicalization framework (flang-compiler/f18#599)

* [OpenMP] Canonicalization framework

This is mainly designed for loop association work but can be used for others,
and `CanonicalizeOmp` must be after `CanonicalizeDo`.

At the `Block` level, recognize legal sequence of `OpenMPLoopConstruct`,
`DoConstruct`, and `OmpEndLoopDirective`. Move available `DoConstruct`
and optional `OmpEndLoopDirective` into `OpenMPLoopConstruct`. Throw error
messages if:
 1. `DoConstruct` is not following `OpenMPLoopConstruct`
 2. `OmpEndLoopDirective` is not following associated do-loop

Once this pass this done, Semantics will not proceed if error exists.

* Update on reviews

1. extract matching and move part into its own function (once `DoConstruct`
   is moved, see whether `OpenMPEndLoopDirective` is available)

2. Use a template function to access construct from ExecutionPartConstruct.

3. Move this code into namespace semantics

Original-commit: flang-compiler/f18 at 52979f1e93f40c31e04118067403a258555d139a
Reviewed-on: https://github.com/flang-compiler/f18/pull/599


  Commit: f2453c9f15b966a40c16192568956db87c5281a6
      https://github.com/llvm/llvm-project/commit/f2453c9f15b966a40c16192568956db87c5281a6
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-21 (Wed, 21 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.h
    M flang/test/semantics/resolve28.f90

  Log Message:
  -----------
  [flang] Fix a crash with IMPORT in BLOCK (issue 604)
Only call scope.name() if the scope has a symbol (Block, Global,
Forall and ImpliedDo kind of scopes do not have a symbol).

Original-commit: flang-compiler/f18 at 81c6b67dd2cbb926aba967d9ce2b8973355ca737
Reviewed-on: https://github.com/flang-compiler/f18/pull/634
Tree-same-pre-rewrite: false


  Commit: 5cc20f6ae82e38b70a9f9866e9e484349411e954
      https://github.com/llvm/llvm-project/commit/5cc20f6ae82e38b70a9f9866e9e484349411e954
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-21 (Wed, 21 Aug 2019)

  Changed paths:
    M flang/test/semantics/resolve28.f90

  Log Message:
  -----------
  [flang] Fix test copyright year.

Original-commit: flang-compiler/f18 at 25819aaf7aa483bd86e5ede227a19efb6f67265e
Reviewed-on: https://github.com/flang-compiler/f18/pull/634
Tree-same-pre-rewrite: false


  Commit: 281d41cc109866218701dd5b4fb41ee3a8a4965e
      https://github.com/llvm/llvm-project/commit/281d41cc109866218701dd5b4fb41ee3a8a4965e
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-21 (Wed, 21 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names-utils.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/unparse-with-symbols.cc

  Log Message:
  -----------
  [flang] Use value semantic for SourceName
Change all SourceName* to std::optional<SourceName> because
SourceName is small enough (16 bytes) to be passed and stored
by value which avoid having to worry about life-time, storage and
value constance issues that comes with pointers.

Original-commit: flang-compiler/f18 at 73fc08d7bd956b1b793f8930164f9b4ebb7e279c
Reviewed-on: https://github.com/flang-compiler/f18/pull/634
Tree-same-pre-rewrite: false


  Commit: 52e72abb673bf1408f17d398d262f5fdbd63a019
      https://github.com/llvm/llvm-project/commit/52e72abb673bf1408f17d398d262f5fdbd63a019
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-21 (Wed, 21 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/tools.cc

  Log Message:
  -----------
  [flang] Change Scope::name() to Scope::GetName()
Address comments. Not all scopes are related to
a name. This change makes this more visible to compiler
programers by changing `scope:name()` into `Scope::GetName()`
that returns an optional `SourceName` instead of always
returning a `SourceName` and dying when it cannot.

Original-commit: flang-compiler/f18 at 0addb79919f69a6530b0919356a24e68f21507c1
Reviewed-on: https://github.com/flang-compiler/f18/pull/634
Tree-same-pre-rewrite: false


  Commit: 511cd36a584e8e6a15ecd47246663877a09fc826
      https://github.com/llvm/llvm-project/commit/511cd36a584e8e6a15ecd47246663877a09fc826
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-22 (Thu, 22 Aug 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc

  Log Message:
  -----------
  [flang] Address comment: remove useless const

Original-commit: flang-compiler/f18 at 60983f502103575999a91bf62cd0c78aded85837
Reviewed-on: https://github.com/flang-compiler/f18/pull/634


  Commit: 4308351c3795f6850e89a14e188f675eda31457c
      https://github.com/llvm/llvm-project/commit/4308351c3795f6850e89a14e188f675eda31457c
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#634 from flang-compiler/jpr-fix-604

Fix a crash with IMPORT in BLOCK (issue 604)

Original-commit: flang-compiler/f18 at c0ab1d1ace3b9c27c35f7604470f66b4e6c42cf7
Reviewed-on: https://github.com/flang-compiler/f18/pull/634


  Commit: 20eaba0392e9d8f79853e4933e8b68d05df9e9b1
      https://github.com/llvm/llvm-project/commit/20eaba0392e9d8f79853e4933e8b68d05df9e9b1
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] [OpenMP] miscellaneous parse tree updates (flang-compiler/f18#673)

1. Big chunk: update comments in parse-tree.h and openmp-grammar.h
   with Spec chapter/section info, simple explanation, or productions.

2. Update `To`, `Link`, and `From` clauses with `OmpObjectList` to allow
   `/Common Block/`. Spec does not mention whether `Common Block name`
   should be accepted or not, so we should assume that these clauses
   accept normal `list-item`, which is `Variable`, `Array Section`, or
   `Common Block name`.

Original-commit: flang-compiler/f18 at 140315cb62da295f6306c2afc737041fa1626dff
Reviewed-on: https://github.com/flang-compiler/f18/pull/673


  Commit: abd56ee7fd06a4075c0dd66bb99c5ce441752c11
      https://github.com/llvm/llvm-project/commit/abd56ee7fd06a4075c0dd66bb99c5ce441752c11
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/test/semantics/modfile07.f90

  Log Message:
  -----------
  [flang] Fix writing defined operators to .mod files

When defined operators were written to .mod files in USE statement
they did not come out correctly. They have to be emitted with
`PutGenericName()` so that `operator` is included.

Original-commit: flang-compiler/f18 at d40e65a2f9c176f5334adb8132ef65273cf3615f
Reviewed-on: https://github.com/flang-compiler/f18/pull/675
Tree-same-pre-rewrite: false


  Commit: 191a5e34b0678bdb587d39658beb9432ef97c969
      https://github.com/llvm/llvm-project/commit/191a5e34b0678bdb587d39658beb9432ef97c969
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/test/semantics/modfile01.f90

  Log Message:
  -----------
  [flang] Fix bug in .mod file for some subprogram attributes

Some attributes for subprograms can be in the subprogram prefix but
others cannot. For the latter, emit a separate attribute statement
to specify them. We were already doing that for PRIVATE but not for
OPTIONAL. Those may be the only two attributes this can apply to.

Fixes flang-compiler/f18#659.

Original-commit: flang-compiler/f18 at ae67e087800c5aecb8cb2d2aea16d19b8cc8ccf2
Reviewed-on: https://github.com/flang-compiler/f18/pull/675
Tree-same-pre-rewrite: false


  Commit: 5e65aaa921f18cb3d9ff3ac11dc0a568f5e3d10e
      https://github.com/llvm/llvm-project/commit/5e65aaa921f18cb3d9ff3ac11dc0a568f5e3d10e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/test/semantics/modfile23.f90

  Log Message:
  -----------
  [flang] Fix .mod file bug with IMPORT of USEd name

If a symbol (derived type, for example) was use-associated into a scope
and then imported into a nested interface block, we were not including
the correct IMPORT statement in the .mod file.

This fixes refines the test for when the IMPORT is needed.

Fixes flang-compiler/f18#657.

Original-commit: flang-compiler/f18 at 8383de47ecb1b6901e2dd6f290df28fe8a470908
Reviewed-on: https://github.com/flang-compiler/f18/pull/675
Tree-same-pre-rewrite: false


  Commit: a03a0432f3f236755290d0c6925bb4f627dddd5c
      https://github.com/llvm/llvm-project/commit/a03a0432f3f236755290d0c6925bb4f627dddd5c
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/semantics/attr.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Add conversions from EnumSet<Attr> to Attrs

This allows operations from EnumSet (e.g. `operator&`) to work as expected.

Original-commit: flang-compiler/f18 at c8b8b742c8cbc675c5e60e8c96533ef36bbbb448
Reviewed-on: https://github.com/flang-compiler/f18/pull/675


  Commit: d1dcd76d146c3faf2d2ce218de7b713d6fc6d387
      https://github.com/llvm/llvm-project/commit/d1dcd76d146c3faf2d2ce218de7b713d6fc6d387
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#675 from flang-compiler/tsk-modfiles2

Fix bugs in .mod file generation

Original-commit: flang-compiler/f18 at 5de0847a64194cc371f62d91d18c2d054c4985c5
Reviewed-on: https://github.com/flang-compiler/f18/pull/675


  Commit: f2cb0a8015ed672fcd27569a5463f1303f2e163f
      https://github.com/llvm/llvm-project/commit/f2cb0a8015ed672fcd27569a5463f1303f2e163f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    A flang/lib/common/leading-zero-bit-count.h
    M flang/lib/evaluate/decimal.cc
    M flang/lib/evaluate/decimal.h
    M flang/lib/evaluate/integer.h
    R flang/lib/evaluate/leading-zero-bit-count.h
    M flang/test/evaluate/leading-zero-bit-count.cc

  Log Message:
  -----------
  [flang] Move leading zero bit count into lib/common

Original-commit: flang-compiler/f18 at 1ed184febe6ed4c232d140c69be7d6d1a458aac5
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 9e26defed37507a39400ac1cff28d93d82c1ae78
      https://github.com/llvm/llvm-project/commit/9e26defed37507a39400ac1cff28d93d82c1ae78
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/CMakeLists.txt
    M flang/lib/common/bit-population-count.h
    M flang/lib/common/leading-zero-bit-count.h
    A flang/lib/decimal/CMakeLists.txt
    A flang/lib/decimal/big-radix-floating-point.h
    A flang/lib/decimal/binary-floating-point.h
    A flang/lib/decimal/binary-to-decimal.cc
    A flang/lib/decimal/decimal-to-binary.cc
    A flang/lib/decimal/decimal.h

  Log Message:
  -----------
  [flang] Code snapshot

Original-commit: flang-compiler/f18 at 46923344ca8364685c09eb14935382d8989fa0ff
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: b53e09c44c51b9f9f5cb70482347ad203028521d
      https://github.com/llvm/llvm-project/commit/b53e09c44c51b9f9f5cb70482347ad203028521d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/decimal.h

  Log Message:
  -----------
  [flang] Add rounding modes

Original-commit: flang-compiler/f18 at 9caa1a29a5b8129af087ed55da147b15dc16cde3
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 93f3ae8aebd818abeeb7c07c858f5ecf6b57b0bf
      https://github.com/llvm/llvm-project/commit/93f3ae8aebd818abeeb7c07c858f5ecf6b57b0bf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/decimal.h

  Log Message:
  -----------
  [flang] Enforce digit limits

Original-commit: flang-compiler/f18 at 33600e127dd8ed747d10063d55d8b1eb99bb999b
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 9cdb101a4d1cf835e528400164861ec3932de169
      https://github.com/llvm/llvm-project/commit/9cdb101a4d1cf835e528400164861ec3932de169
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc

  Log Message:
  -----------
  [flang] clean up a todo

Original-commit: flang-compiler/f18 at 1107bd1f02a978900cc005e72ec2acfe80c198db
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: afda616c31a66032d61890a251acdce980f8b9ff
      https://github.com/llvm/llvm-project/commit/afda616c31a66032d61890a251acdce980f8b9ff
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/decimal.h
    M flang/test/CMakeLists.txt
    A flang/test/decimal/CMakeLists.txt
    A flang/test/decimal/quick-sanity-test.cc

  Log Message:
  -----------
  [flang] Begin adding tests

Original-commit: flang-compiler/f18 at 8776d8b66334f8ba0886d074217f0c17cb6aa02b
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 3863551b31ca66fe4ce2d81e539e6c4e6f7ca1c6
      https://github.com/llvm/llvm-project/commit/3863551b31ca66fe4ce2d81e539e6c4e6f7ca1c6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/CMakeLists.txt
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/test/decimal/quick-sanity-test.cc
    M flang/test/evaluate/leading-zero-bit-count.cc

  Log Message:
  -----------
  [flang] Testing & debugging

Original-commit: flang-compiler/f18 at f7f933e7f56375c8fe766bf2527472fefca73ad1
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 77b3c6d53a5a514b4dd4f32162650913007f70e6
      https://github.com/llvm/llvm-project/commit/77b3c6d53a5a514b4dd4f32162650913007f70e6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/test/decimal/CMakeLists.txt
    M flang/test/decimal/quick-sanity-test.cc
    A flang/test/decimal/thorough-test.cc

  Log Message:
  -----------
  [flang] More testing, added thorough 32-bit sweep test

Original-commit: flang-compiler/f18 at f81b92f91c62822887f12be7fb68d5da816eef47
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 099838a34d4cdda4c1d096ed624503d06c260c5a
      https://github.com/llvm/llvm-project/commit/099838a34d4cdda4c1d096ed624503d06c260c5a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/test/decimal/thorough-test.cc

  Log Message:
  -----------
  [flang] Debug test

Original-commit: flang-compiler/f18 at bf2c22bcf494a63cacb7dffcb4e7b209bdc8522c
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 95165a39218f5251b83340e8c8b86c1648f684ae
      https://github.com/llvm/llvm-project/commit/95165a39218f5251b83340e8c8b86c1648f684ae
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/decimal.h
    M flang/lib/evaluate/CMakeLists.txt
    R flang/lib/evaluate/decimal.cc
    R flang/lib/evaluate/decimal.h
    M flang/lib/evaluate/real.cc
    M flang/test/decimal/quick-sanity-test.cc
    M flang/test/decimal/thorough-test.cc
    M flang/test/evaluate/CMakeLists.txt
    M flang/test/evaluate/real.cc
    M flang/test/evaluate/testing.cc
    M flang/test/evaluate/testing.h

  Log Message:
  -----------
  [flang] Replace usage of original decimal conversion code with calls to new library

Original-commit: flang-compiler/f18 at 7a164451f2b6c920b229a6a666161dd2f936653b
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: d08c9c9d1d9e38a7cea73a6334b15f2ebcfeff38
      https://github.com/llvm/llvm-project/commit/d08c9c9d1d9e38a7cea73a6334b15f2ebcfeff38
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/test/decimal/thorough-test.cc

  Log Message:
  -----------
  [flang] Make thorough test thorough again

Original-commit: flang-compiler/f18 at c24b10e4347234f6f1a9f127abf0d47f2b954204
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 94d8b3f25be6c71da577bb3de4d4e3b666b489b6
      https://github.com/llvm/llvm-project/commit/94d8b3f25be6c71da577bb3de4d4e3b666b489b6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/evaluate/real.cc

  Log Message:
  -----------
  [flang] Simplify decimal->binary

Original-commit: flang-compiler/f18 at 01aefbbd7ab91588368f25179749806612ce3fb4
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: c4696eaf8e5bb916f3bf8a04423aa86a74d9fa02
      https://github.com/llvm/llvm-project/commit/c4696eaf8e5bb916f3bf8a04423aa86a74d9fa02
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/test/decimal/quick-sanity-test.cc
    M flang/test/decimal/thorough-test.cc

  Log Message:
  -----------
  [flang] Get clean build with gcc

Original-commit: flang-compiler/f18 at e6b5ed152dc318939011597d073bd268465a44f3
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: b235c63cafe1205e1825d1abc70df0b14f3dcf35
      https://github.com/llvm/llvm-project/commit/b235c63cafe1205e1825d1abc70df0b14f3dcf35
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc

  Log Message:
  -----------
  [flang] faster Parse

Original-commit: flang-compiler/f18 at ca97439c6847848bc3f8a52757a73cc3a425e8bb
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 64a0a58bed55063fb311da8c47adcd58f0334563
      https://github.com/llvm/llvm-project/commit/64a0a58bed55063fb311da8c47adcd58f0334563
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    A flang/lib/decimal/int-divide-workaround.h

  Log Message:
  -----------
  [flang] Work around slow clang-7

Original-commit: flang-compiler/f18 at ed634d72e3d51d56010ef5aedef614f3cda6e076
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 3f15d46f63c8fca7175e01e5e2e8c9a6f1df500c
      https://github.com/llvm/llvm-project/commit/3f15d46f63c8fca7175e01e5e2e8c9a6f1df500c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/decimal-to-binary.cc

  Log Message:
  -----------
  [flang] Simplify guard bits (only use 3)

Original-commit: flang-compiler/f18 at b710268c1b323c1ce29959eff01d020d5a32283b
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: b5408d26ed981e79af84dfc6c7cbc68c91915969
      https://github.com/llvm/llvm-project/commit/b5408d26ed981e79af84dfc6c7cbc68c91915969
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/int-divide-workaround.h

  Log Message:
  -----------
  [flang] Clean up some static_casts

Original-commit: flang-compiler/f18 at a5f81388a269e174ee73781c1ed748d992df3dca
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 28d55be08bd66ca52d3df1867fa3f5fb289da4f2
      https://github.com/llvm/llvm-project/commit/28d55be08bd66ca52d3df1867fa3f5fb289da4f2
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/common/bit-population-count.h
    A flang/lib/common/unsigned-const-division.h
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    R flang/lib/decimal/int-divide-workaround.h
    M flang/test/decimal/thorough-test.cc

  Log Message:
  -----------
  [flang] Better unsigned division by constants

Original-commit: flang-compiler/f18 at 1b35c24a8aa37f06b7d5ce8b1af636bf15ac979b
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: bd3debe8415f83577f634e11c4838fd4991b835b
      https://github.com/llvm/llvm-project/commit/bd3debe8415f83577f634e11c4838fd4991b835b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/test/decimal/thorough-test.cc

  Log Message:
  -----------
  [flang] Reenable thorough test

Original-commit: flang-compiler/f18 at 431254483e41ecbd667d465d853e46b91ad4ba9b
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 474c43a0759a9deefc085b0cfa7c63cbbed9ccbf
      https://github.com/llvm/llvm-project/commit/474c43a0759a9deefc085b0cfa7c63cbbed9ccbf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h

  Log Message:
  -----------
  [flang] Correct header guards

Original-commit: flang-compiler/f18 at 77688d03926bf256846f2fb79999506f7bfd89b3
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 1502542fe7a487627f0224d647bea719b0a8b031
      https://github.com/llvm/llvm-project/commit/1502542fe7a487627f0224d647bea719b0a8b031
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/CMakeLists.txt

  Log Message:
  -----------
  [flang] Fix copyright date on new file.

Original-commit: flang-compiler/f18 at 60b1be7ce29ff1c2b6365d44d755c7f33b616313
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: b4f34801c60b56b5161d7c38bebf33f69a74e86a
      https://github.com/llvm/llvm-project/commit/b4f34801c60b56b5161d7c38bebf33f69a74e86a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc

  Log Message:
  -----------
  [flang] Improve comments, clean up a couple of things

Original-commit: flang-compiler/f18 at 8d94d643b64cef9f17eb58cf1095bdec20493965
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 79e8749f2596e2090d739ec78a14b253f70984e4
      https://github.com/llvm/llvm-project/commit/79e8749f2596e2090d739ec78a14b253f70984e4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/decimal.h
    M flang/lib/evaluate/real.cc
    M flang/test/evaluate/testing.cc

  Log Message:
  -----------
  [flang] Address comments, fix a bug

Original-commit: flang-compiler/f18 at e095bbb23f4e37fe37a1ead03e29f8786c4f9b36
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 787b9978308ab561142b7ec8ae5760690e5b6370
      https://github.com/llvm/llvm-project/commit/787b9978308ab561142b7ec8ae5760690e5b6370
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/decimal.h
    M flang/lib/evaluate/real.cc

  Log Message:
  -----------
  [flang] Address most review comments

Original-commit: flang-compiler/f18 at e6164782eac607d376eac59baa9107c971c92c19
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: b7d463f1d552c59fee9cf5b16eab676116a50716
      https://github.com/llvm/llvm-project/commit/b7d463f1d552c59fee9cf5b16eab676116a50716
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/evaluate/real.h

  Log Message:
  -----------
  [flang] Cope better with ridiculously large exponents on input

Original-commit: flang-compiler/f18 at e55cc39bad40f6419aadf26101dc6e9c3ed3fda9
Reviewed-on: https://github.com/flang-compiler/f18/pull/671
Tree-same-pre-rewrite: false


  Commit: 9717cc43b82b68cb20cdee8a69741788ce46d493
      https://github.com/llvm/llvm-project/commit/9717cc43b82b68cb20cdee8a69741788ce46d493
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/real.cc
    M flang/lib/evaluate/real.h
    M flang/test/evaluate/real.cc

  Log Message:
  -----------
  [flang] Make it easier to enable minimal FP output by default for module files (but do not enable it)

Original-commit: flang-compiler/f18 at f6b640319b33008375ca719a88fd0580bcf90bba
Reviewed-on: https://github.com/flang-compiler/f18/pull/671


  Commit: 61814dbf1d2baa16b8cb2920fe79e6015f16a7e5
      https://github.com/llvm/llvm-project/commit/61814dbf1d2baa16b8cb2920fe79e6015f16a7e5
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#671 from flang-compiler/pmk-decimal

Better binary<->decimal floating-point conversion

Original-commit: flang-compiler/f18 at 5e93f2c602607c70bbb214e3eb59d8fcb8c47d9d
Reviewed-on: https://github.com/flang-compiler/f18/pull/671


  Commit: 8c4d2e8763976a0ee0a1afd7bfd05985c190a74c
      https://github.com/llvm/llvm-project/commit/8c4d2e8763976a0ee0a1afd7bfd05985c190a74c
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/test/evaluate/folding05.f90

  Log Message:
  -----------
  [flang] Fix SELECTED_CHAR_KIND('DEFAULT') folding issue
Fix issue flang-compiler/f18#676
The issue was that the 'DEFAULT' case was handled
directly in fold.cc which did not lowercase/trim trailing
space of the argument befaore comparing to "default".

Modify the `Selected_char_kind` function to accept the default
char kind as argument and to return it if the processed argument
matches "default".

Original-commit: flang-compiler/f18 at 14222ae9148af4f99f59e6f9f0b928baa2da0b10
Reviewed-on: https://github.com/flang-compiler/f18/pull/679


  Commit: 4a624715aafcc68136b370858899a4d145eefb5c
      https://github.com/llvm/llvm-project/commit/4a624715aafcc68136b370858899a4d145eefb5c
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#679 from flang-compiler/jpr-fix-676

Fix SELECTED_CHAR_KIND('DEFAULT') folding issue

Original-commit: flang-compiler/f18 at 6703f7bd99da33c437df68aafbe855cd1a96ecae
Reviewed-on: https://github.com/flang-compiler/f18/pull/679


  Commit: 252e22ea978f5c35dd97f081fc470af3f2ad5fbb
      https://github.com/llvm/llvm-project/commit/252e22ea978f5c35dd97f081fc470af3f2ad5fbb
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc
    M flang/test/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Fix issue: Enforce specific intrinsic characteristics
Fix issue flang-compiler/f18#661.
The issue was that when probing a specific intrinsic, the
constraints of the related generic intrinsic were tested instead
of the more restrictive constraints of the specific intrinsic.

Original-commit: flang-compiler/f18 at dd971e901d137f0cef9136250402521dbe266288
Reviewed-on: https://github.com/flang-compiler/f18/pull/680
Tree-same-pre-rewrite: false


  Commit: 98af2162d080ee9de3213f78f84aa7063c8c90e6
      https://github.com/llvm/llvm-project/commit/98af2162d080ee9de3213f78f84aa7063c8c90e6
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc
    M flang/test/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Fix intrinsic table probing issue with DOUBLE COMPLEX
The probing table was only expecting REAL for kind code
`KindCode::doublePrecision` that is also used for
`DoublePrecisionComplex`.
Add related tests.

Original-commit: flang-compiler/f18 at 342ed7e7694da2d71d0c701d5a1163be333cfa01
Reviewed-on: https://github.com/flang-compiler/f18/pull/680


  Commit: 986fec95a15af2f462263c46f14b38b906e49f9d
      https://github.com/llvm/llvm-project/commit/986fec95a15af2f462263c46f14b38b906e49f9d
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#680 from flang-compiler/jpr-fix-661

 Fix issue: Enforce specific intrinsic characteristics

Original-commit: flang-compiler/f18 at 0758d8a65e4060a66ba5c755023bb03d0487593b
Reviewed-on: https://github.com/flang-compiler/f18/pull/680


  Commit: 51fe22391654cf6eb3a054e48a9c3a3c599911b2
      https://github.com/llvm/llvm-project/commit/51fe22391654cf6eb3a054e48a9c3a3c599911b2
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/symbol16.f90

  Log Message:
  -----------
  [flang] Fix bug with statement functions

When the name of a statement function was previously declared, we
weren't correctly recognizing it as a statement function. E.g.
```
integer :: f, i
f(i) = i + 1
```

`f` was entered in the symbol table with `EntityDetails` and the
`parser::Name` on the first line was resolved to that symbol.
On the second line we replaced the symbol for `f` in the scope
with a subprogram symbol, but that didn't change the symbol in
the first `parser::Name`.

The fix requires:
1. don't erase the original symbol for `f`, just replace its details
2. when we erase the symbol for `f` in the subprogram scope, don't
   unresolve it

Original-commit: flang-compiler/f18 at 31212686ea357503840c0562853c6977bfc1ffe5


  Commit: 0adca8bedc4e74fe02ac6b1ac758bd931d2f3f68
      https://github.com/llvm/llvm-project/commit/0adca8bedc4e74fe02ac6b1ac758bd931d2f3f68
  Author: David Truby <david.truby at arm.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/parser/parse-tree.h
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix for builds with libc++9 and libstdc++10

Original-commit: flang-compiler/f18 at 137de8a1cdcb6e10d7a020209e0b2d1cb9118885
Reviewed-on: https://github.com/flang-compiler/f18/pull/681
Tree-same-pre-rewrite: false


  Commit: 1281b9c5fc0996b4b36bf476dea3ba636a753649
      https://github.com/llvm/llvm-project/commit/1281b9c5fc0996b4b36bf476dea3ba636a753649
  Author: David Truby <david.truby at arm.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/lib/parser/parse-tree.h
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Misc changes for review

Original-commit: flang-compiler/f18 at 6d9ddb8f5e4d5fe478dd2a5908418efb79f61df2
Reviewed-on: https://github.com/flang-compiler/f18/pull/681


  Commit: aa907c31256386056ea9016913ba30b2fce525a9
      https://github.com/llvm/llvm-project/commit/aa907c31256386056ea9016913ba30b2fce525a9
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#681 from DavidTruby/master

Fix for builds with libc++9 and libstdc++10

Original-commit: flang-compiler/f18 at fae1187462a733e64364d2a1a7d908fbed904576
Reviewed-on: https://github.com/flang-compiler/f18/pull/681


  Commit: 9b5e691814b9fecd8208b049eb108c4eeb298e45
      https://github.com/llvm/llvm-project/commit/9b5e691814b9fecd8208b049eb108c4eeb298e45
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    A flang/module/omp_lib.f90
    M flang/tools/f18/CMakeLists.txt

  Log Message:
  -----------
  [flang] Add the OpenMP module.

Original-commit: flang-compiler/f18 at 09d8b0d6e1da1435228f339674718881f09a49a2
Reviewed-on: https://github.com/flang-compiler/f18/pull/690
Tree-same-pre-rewrite: false


  Commit: 5c62bfb4f8929fbfeac407fa78ea3d88c262456d
      https://github.com/llvm/llvm-project/commit/5c62bfb4f8929fbfeac407fa78ea3d88c262456d
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/module/omp_lib.f90
    A flang/module/omp_lib.h

  Log Message:
  -----------
  [flang] Implement int_ptr_kind.
Split omp_lib.F90 into two files: a Fortran file used to
create the omp_lib module and a .h file that can be used
directly, which apparently some codes do. Because of the
split, and wanting to avoid forcing use isc_c_binding,
use int_ptr_kind()  instead of c_intptr_t.

Original-commit: flang-compiler/f18 at ce6a9fb17322608096c09f2b4d533f4e86d56b74
Reviewed-on: https://github.com/flang-compiler/f18/pull/690
Tree-same-pre-rewrite: false


  Commit: 9d5d73aa77de3fb3f2d973c362f34a7e2a652974
      https://github.com/llvm/llvm-project/commit/9d5d73aa77de3fb3f2d973c362f34a7e2a652974
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/module/omp_lib.h

  Log Message:
  -----------
  [flang] Reformat omp_lib.h

Original-commit: flang-compiler/f18 at 892d91b16172bf32323015e3ebf375f4e8943486
Reviewed-on: https://github.com/flang-compiler/f18/pull/690
Tree-same-pre-rewrite: false


  Commit: 142fed87c1d2d15a771be961d39e9fbfdc3d7c22
      https://github.com/llvm/llvm-project/commit/142fed87c1d2d15a771be961d39e9fbfdc3d7c22
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/module/omp_lib.h

  Log Message:
  -----------
  [flang] Clean up omp_lib.h

Original-commit: flang-compiler/f18 at 7119cd05344e3bdc871d6088a456561692122572
Reviewed-on: https://github.com/flang-compiler/f18/pull/690


  Commit: 20473b693938021eff61dd71ec4a67850fc41cec
      https://github.com/llvm/llvm-project/commit/20473b693938021eff61dd71ec4a67850fc41cec
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#690 from flang-compiler/pmk-sjs-omp-lib

Clean up `omp_lib.h` a bit

Original-commit: flang-compiler/f18 at e5830301bd4598e2318b9251abe7d5961117cb84
Reviewed-on: https://github.com/flang-compiler/f18/pull/690


  Commit: 911cb63719bed7f4ddae4f5ccdd21cc6f2c6f931
      https://github.com/llvm/llvm-project/commit/911cb63719bed7f4ddae4f5ccdd21cc6f2c6f931
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve20.f90

  Log Message:
  -----------
  [flang] Fix for segfault in invalid proc interface message

The segfault happened due to a missing argument.

Original-commit: flang-compiler/f18 at 8a4f49e86dd7969d13704ec2e5e755e1551319e6
Reviewed-on: https://github.com/flang-compiler/f18/pull/693


  Commit: 9de2bf6aa80225a67ef1b5632d4d1bf4f3ae8c7b
      https://github.com/llvm/llvm-project/commit/9de2bf6aa80225a67ef1b5632d4d1bf4f3ae8c7b
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#693 from kiranchandramohan/segfault_invalid_interface

Fix for segfault in invalid proc interface message

Original-commit: flang-compiler/f18 at 705c3532ef4a0410fcacb3474e7926b65d9a9808
Reviewed-on: https://github.com/flang-compiler/f18/pull/693


  Commit: 396a659413e07344c1825ab28a514a43cc73ed03
      https://github.com/llvm/llvm-project/commit/396a659413e07344c1825ab28a514a43cc73ed03
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve49.f90

  Log Message:
  -----------
  [flang] Resolve index in pointer assignment to array element

When the LHS of a pointer assignment is an array element, the
index must be resolved.

Fixed flang-compiler/f18#684.

Original-commit: flang-compiler/f18 at c39c7872d42e3490a2c862771893d3099202df63
Reviewed-on: https://github.com/flang-compiler/f18/pull/687


  Commit: a512e4241263bf3fdd3e3dc8adafa6d9e75906d9
      https://github.com/llvm/llvm-project/commit/a512e4241263bf3fdd3e3dc8adafa6d9e75906d9
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#687 from flang-compiler/tsk3

Resolve index in pointer assignment to array element

Original-commit: flang-compiler/f18 at e8e5cd52592aa54ebe0eb96774ca7a56024949f6
Reviewed-on: https://github.com/flang-compiler/f18/pull/687


  Commit: e3b5330fda4e38fca4a2219f115269dad1f90b1f
      https://github.com/llvm/llvm-project/commit/e3b5330fda4e38fca4a2219f115269dad1f90b1f
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Introduce IsNamedConstant to hide attr::PARAMETER details
for named constant that are actually enumerators.

Original-commit: flang-compiler/f18 at d9c4888b7219fb68715bab5c62eddfd947be8502
Reviewed-on: https://github.com/flang-compiler/f18/pull/689
Tree-same-pre-rewrite: false


  Commit: f23200963f7f605790c3bd6ba6d1048a02f2af3d
      https://github.com/llvm/llvm-project/commit/f23200963f7f605790c3bd6ba6d1048a02f2af3d
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/type.h
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/modfile31.f90
    A flang/test/semantics/resolve60.f90

  Log Message:
  -----------
  [flang] Simplify name resolution visitor for parser::Enumerator
Do not define a Pre and a Post, simply walk the expression
with Walk in Pre to resolve the names inside the expression
before evaluating it.

Original-commit: flang-compiler/f18 at b0e3c1691e58f968f01e9aa6d622e6f31c04f13b
Reviewed-on: https://github.com/flang-compiler/f18/pull/689
Tree-same-pre-rewrite: false


  Commit: 93aefc3940dcc4a39f2b5aac42c98489f90c0f9c
      https://github.com/llvm/llvm-project/commit/93aefc3940dcc4a39f2b5aac42c98489f90c0f9c
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Address comments: Update comments

Original-commit: flang-compiler/f18 at 63086132442a5bf8470ae605e466dae7704af81b
Reviewed-on: https://github.com/flang-compiler/f18/pull/689
Tree-same-pre-rewrite: false


  Commit: d93f493438f2b7294d1874ea4d1d7de5b83bea3c
      https://github.com/llvm/llvm-project/commit/d93f493438f2b7294d1874ea4d1d7de5b83bea3c
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve60.f90

  Log Message:
  -----------
  [flang] Address comment: store current enum value in an int
During enumerator name resolution, instead of keeping the current
enumerator value inside an expression, fold it to an int and keep
it as an int. This is clearer and will be easier if one wants to
provide some enum type size optimization.

Original-commit: flang-compiler/f18 at 4e49d5396c5ff475b1f329e9fc349cc336574c50
Reviewed-on: https://github.com/flang-compiler/f18/pull/689
Tree-same-pre-rewrite: false


  Commit: 296b0d9374a98ee16903722936be41add49de2a5
      https://github.com/llvm/llvm-project/commit/296b0d9374a98ee16903722936be41add49de2a5
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/tools.h

  Log Message:
  -----------
  [flang] Remove unused function after last commit

Original-commit: flang-compiler/f18 at 029fbf64c2400847a42a4c7cf26c553592f4ee10
Reviewed-on: https://github.com/flang-compiler/f18/pull/689


  Commit: 2cc505d11b01025c1314ef9bfaa48a6fc0909b8e
      https://github.com/llvm/llvm-project/commit/2cc505d11b01025c1314ef9bfaa48a6fc0909b8e
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#689 from flang-compiler/jpr-fix-667

Implement ENUM name resolution

Original-commit: flang-compiler/f18 at d4fd6bf95a298c46ee7f75d28743dfcd121a12cb
Reviewed-on: https://github.com/flang-compiler/f18/pull/689


  Commit: 0a85616b071dd4e382f692c6d9803bf3948579ac
      https://github.com/llvm/llvm-project/commit/0a85616b071dd4e382f692c6d9803bf3948579ac
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] update validity check for `OmpNowait`.

Because now we set the flag for `End` directives that accept clauses,
no need to check the specific directives anymore.

Original-commit: flang-compiler/f18 at a5cdc4b035fe6237bff46252e21ac84d2df59393


  Commit: ffb88549cb1704cb528fe17d175e4ed5d8d81634
      https://github.com/llvm/llvm-project/commit/ffb88549cb1704cb528fe17d175e4ed5d8d81634
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] add Begin and End Directive matching check

Straightforward check for Begin and End directive of:
1. Block related constructs
2. Loop related constructs (End directive is optional)
3. Sections related constructs

Original-commit: flang-compiler/f18 at d0436f13eeddf9d44c669a53fa0eb42d00650826


  Commit: f6273d7194651d4d7572cebe55b9e362ac938c99
      https://github.com/llvm/llvm-project/commit/f6273d7194651d4d7572cebe55b9e362ac938c99
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] structural checks for `PARALLEL SECTIONS`

Original-commit: flang-compiler/f18 at c18452159d462c98c6a888c272e24ea9d54032f4


  Commit: 23a7f387417fd1e8637db283ce5d96243ebcb7d6
      https://github.com/llvm/llvm-project/commit/23a7f387417fd1e8637db283ce5d96243ebcb7d6
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h

  Log Message:
  -----------
  [flang] [OpenMP] flang-compiler/f18#691 Update on Tim and Varun's review

Change CheckMatching to return `beginDir`, which hides the unnecessary
`std::get<>` for `endDir`.

Original-commit: flang-compiler/f18 at d9689e10f47f344d2f321c0635eb6dcf38e649ca


  Commit: 6e4c8b88c58a5d911160197065a3b9000b8cf03b
      https://github.com/llvm/llvm-project/commit/6e4c8b88c58a5d911160197065a3b9000b8cf03b
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    A flang/documentation/OpenMP-semantics.md

  Log Message:
  -----------
  [flang] Create OpenMP-semantics.md

Initial markdown document.

Original-commit: flang-compiler/f18 at 787a0ca058dcfb3e0fe67262547d133773ed7d3a
Reviewed-on: https://github.com/flang-compiler/f18/pull/692
Tree-same-pre-rewrite: false


  Commit: 12c9b9429b731dab69351b99eed2eb007bbc112e
      https://github.com/llvm/llvm-project/commit/12c9b9429b731dab69351b99eed2eb007bbc112e
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/documentation/OpenMP-semantics.md

  Log Message:
  -----------
  [flang] Update OpenMP-semantics.md

Repond to review comments about grammar and formatting.

Original-commit: flang-compiler/f18 at 4811ea2b94627d16e7b7108bf75b582984355182
Reviewed-on: https://github.com/flang-compiler/f18/pull/692
Tree-same-pre-rewrite: false


  Commit: 67a5f04be819ab7340f99315ad438a423500fc57
      https://github.com/llvm/llvm-project/commit/67a5f04be819ab7340f99315ad438a423500fc57
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:
    M flang/documentation/OpenMP-semantics.md

  Log Message:
  -----------
  [flang] Update OpenMP-semantics.md

Item 4 can be removed since we decided to keep the code in Semantics.

Original-commit: flang-compiler/f18 at 7377a61345c20c379453676ae6069e30ff9ae14d
Reviewed-on: https://github.com/flang-compiler/f18/pull/692
Tree-same-pre-rewrite: false


  Commit: d33a5652a8be61c459c5e8205e3267938aba493c
      https://github.com/llvm/llvm-project/commit/d33a5652a8be61c459c5e8205e3267938aba493c
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-30 (Fri, 30 Aug 2019)

  Changed paths:
    M flang/documentation/OpenMP-semantics.md

  Log Message:
  -----------
  [flang] Update OpenMP-semantics.md

Formatting changes.

Original-commit: flang-compiler/f18 at 007b3e31d30853ed2f44ac3b7c6a311739e7804e
Reviewed-on: https://github.com/flang-compiler/f18/pull/692


  Commit: e6e1b0ba2bf462dbae5ebe6e61fd8f3394f57faa
      https://github.com/llvm/llvm-project/commit/e6e1b0ba2bf462dbae5ebe6e61fd8f3394f57faa
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-08-30 (Fri, 30 Aug 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#692 from flang-compiler/sjs-omp-doc

Create OpenMP-semantics.md

Original-commit: flang-compiler/f18 at 0948d3d1919ad30b22da9511204b547b1b56da75
Reviewed-on: https://github.com/flang-compiler/f18/pull/692


  Commit: 93aa7a86400bff0d23b36d57789f82bbfe8f6ae9
      https://github.com/llvm/llvm-project/commit/93aa7a86400bff0d23b36d57789f82bbfe8f6ae9
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-02 (Mon, 02 Sep 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Add support and documentation for DREAL.

Original-commit: flang-compiler/f18 at 5b6a2dc26ccd4faf56543ccb616a22d86812aa02
Reviewed-on: https://github.com/flang-compiler/f18/pull/705


  Commit: fff45a620a54262800eba4178e674740009d2cd2
      https://github.com/llvm/llvm-project/commit/fff45a620a54262800eba4178e674740009d2cd2
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-03 (Tue, 03 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#705 from flang-compiler/sjs-dreal

Add support and documentation for DREAL.

Original-commit: flang-compiler/f18 at e14461455f562ca788933d327ee6da58333d1f6f
Reviewed-on: https://github.com/flang-compiler/f18/pull/705


  Commit: 689e6ee7b618a0d2d6876b879826dc6409e3f09d
      https://github.com/llvm/llvm-project/commit/689e6ee7b618a0d2d6876b879826dc6409e3f09d
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-02 (Mon, 02 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc

  Log Message:
  -----------
  [flang] Fold more cases of cmplx and dcmplx.

Original-commit: flang-compiler/f18 at 57401319b04514c123307758414377444e490522
Reviewed-on: https://github.com/flang-compiler/f18/pull/706


  Commit: 55d1fb1996ab5123af387774ac2888aaeb031e60
      https://github.com/llvm/llvm-project/commit/55d1fb1996ab5123af387774ac2888aaeb031e60
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#706 from flang-compiler/sjs-cmplx

Fold more cases of cmplx and dcmplx.

Original-commit: flang-compiler/f18 at e42947dcde7342e39dc7c117b5c978e6d35720fd
Reviewed-on: https://github.com/flang-compiler/f18/pull/706


  Commit: 9f49ffb94f705a32b91966aa8673572558c4fbfc
      https://github.com/llvm/llvm-project/commit/9f49ffb94f705a32b91966aa8673572558c4fbfc
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve36.f90

  Log Message:
  -----------
  [flang] Fix declaration of module procedure subprograms

Names of subprograms declared with MODULE PROCEDURE in a submodule
were not found correctly. The fix is to separate the handling of
these from other subprograms. The subprogram being defined must have
been declared in the same module or an ancestor module/submodule.

Fixes flang-compiler/f18#709

Original-commit: flang-compiler/f18 at 80b635d34355d657a807e7f276b8d40d191bcef9
Reviewed-on: https://github.com/flang-compiler/f18/pull/710


  Commit: 6970974c4e596827bfac545b041f1df99e05439e
      https://github.com/llvm/llvm-project/commit/6970974c4e596827bfac545b041f1df99e05439e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#710 from flang-compiler/tsk-issue709

Fix declaration of module procedure subprograms

Original-commit: flang-compiler/f18 at b56bc365bb57fb5d810da6e54409066ade35d9c8
Reviewed-on: https://github.com/flang-compiler/f18/pull/710


  Commit: cc07c43a84bf12b9c215c3583e3429637aebeb53
      https://github.com/llvm/llvm-project/commit/cc07c43a84bf12b9c215c3583e3429637aebeb53
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/resolve61.f90

  Log Message:
  -----------
  [flang] Name resolution for Cray pointers

Resolve the pointer and pointee names in a `BasedPointerStmt` and
enforce some of the constraints on them. There are still some
constraints to be implemented, mainly about what kind of attributes
the pointers and pointees can have.

The rules for these are a little vague. I mostly followed
- Cray Fortran Reference Manual section 9.3.2
- https://gcc.gnu.org/onlinedocs/gfortran/Cray-pointers.html
- VSI Fortran for OpenVMS Language Reference Manual section B.11

Note that the first two use the term "Cray pointer" but the last does
not. That is confusing because you have to know from context whether
it is referring to Cray pointers or Fortran pointers, so I used
"Cray pointer" and "Cray pointee" in error messages to refer to the
two names in the pointer statement.

Original-commit: flang-compiler/f18 at cabb112be2922ee2be9e29cfedcc30053c9a2864
Reviewed-on: https://github.com/flang-compiler/f18/pull/697


  Commit: 5d2f12074b387b0ebbbc236f51482a59bf5835f1
      https://github.com/llvm/llvm-project/commit/5d2f12074b387b0ebbbc236f51482a59bf5835f1
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#697 from flang-compiler/tsk-crayptr

Name resolution for Cray pointers

Original-commit: flang-compiler/f18 at a18c5ebed0910bc9492614c2ded5b66f7f89ae9f
Reviewed-on: https://github.com/flang-compiler/f18/pull/697


  Commit: f1212c660650debb2d5c5dd068643bcd22ea0183
      https://github.com/llvm/llvm-project/commit/f1212c660650debb2d5c5dd068643bcd22ea0183
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-03 (Tue, 03 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] Implement semantic checking for TASKLOOP

Original-commit: flang-compiler/f18 at a8e65f2c2d27cc9584ed493d822fa44d514edc37
Reviewed-on: https://github.com/flang-compiler/f18/pull/688


  Commit: 26b18f5217626cfd25f2d31f5ba52198490de4c3
      https://github.com/llvm/llvm-project/commit/26b18f5217626cfd25f2d31f5ba52198490de4c3
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#688 from DavidTruby/taskloop

Implement semantic checking for TASKLOOP

Original-commit: flang-compiler/f18 at a5786851fab78aa03e3155922589fa259e600574
Reviewed-on: https://github.com/flang-compiler/f18/pull/688


  Commit: 658cf65249d6617757f1b8fdc7d418cef686ac87
      https://github.com/llvm/llvm-project/commit/658cf65249d6617757f1b8fdc7d418cef686ac87
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc

  Log Message:
  -----------
  [flang] [OpenMP] Expand full sets for `do`, `simd`, and `do simd`

Original-commit: flang-compiler/f18 at 1f5bbeb3ea18456425804198fa03aeb8026a207b


  Commit: 77ed1df8a796ce6bd44bac3a47a2104a5b75d3cf
      https://github.com/llvm/llvm-project/commit/77ed1df8a796ce6bd44bac3a47a2104a5b75d3cf
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h

  Log Message:
  -----------
  [flang] [OpenMP] fix type for `Final` clause

The type should be `ScalarLogicalExpr`.

Original-commit: flang-compiler/f18 at 97e4282d7c05d38ebfbdc1ac661dc5d629278d0a


  Commit: c4fa8b867e700a46534028e61a9e8ff90c51678e
      https://github.com/llvm/llvm-project/commit/c4fa8b867e700a46534028e61a9e8ff90c51678e
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] Add structural checks for `TASK`

1. fix `OmpIfClause` on `Task`
2. add structural checks

Original-commit: flang-compiler/f18 at a77830a191989d7885337cf6182ac82ccf9c5ae9


  Commit: e902c1d6b7d07ac3816adb2f95ba42f9ebc615a7
      https://github.com/llvm/llvm-project/commit/e902c1d6b7d07ac3816adb2f95ba42f9ebc615a7
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] enable check for `IF` clause modifier

Original-commit: flang-compiler/f18 at f56fe4a3895a6ac444b45ad80b433c4dbeca4bbe


  Commit: d1bbccf1d565b47529e9eb5b70fe1836a4a747bb
      https://github.com/llvm/llvm-project/commit/d1bbccf1d565b47529e9eb5b70fe1836a4a747bb
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-declarative-directive.f90

  Log Message:
  -----------
  [flang] [OpenMP] update `declare simd` directive with exclusive set

Original-commit: flang-compiler/f18 at dc1bd8edc6968f8505429a9cba5db707c2d647d8


  Commit: 5c543da53ac25408e4f160bc71840c11027739eb
      https://github.com/llvm/llvm-project/commit/5c543da53ac25408e4f160bc71840c11027739eb
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] add structural checks for `TASKLOOP SIMD`

Original-commit: flang-compiler/f18 at 21b4dde276fa9a19fe5046b608c5eea1a7610d37


  Commit: bc52fc19222dd425eca1c2be26993297b817e11d
      https://github.com/llvm/llvm-project/commit/bc52fc19222dd425eca1c2be26993297b817e11d
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] [OpenMP] extend `IF` clause to accept modifier on composite/combined constructs

Original-commit: flang-compiler/f18 at 03302a15468bf9920618a2103d1e4fe45d6dc388


  Commit: d7443b5ad2e420a39002610ed32b2ce9e3808145
      https://github.com/llvm/llvm-project/commit/d7443b5ad2e420a39002610ed32b2ce9e3808145
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc

  Log Message:
  -----------
  [flang] Add missing include for unordered_map

Original-commit: flang-compiler/f18 at a9aadfb6071a4823caa39179ec1b69ca44a21a0f


  Commit: 9dcbed47351e4128e63f58d58f7cacf7f93ec207
      https://github.com/llvm/llvm-project/commit/9dcbed47351e4128e63f58d58f7cacf7f93ec207
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    A flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Extract Calls.md into its own branch.

Original-commit: flang-compiler/f18 at 8a5a2c99dc7336f0790d7127224d16efc4e041cb
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 700448d39c412e39c6b1dbd03f58b6bffca27697
      https://github.com/llvm/llvm-project/commit/700448d39c412e39c6b1dbd03f58b6bffca27697
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] More writing

Original-commit: flang-compiler/f18 at f475086c0c20b02f6793a298d0f4ad15dfdeda50
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: d732d10b80c30f032811d712eed095e54bd4c130
      https://github.com/llvm/llvm-project/commit/d732d10b80c30f032811d712eed095e54bd4c130
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] more writing

Original-commit: flang-compiler/f18 at a067cca183197a4f004aed1649f368f50115cc30
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 311300b15d0790b80189feb7b70cf3d666118311
      https://github.com/llvm/llvm-project/commit/311300b15d0790b80189feb7b70cf3d666118311
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-23 (Fri, 23 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] more writing

Original-commit: flang-compiler/f18 at 16a8b0065a6e31cbce5a28b5230df1aff8968cab
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 0c3a9424229f19c426b2570b205da3c05bd9c8dc
      https://github.com/llvm/llvm-project/commit/0c3a9424229f19c426b2570b205da3c05bd9c8dc
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] trampolines

Original-commit: flang-compiler/f18 at 3e9cebe8dce2039942d06f63af7798f4503b1e7d
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 1e90c6b9486594b770fc3967e8be4ff33e843fd0
      https://github.com/llvm/llvm-project/commit/1e90c6b9486594b770fc3967e8be4ff33e843fd0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] naming

Original-commit: flang-compiler/f18 at c3673287f8904e8a6ab32eb42fba9fac4e959ed7
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: e9c6ab361572169eaaf3fb1e9757e386547579f6
      https://github.com/llvm/llvm-project/commit/e9c6ab361572169eaaf3fb1e9757e386547579f6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] refine naming

Original-commit: flang-compiler/f18 at a4888a08cd18f0ed0219b88ba9a43122c1e2d229
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: a000beae7143ce2970686fcd6188401117ef09a5
      https://github.com/llvm/llvm-project/commit/a000beae7143ce2970686fcd6188401117ef09a5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] fix typo, add examples

Original-commit: flang-compiler/f18 at e0964fe07691265b2a1b74847ba2fb323b816278
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: fe7ea5325f2fed706f0ff30654bd9d0290c852fd
      https://github.com/llvm/llvm-project/commit/fe7ea5325f2fed706f0ff30654bd9d0290c852fd
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Address some review comments

Original-commit: flang-compiler/f18 at 5666998b0fb8826d96b2272b6d13c5379b45adb2
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 6d7fef5cd0dcedec4bff2256db45b76b0e30ed7e
      https://github.com/llvm/llvm-project/commit/6d7fef5cd0dcedec4bff2256db45b76b0e30ed7e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] More research

Original-commit: flang-compiler/f18 at 1e2b0be07f6accac15028c8fd9c676d6199d760f
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: c6041dfecfcf7356dd293ae19a35aac5a7919083
      https://github.com/llvm/llvm-project/commit/c6041dfecfcf7356dd293ae19a35aac5a7919083
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Enumerate semantics checks

Original-commit: flang-compiler/f18 at 3ddf31109adfa7cb313c8909982d6f87773e9a68
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: c236c8377519ce0729f261934405e21dc307a2b8
      https://github.com/llvm/llvm-project/commit/c236c8377519ce0729f261934405e21dc307a2b8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-27 (Tue, 27 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Resolve some TODOs

Original-commit: flang-compiler/f18 at 3f3e9c9320f3bd6662378f500dfab3c47243e993
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: c71ba62c9fea8814e5cb344679e23eaa5b13a7f8
      https://github.com/llvm/llvm-project/commit/c71ba62c9fea8814e5cb344679e23eaa5b13a7f8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md
    M flang/runtime/descriptor.h

  Log Message:
  -----------
  [flang] Correct obsolete comment in descriptor.h

Original-commit: flang-compiler/f18 at 8ff52c493ade974a69943eb9438cee9ba05b43f1
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: a26bbed6d6a1d8f2360816f166927e5ed1c862d8
      https://github.com/llvm/llvm-project/commit/a26bbed6d6a1d8f2360816f166927e5ed1c862d8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Corrections and additions

Original-commit: flang-compiler/f18 at 000301fcf987192585dfa01ca62a96c1ce49557c
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: f4f44b90f00977870e545e5ff8d6447abdd99099
      https://github.com/llvm/llvm-project/commit/f4f44b90f00977870e545e5ff8d6447abdd99099
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Limitations on function results with assumed type parameters

Original-commit: flang-compiler/f18 at 4ba9fdb0eaa479486f2b808dea913fdb8b6a9aad
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 76337eb4cb07f20c63a9a3f5a110e8c09aedf649
      https://github.com/llvm/llvm-project/commit/76337eb4cb07f20c63a9a3f5a110e8c09aedf649
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Simplify by using the term F77ish

Original-commit: flang-compiler/f18 at 063d9dc6c82eb98b80f2687c27fd8671e6e4c31d
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 321fcad0a9206bb14f929c32c8ae7cb8fc4a3558
      https://github.com/llvm/llvm-project/commit/321fcad0a9206bb14f929c32c8ae7cb8fc4a3558
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] address review comments

Original-commit: flang-compiler/f18 at 793c15fd04a5f922ea80fede5f21a895f27c969e
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 9469ce8aeb90e1f61e11462e29dea463e291970e
      https://github.com/llvm/llvm-project/commit/9469ce8aeb90e1f61e11462e29dea463e291970e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-08-29 (Thu, 29 Aug 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] refinements

Original-commit: flang-compiler/f18 at a4de8161f934f6c134a8c5736a4a191591bcbf86
Reviewed-on: https://github.com/flang-compiler/f18/pull/683
Tree-same-pre-rewrite: false


  Commit: 7f9922203f924ee66802363e1d7acb22793c3488
      https://github.com/llvm/llvm-project/commit/7f9922203f924ee66802363e1d7acb22793c3488
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:
    M flang/documentation/Calls.md

  Log Message:
  -----------
  [flang] Review comments

Original-commit: flang-compiler/f18 at 376359d456e120c037b21779ea9b8bdae6ab5b39
Reviewed-on: https://github.com/flang-compiler/f18/pull/683


  Commit: c036e834200afed6d002d9a587fd737fb55e6652
      https://github.com/llvm/llvm-project/commit/c036e834200afed6d002d9a587fd737fb55e6652
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-06 (Fri, 06 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#683 from flang-compiler/pmk-call-doc

Requirements and first draft design for procedure call protocol

Original-commit: flang-compiler/f18 at 9e3ab7d32f8a550cfc46c3f556aa3f01fe9c8acf
Reviewed-on: https://github.com/flang-compiler/f18/pull/683


  Commit: 28e8f7a9fd51c40b8551c935c0141b7a061e93a6
      https://github.com/llvm/llvm-project/commit/28e8f7a9fd51c40b8551c935c0141b7a061e93a6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    A flang/documentation/ArrayComposition.md

  Log Message:
  -----------
  [flang] Jot down thoughts on array expr and intrinsic evaluation for Jean

Original-commit: flang-compiler/f18 at 83c72062d57f737955d8d3ebdfed4a08f5a9107b
Reviewed-on: https://github.com/flang-compiler/f18/pull/534
Tree-same-pre-rewrite: false


  Commit: f0778f0fe2ce5be9c3c09d397e356512059018f0
      https://github.com/llvm/llvm-project/commit/f0778f0fe2ce5be9c3c09d397e356512059018f0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/documentation/ArrayComposition.md

  Log Message:
  -----------
  [flang] edits

Original-commit: flang-compiler/f18 at 729cc19e0f8e18cd13026723df6578c7e786c9c4
Reviewed-on: https://github.com/flang-compiler/f18/pull/534
Tree-same-pre-rewrite: false


  Commit: e73a1d287ae70034d53a0ce64fafe733c118b986
      https://github.com/llvm/llvm-project/commit/e73a1d287ae70034d53a0ce64fafe733c118b986
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/documentation/ArrayComposition.md

  Log Message:
  -----------
  [flang] edits

Original-commit: flang-compiler/f18 at 07da944e4b9ab01880c3770d826ecf044958cad6
Reviewed-on: https://github.com/flang-compiler/f18/pull/534
Tree-same-pre-rewrite: false


  Commit: dca31ebe93e72c4cb044df8298614e3ee02ff129
      https://github.com/llvm/llvm-project/commit/dca31ebe93e72c4cb044df8298614e3ee02ff129
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/documentation/ArrayComposition.md

  Log Message:
  -----------
  [flang] More edits

Original-commit: flang-compiler/f18 at 6b9ce52250373644098930ee6f28cb4001095ba5
Reviewed-on: https://github.com/flang-compiler/f18/pull/534
Tree-same-pre-rewrite: false


  Commit: a56e5f0615299bb4e0615c1847a3e68e16c0877b
      https://github.com/llvm/llvm-project/commit/a56e5f0615299bb4e0615c1847a3e68e16c0877b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/documentation/ArrayComposition.md

  Log Message:
  -----------
  [flang] edits

Original-commit: flang-compiler/f18 at ff3cab0bb5585f5a4386146c9b7eb9a79be04385
Reviewed-on: https://github.com/flang-compiler/f18/pull/534
Tree-same-pre-rewrite: false


  Commit: e665f1d7d11a3b536c645d33e8c2c758fb32f1e6
      https://github.com/llvm/llvm-project/commit/e665f1d7d11a3b536c645d33e8c2c758fb32f1e6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/documentation/ArrayComposition.md

  Log Message:
  -----------
  [flang] More writing

Original-commit: flang-compiler/f18 at 8dce9cb7f0487c82f7f2a277e4bea6f7aa1fd3d2
Reviewed-on: https://github.com/flang-compiler/f18/pull/534


  Commit: 9bd23a1fcd96372cda32986365d37af94f33a400
      https://github.com/llvm/llvm-project/commit/9bd23a1fcd96372cda32986365d37af94f33a400
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#534 from flang-compiler/pmk-arr-comp

Jot down thoughts on array expr and intrinsic evaluation for Jean

Original-commit: flang-compiler/f18 at f9b1d69c00b2bbd39b4797998a6afb1e65de7210
Reviewed-on: https://github.com/flang-compiler/f18/pull/534


  Commit: db25a52fe754b4e28cfd0112f784f20f17c4b1d4
      https://github.com/llvm/llvm-project/commit/db25a52fe754b4e28cfd0112f784f20f17c4b1d4
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h

  Log Message:
  -----------
  [flang] [OpenMP] formalize `DEFAULTMAP` clause

OpenMP 4.5 only accepts `defaultmap(tofrom:scalar)`. The original implementation
only parses the entire `tofrom:scalar` string and does nothing else. This commit
makes it treat `tofrom` (`ImplicitBehavior`) and `scalar` (`VariableCategory`)
separately, which is clear and extendable for OpenMP 5.0 Spec.

Original-commit: flang-compiler/f18 at 12074dcd2cb65bdb97c9d48e4829288eac2dd732


  Commit: fa3410d5fb3dae2ec6c0ef028082e9bc7415c2d4
      https://github.com/llvm/llvm-project/commit/fa3410d5fb3dae2ec6c0ef028082e9bc7415c2d4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/lib/parser/char-buffer.h
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/parser/source.cc

  Log Message:
  -----------
  [flang] Clean out some dead code, improve naming & comments

Original-commit: flang-compiler/f18 at 349555556572d5d4f96c3e3c2878c666d4e71e2a
Reviewed-on: https://github.com/flang-compiler/f18/pull/715
Tree-same-pre-rewrite: false


  Commit: 73329265ffa72a07a5ae003146276b59b30df08f
      https://github.com/llvm/llvm-project/commit/73329265ffa72a07a5ae003146276b59b30df08f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/lib/common/interval.h
    M flang/lib/parser/char-buffer.h
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/parsing.h
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Implement provenance -> CharBlock map

Original-commit: flang-compiler/f18 at f2e7b6cd72d0f5e6e97c7a8c338ceeb2479ccf52
Reviewed-on: https://github.com/flang-compiler/f18/pull/715
Tree-same-pre-rewrite: false


  Commit: be799e4300d8461ae22123f5e4fd9e4eaee52872
      https://github.com/llvm/llvm-project/commit/be799e4300d8461ae22123f5e4fd9e4eaee52872
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/lib/parser/provenance.cc

  Log Message:
  -----------
  [flang] Check for having compiled the inverted map before using it

Original-commit: flang-compiler/f18 at cef90ee11e26a3d4428389770a222ab90455e650
Reviewed-on: https://github.com/flang-compiler/f18/pull/715
Tree-same-pre-rewrite: false


  Commit: 0208a7d400249e7fd9523a269f1ed68f8e42afe5
      https://github.com/llvm/llvm-project/commit/0208a7d400249e7fd9523a269f1ed68f8e42afe5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/lib/parser/provenance.h

  Log Message:
  -----------
  [flang] Remove needless include

Original-commit: flang-compiler/f18 at 5d2afd0ad37f82403c2445385aa76ab8b834ff36
Reviewed-on: https://github.com/flang-compiler/f18/pull/715


  Commit: 38891f8ee008ae1c1a5bd0340fb24239f92c100e
      https://github.com/llvm/llvm-project/commit/38891f8ee008ae1c1a5bd0340fb24239f92c100e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#715 from flang-compiler/pmk-prov-to-ccs

Implement a mapping from source file Provenances to cooked stream offsets

Original-commit: flang-compiler/f18 at f27eb362de3ee5325e77e3f30af41460c6c433c8
Reviewed-on: https://github.com/flang-compiler/f18/pull/715


  Commit: 8068d016db676af3571f571a991fe85950f50103
      https://github.com/llvm/llvm-project/commit/8068d016db676af3571f571a991fe85950f50103
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    A flang/test/semantics/call01.f90
    A flang/test/semantics/call02.f90
    A flang/test/semantics/call03.f90

  Log Message:
  -----------
  [flang] First three tests

Original-commit: flang-compiler/f18 at 600b5263b1d6fb5bb97749ac09b90f4195894283
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: 0e1259db7a56ed61fa142acf14507fd2ad6784e0
      https://github.com/llvm/llvm-project/commit/0e1259db7a56ed61fa142acf14507fd2ad6784e0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    A flang/test/semantics/call04.f90

  Log Message:
  -----------
  [flang] Add call04.f90 test

Original-commit: flang-compiler/f18 at 0b329380cdcb90c5cb740277be8c16426f17e212
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: 7ffe10c1fb49837418dec1666064ded3eefab673
      https://github.com/llvm/llvm-project/commit/7ffe10c1fb49837418dec1666064ded3eefab673
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    A flang/test/semantics/call05.f90
    A flang/test/semantics/call06.f90

  Log Message:
  -----------
  [flang] call06.f90

Original-commit: flang-compiler/f18 at 81b64dacaabd48868d4ca58280aa905a191c7e3b
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: c74f40f46ea7328b6c6349d96829f9c607982b75
      https://github.com/llvm/llvm-project/commit/c74f40f46ea7328b6c6349d96829f9c607982b75
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    A flang/test/semantics/call07.f90

  Log Message:
  -----------
  [flang] call07.f90

Original-commit: flang-compiler/f18 at a92307c3d6dba7221b2446b4e54e79212591845e
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: c3d35afd876308582cddd0d7ac994c9810d3180a
      https://github.com/llvm/llvm-project/commit/c3d35afd876308582cddd0d7ac994c9810d3180a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    A flang/test/semantics/call08.f90

  Log Message:
  -----------
  [flang] call08.f90

Original-commit: flang-compiler/f18 at 2bda489d4517a5b66e912a728e340ba0db5d3068
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: 7f52d94bf3e1654ecb72c818fbd6f55c4888e786
      https://github.com/llvm/llvm-project/commit/7f52d94bf3e1654ecb72c818fbd6f55c4888e786
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/test/semantics/call03.f90
    A flang/test/semantics/call09.f90

  Log Message:
  -----------
  [flang] call09.f90 and review comment

Original-commit: flang-compiler/f18 at bc2ac270c688f5a36f723d3fcd95e2d431880404
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: c19c1e5abd873020d17ba2f936899bd9bf5ae3c1
      https://github.com/llvm/llvm-project/commit/c19c1e5abd873020d17ba2f936899bd9bf5ae3c1
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    A flang/test/semantics/call10.f90
    A flang/test/semantics/call11.f90
    A flang/test/semantics/call12.f90

  Log Message:
  -----------
  [flang] More tests

Original-commit: flang-compiler/f18 at 52e3b74f4eb29085e6ebff30d0b695b8cd8cf521
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: 5ea5fe9b1e6de1d25edd7a3a1dc771db3a6a8084
      https://github.com/llvm/llvm-project/commit/5ea5fe9b1e6de1d25edd7a3a1dc771db3a6a8084
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/test/semantics/call07.f90
    M flang/test/semantics/call10.f90
    M flang/test/semantics/call11.f90

  Log Message:
  -----------
  [flang] More tests

Original-commit: flang-compiler/f18 at bd5e95e40c179f4b462571074cebd107412ebe13
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: 99757783d2ce74e0f272fab754ab7b2b5dfcb0d5
      https://github.com/llvm/llvm-project/commit/99757783d2ce74e0f272fab754ab7b2b5dfcb0d5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/test/semantics/call10.f90

  Log Message:
  -----------
  [flang] Fix Fortran in call10.f90

Original-commit: flang-compiler/f18 at 8154a24232ad50344a6dd49c3983e8fe5e4c3a28
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: 9dee00eccc61a81f96927edb0e57b2ae17667321
      https://github.com/llvm/llvm-project/commit/9dee00eccc61a81f96927edb0e57b2ae17667321
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/test/semantics/call12.f90

  Log Message:
  -----------
  [flang] Finish test/semantics/call12.f90

Original-commit: flang-compiler/f18 at d002f0ce377de4b71fd15a0fdee87c013476e93b
Reviewed-on: https://github.com/flang-compiler/f18/pull/711
Tree-same-pre-rewrite: false


  Commit: bf6ba0ff189e5921809cc5a23639db15c72a4852
      https://github.com/llvm/llvm-project/commit/bf6ba0ff189e5921809cc5a23639db15c72a4852
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/test/semantics/call03.f90
    M flang/test/semantics/call12.f90

  Log Message:
  -----------
  [flang] Fix some Fortran and use existing messages for errors already caught.

Original-commit: flang-compiler/f18 at 2d360e78ea3a872501f05904ec39f3c3ea3172a4
Reviewed-on: https://github.com/flang-compiler/f18/pull/711


  Commit: 1a7c1c1dac9075e5867f9c36336b38c3feccc2da
      https://github.com/llvm/llvm-project/commit/1a7c1c1dac9075e5867f9c36336b38c3feccc2da
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#711 from flang-compiler/pmk-call-tests

Tests for call semantics

Original-commit: flang-compiler/f18 at 8fada8d5cd99e85bfe8c2fdd4defd7da36017ffc
Reviewed-on: https://github.com/flang-compiler/f18/pull/711


  Commit: de974041daa7120e5f1366d7aa53668155199404
      https://github.com/llvm/llvm-project/commit/de974041daa7120e5f1366d7aa53668155199404
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/test/semantics/call11.f90
    M flang/test/semantics/doconcurrent01.f90
    M flang/test/semantics/doconcurrent02.f90

  Log Message:
  -----------
  [flang] Fix expected error messages in tests to correspond with recent update to compiler

Original-commit: flang-compiler/f18 at 95202dd31384c042165184acd6ed2ec1c752ee0c
Reviewed-on: https://github.com/flang-compiler/f18/pull/721


  Commit: 89ff150e7cfedb7e877b24137d62bc4f8ead6db1
      https://github.com/llvm/llvm-project/commit/89ff150e7cfedb7e877b24137d62bc4f8ead6db1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#721 from flang-compiler/pmk-fix-errormsg

Fix expected error messages in tests to correspond with recent update…

Original-commit: flang-compiler/f18 at ffbc017c45527a3ac4825cbe33e732eee1f0ecee
Reviewed-on: https://github.com/flang-compiler/f18/pull/721


  Commit: 02a9cdb3fdb9cbf8868fd64da2cdf90b615db3ee
      https://github.com/llvm/llvm-project/commit/02a9cdb3fdb9cbf8868fd64da2cdf90b615db3ee
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/module/iso_fortran_env.f90

  Log Message:
  -----------
  [flang] Define iso_fortran_env error_unit.
Provisionally use a value of 0 to match PGI.

Original-commit: flang-compiler/f18 at ec7f0a0968d5552f9f95d1c24256d6fe40d36770
Reviewed-on: https://github.com/flang-compiler/f18/pull/722


  Commit: 7459d81d8db77037048c930d7f84739de62c14a3
      https://github.com/llvm/llvm-project/commit/7459d81d8db77037048c930d7f84739de62c14a3
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#722 from flang-compiler/sjs-error-unit

Define iso_fortran_env error_unit.

Original-commit: flang-compiler/f18 at cb1752d5cb3913c14d819b328be7ff36cd8a406d
Reviewed-on: https://github.com/flang-compiler/f18/pull/722


  Commit: 1343cf78f332512170ae8eb90fd2482e13ec0482
      https://github.com/llvm/llvm-project/commit/1343cf78f332512170ae8eb90fd2482e13ec0482
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-08-30 (Fri, 30 Aug 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/intrinsics-library.cc
    M flang/test/evaluate/folding02.f90

  Log Message:
  -----------
  [flang] Implement folding of x**y where y is real or complex
This was a TODO. The implementation uses the host runtime
function pow, either from libm or libpgmath.

Original-commit: flang-compiler/f18 at ee581121120fe67a0990b8a41663b85b868035a7
Reviewed-on: https://github.com/flang-compiler/f18/pull/699
Tree-same-pre-rewrite: false


  Commit: 45820f4caaaea8d031397cff1d92841597c81301
      https://github.com/llvm/llvm-project/commit/45820f4caaaea8d031397cff1d92841597c81301
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics-library.cc

  Log Message:
  -----------
  [flang] address comment: add ',' for better formatting

Original-commit: flang-compiler/f18 at 0c854999853463b2113d672836cb343e98ae1c61
Reviewed-on: https://github.com/flang-compiler/f18/pull/699


  Commit: af933e12c8dd237f1d382042bc5357109f34072d
      https://github.com/llvm/llvm-project/commit/af933e12c8dd237f1d382042bc5357109f34072d
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#699 from flang-compiler/jpr-fix-695

Implement folding of x**y where y is real or complex

Original-commit: flang-compiler/f18 at 0efc573230a2038f64597c11b0e1a733c5bf5fff
Reviewed-on: https://github.com/flang-compiler/f18/pull/699


  Commit: c1c83477ed2cc561f5053bd2a05013ac80d745d1
      https://github.com/llvm/llvm-project/commit/c1c83477ed2cc561f5053bd2a05013ac80d745d1
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Add storage_size intrinsic.

Original-commit: flang-compiler/f18 at bcde26a7c1373c3ccbcc8e216cf37c8b3530b06d
Reviewed-on: https://github.com/flang-compiler/f18/pull/723
Tree-same-pre-rewrite: false


  Commit: 654a86a277c2b86e58a414ffae0c33e6b522816f
      https://github.com/llvm/llvm-project/commit/654a86a277c2b86e58a414ffae0c33e6b522816f
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Update comment to reflect that STORAGE_SIZE is implemented.

Original-commit: flang-compiler/f18 at 3c2431bbf8025856bd19e2c7b66aaf06b6acdbfe
Reviewed-on: https://github.com/flang-compiler/f18/pull/723


  Commit: 4fd8ef1a163fe87c4e05ea8440d654fae3590334
      https://github.com/llvm/llvm-project/commit/4fd8ef1a163fe87c4e05ea8440d654fae3590334
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#723 from flang-compiler/sjs-storage-size

Add storage_size intrinsic.

Original-commit: flang-compiler/f18 at f2ffcfafd2b04703879581df8727b98ffb508ea3
Reviewed-on: https://github.com/flang-compiler/f18/pull/723


  Commit: f8cfc7cdf98037a39882b42ade2bd64da56dfaa4
      https://github.com/llvm/llvm-project/commit/f8cfc7cdf98037a39882b42ade2bd64da56dfaa4
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/module/ieee_exceptions.f90

  Log Message:
  -----------
  [flang] Fixed the declarations of IEEE_SUPPORT_FLAG and IEEE_SUPPORT_HALTING to
be functions rather than subroutines.  Note that Table 17.3 in the
standard summarizes the contents of IEEE_EXCEPTIONS with the details
specified in section 17.11.

Original-commit: flang-compiler/f18 at fca58d479d2ab4578a029980f5144d11a46d5e78
Reviewed-on: https://github.com/flang-compiler/f18/pull/730


  Commit: ada293fa6650cb240e81289cd6c280e2504e06d2
      https://github.com/llvm/llvm-project/commit/ada293fa6650cb240e81289cd6c280e2504e06d2
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#730 from flang-compiler/ps-issue725

Fixed the declarations of IEEE_SUPPORT_FLAG and IEEE_SUPPORT_HALTING

Original-commit: flang-compiler/f18 at 238b9ee459599e3803a1d536479a4a2d9dc09723
Reviewed-on: https://github.com/flang-compiler/f18/pull/730


  Commit: 73ef31b164cd829f2cc31ca037de0fddcc512287
      https://github.com/llvm/llvm-project/commit/73ef31b164cd829f2cc31ca037de0fddcc512287
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/dosemantics10.f90

  Log Message:
  -----------
  [flang] Changes to add an executable construct stack
I added a stack of ExecutableConstruct's to SemanticsContext along with
functions to push and pop constructs.  I added code to the SemanticsVisitor
to use these new functions.  I also added functions Pre and Post functions
for UnlabeledStatement's so that we could isolate the source positions for
statements embedded in "if" statements to improve error messages.

I also added code to check-do.[h,cc] to use this new infrastructure to check
for CYCLE and EXIT statements that are not contained within DO constructs
along with a test.

Original-commit: flang-compiler/f18 at b8370bdeb899791b9c841a7bd86e61412a92af22
Reviewed-on: https://github.com/flang-compiler/f18/pull/686
Tree-same-pre-rewrite: false


  Commit: eedbe90e7247a483bbbf6b4c086c1f0ad487eaa3
      https://github.com/llvm/llvm-project/commit/eedbe90e7247a483bbbf6b4c086c1f0ad487eaa3
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/semantics/dosemantics10.f90

  Log Message:
  -----------
  [flang] Responses to review comments and team meeting

The most significant change is that I replaced the stack of
ExecutableConstruct's with a stack composed of ConstructNode's, each of which
is a variant of the constructs that made up the type ExecutableConstruct.  This
change allows the nodes of the stack to be extended to include the types needed
for OMP semantic checking.

I also extended the existing test to include some correct DO loops with CYCLE
and EXIT statements to test the code more completely.

Original-commit: flang-compiler/f18 at d26f34e3a4cf72f1b6c56ececf24afa7a6299ffd
Reviewed-on: https://github.com/flang-compiler/f18/pull/686
Tree-same-pre-rewrite: false


  Commit: 9cc2f8300bc59961bf33e31a7d628f16a230e40c
      https://github.com/llvm/llvm-project/commit/9cc2f8300bc59961bf33e31a7d628f16a230e40c
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h

  Log Message:
  -----------
  [flang] Responses to review comments

I changed the interface of ```PushConstruct()``` to take an rvalue reference as its only parameter and made the construction of the ```ConstructNode```s explicit in all of the ```Pre()``` functions for the various construct types.

Original-commit: flang-compiler/f18 at f8be813874ac7a8021bd5e8138c7b421e166ea22
Reviewed-on: https://github.com/flang-compiler/f18/pull/686
Tree-same-pre-rewrite: false


  Commit: 74112759c3d0bc1dff66ef408556a00f2fc949d1
      https://github.com/llvm/llvm-project/commit/74112759c3d0bc1dff66ef408556a00f2fc949d1
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h

  Log Message:
  -----------
  [flang] Changed ```PushConstruct()``` to be a template, which moves the implicit
creation of the ```ConstructNode``` into ```PushConstruct()```.

Original-commit: flang-compiler/f18 at 3984566858743c1b18a7a53cb899e68bf951154a
Reviewed-on: https://github.com/flang-compiler/f18/pull/686
Tree-same-pre-rewrite: false


  Commit: 97d7b398e4da89bbfb18b1232d6e1b8474fe683c
      https://github.com/llvm/llvm-project/commit/97d7b398e4da89bbfb18b1232d6e1b8474fe683c
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/semantics.cc

  Log Message:
  -----------
  [flang] Combined the implementations to ```Pre()``` and ```Post()``` functions that
call `PushConstruct()``` and ```PopConstruct()``` following a genius
suggestion from Peter.

Original-commit: flang-compiler/f18 at be2a03ebf479be8eda2529e6c47a7d44a073c455
Reviewed-on: https://github.com/flang-compiler/f18/pull/686


  Commit: df632a4cbc0206cc6cfee1b280ba7e2be7313fce
      https://github.com/llvm/llvm-project/commit/df632a4cbc0206cc6cfee1b280ba7e2be7313fce
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#686 from flang-compiler/ps-stmt-stack

Changes to add an executable construct stack

Original-commit: flang-compiler/f18 at 2fc28c75386ee70e01a21533ee18bc1cba149e4c
Reviewed-on: https://github.com/flang-compiler/f18/pull/686


  Commit: 34f07e50c0e4aa1789be89056953d24191f446ee
      https://github.com/llvm/llvm-project/commit/34f07e50c0e4aa1789be89056953d24191f446ee
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/call.h
    M flang/lib/semantics/check-io.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/semantics.cc

  Log Message:
  -----------
  [flang] commit to switch branches

Some groundwork

Original-commit: flang-compiler/f18 at 64ebeb511cc823e8ea7ad9647d0475542930f506
Reviewed-on: https://github.com/flang-compiler/f18/pull/732
Tree-same-pre-rewrite: false


  Commit: 2ae26b850136dc52e90d82b92b0985dc44056edc
      https://github.com/llvm/llvm-project/commit/2ae26b850136dc52e90d82b92b0985dc44056edc
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call01.f90
    M flang/test/semantics/call02.f90
    M flang/test/semantics/call03.f90
    M flang/test/semantics/call04.f90
    M flang/test/semantics/call05.f90
    M flang/test/semantics/call06.f90
    M flang/test/semantics/call07.f90
    M flang/test/semantics/call08.f90
    M flang/test/semantics/call09.f90
    M flang/test/semantics/call10.f90
    M flang/test/semantics/call11.f90
    M flang/test/semantics/call12.f90

  Log Message:
  -----------
  [flang] Check recursive calls for NON_RECURSIVE and assumed-length CHARACTER(*)

Original-commit: flang-compiler/f18 at 92777f8f669284ecd0fc4f73bd20f82e148ceba3
Reviewed-on: https://github.com/flang-compiler/f18/pull/732
Tree-same-pre-rewrite: false


  Commit: 9db810f5e335fe712d8b957f09eda74e78555e70
      https://github.com/llvm/llvm-project/commit/9db810f5e335fe712d8b957f09eda74e78555e70
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/CMakeLists.txt
    A flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/semantics/call01.f90

  Log Message:
  -----------
  [flang] Add static declaration checker; get call01.f90 to pass

Original-commit: flang-compiler/f18 at 7cc5bc76174d36c90b8273b0a892a229d8787af2
Reviewed-on: https://github.com/flang-compiler/f18/pull/732
Tree-same-pre-rewrite: false


  Commit: 67eb35d970e98f00dcfcc3fc1ac5a585e9d0e9c0
      https://github.com/llvm/llvm-project/commit/67eb35d970e98f00dcfcc3fc1ac5a585e9d0e9c0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    A flang/lib/semantics/check-declarations.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h

  Log Message:
  -----------
  [flang] Address review comment

Original-commit: flang-compiler/f18 at 65dc8d4996b74148a06bc73d59c318a2bf38fe07
Reviewed-on: https://github.com/flang-compiler/f18/pull/732


  Commit: 98a74083471830013341ef58578adb1e3b9eed50
      https://github.com/llvm/llvm-project/commit/98a74083471830013341ef58578adb1e3b9eed50
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#732 from flang-compiler/pmk-call

Begin semantic checks for calls

Original-commit: flang-compiler/f18 at 4d6ae6fab014b3e7c48572e2f843425f0796721b
Reviewed-on: https://github.com/flang-compiler/f18/pull/732


  Commit: f9ed573b1dad6eb8078983b71cba0653a4c8550e
      https://github.com/llvm/llvm-project/commit/f9ed573b1dad6eb8078983b71cba0653a4c8550e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/parser/basic-parsers.h
    M flang/lib/parser/grammar.h

  Log Message:
  -----------
  [flang] Recover better from syntax errors on USE statements

Original-commit: flang-compiler/f18 at 29968698d9afe367de92d536e54a048cc998b359
Reviewed-on: https://github.com/flang-compiler/f18/pull/731


  Commit: 99fb2cfc2f8c6a1114b21a4014773c11631893c9
      https://github.com/llvm/llvm-project/commit/99fb2cfc2f8c6a1114b21a4014773c11631893c9
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-11 (Wed, 11 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#731 from flang-compiler/pmk-fix-728

Recover better from syntax errors on USE statements

Original-commit: flang-compiler/f18 at 2c45d65b88e1cffa59d0eafa08c5ee5762a86155
Reviewed-on: https://github.com/flang-compiler/f18/pull/731


  Commit: 2f205a5f5251098cbd04861e2386a5708e664b76
      https://github.com/llvm/llvm-project/commit/2f205a5f5251098cbd04861e2386a5708e664b76
  Author: Tin Huynh <tinlun123 at gmail.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/getdefinition01.f90
    A flang/test/semantics/getdefinition02.f
    A flang/test/semantics/getdefinition03-a.f90
    A flang/test/semantics/getdefinition03-b.f90
    A flang/test/semantics/getsymbols01.f90
    A flang/test/semantics/getsymbols02-a.f90
    A flang/test/semantics/getsymbols02-b.f90
    A flang/test/semantics/getsymbols02-c.f90
    A flang/test/semantics/getsymbols03-a.f90
    A flang/test/semantics/getsymbols03-b.f90
    M flang/test/semantics/test_any.sh
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Added -fget-definitions and -fget-all-symbols.

- -fget-definitions finds the definition of the symbol under specified source
position.
- -fget-all-symbols finds definition locations of all symbols in a document. For
symbols found in other modules, shows which module the symbol came from.
- Tests.
- New structure SourcePosition with file, line, column information.

Original-commit: flang-compiler/f18 at e0099b0900b47ff1d8903c2462bb8a42ecc7999b
Reviewed-on: https://github.com/flang-compiler/f18/pull/698
Tree-same-pre-rewrite: false


  Commit: 69fd49a00229d1491b2e5887eb0ace4440ccd339
      https://github.com/llvm/llvm-project/commit/69fd49a00229d1491b2e5887eb0ace4440ccd339
  Author: Tin Huynh <tinlun123 at gmail.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/parser/source.cc
    M flang/lib/parser/source.h
    M flang/lib/semantics/semantics.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/getdefinition04.f90
    A flang/test/semantics/getdefinition05.f90
    M flang/test/semantics/getsymbols01.f90
    A flang/test/semantics/getsymbols04.f90
    A flang/test/semantics/getsymbols05.f90
    M flang/test/semantics/test_any.sh
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] FindOffsetLineAndColumn also uses SourcePosition.

New tests for COMMON and BLOCK.
Added CHECK-ONCE to test_any.sh. Make sure pattern only occurs once.

Original-commit: flang-compiler/f18 at ad82dafcf905c521904a0120462ad1636917fc8c
Reviewed-on: https://github.com/flang-compiler/f18/pull/698
Tree-same-pre-rewrite: false


  Commit: 2e1807998c9d41006ad4f1f38e3412ac3f23b587
      https://github.com/llvm/llvm-project/commit/2e1807998c9d41006ad4f1f38e3412ac3f23b587
  Author: Tin Huynh <tinlun123 at gmail.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/parser/source.h
    M flang/lib/semantics/semantics.cc
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Using new Prov to Cooked mappings for get-definition.

Original-commit: flang-compiler/f18 at 5a42c5c9e19c5a56fdc256db56d32e3564e72765
Reviewed-on: https://github.com/flang-compiler/f18/pull/698


  Commit: 2deefe166c1e2f534c07fb82879b02f8c68e21bf
      https://github.com/llvm/llvm-project/commit/2deefe166c1e2f534c07fb82879b02f8c68e21bf
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-11 (Wed, 11 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#698 from tinlun/master

Added -fget-definition and -fget-symbols-sources.

Original-commit: flang-compiler/f18 at 24caaea2bf729fdc46d29981b10c668d92b0ccb9
Reviewed-on: https://github.com/flang-compiler/f18/pull/698


  Commit: 62e4acf23271c1c7b0026a25faf8339e57c7c2c9
      https://github.com/llvm/llvm-project/commit/62e4acf23271c1c7b0026a25faf8339e57c7c2c9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-11 (Wed, 11 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve05.f90
    M flang/test/semantics/resolve20.f90

  Log Message:
  -----------
  [flang] Allow module, submodule, and program names to be used as local identifiers.  Check for USE of m in m.

Original-commit: flang-compiler/f18 at 9abfd9e45001bba6f5e4b5a6e08674ce92789052
Reviewed-on: https://github.com/flang-compiler/f18/pull/737
Tree-same-pre-rewrite: false


  Commit: bd2bf58e7a82cfbb15c11c73a2373cdc4bbe09eb
      https://github.com/llvm/llvm-project/commit/bd2bf58e7a82cfbb15c11c73a2373cdc4bbe09eb
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-11 (Wed, 11 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Extend comments

Original-commit: flang-compiler/f18 at 9f918c2559698a893aaa917dc7b109c226c6d49f
Reviewed-on: https://github.com/flang-compiler/f18/pull/737


  Commit: 05f75ac01fc0c32774ec96d221d571309c2b8100
      https://github.com/llvm/llvm-project/commit/05f75ac01fc0c32774ec96d221d571309c2b8100
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-11 (Wed, 11 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#737 from flang-compiler/pmk-m-in-m

Allow module, submodule, and program names to be used as local identi…

Original-commit: flang-compiler/f18 at ffc90d0b1c352ddb55e346469061a6b775e51803
Reviewed-on: https://github.com/flang-compiler/f18/pull/737


  Commit: 48659b1eb0d537291f93af516938d6f2acddd297
      https://github.com/llvm/llvm-project/commit/48659b1eb0d537291f93af516938d6f2acddd297
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-11 (Wed, 11 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc
    M flang/test/evaluate/folding05.f90

  Log Message:
  -----------
  [flang] Add NEW_LINE intrinsic to the intrinsic table
NEW_LINE intrinsic folding was already implemented but it had not
yet been added the the intrinsic table and was therefore not yet
recognised an intrinsic.
Add related tests.

Original-commit: flang-compiler/f18 at 42fcf5b5f1e63267a024afaad39f012982c8abc1
Reviewed-on: https://github.com/flang-compiler/f18/pull/734


  Commit: ea7652a251b936bb67664902f097e2e0e29c6fbe
      https://github.com/llvm/llvm-project/commit/ea7652a251b936bb67664902f097e2e0e29c6fbe
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#734 from flang-compiler/jpr-fix-700

Add NEW_LINE intrinsic to the intrinsic table

Original-commit: flang-compiler/f18 at 9c10e02d396f3e1ce7cd636fc58f3093abc3c53a
Reviewed-on: https://github.com/flang-compiler/f18/pull/734


  Commit: c93ceeeef7047c9062af2edbc8b5035b053cfe9e
      https://github.com/llvm/llvm-project/commit/c93ceeeef7047c9062af2edbc8b5035b053cfe9e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc

  Log Message:
  -----------
  [flang] Improve error message (add types)

Original-commit: flang-compiler/f18 at 48b8f32d516e38cfd80f4759c4b78a08a24ebdf3
Reviewed-on: https://github.com/flang-compiler/f18/pull/738
Tree-same-pre-rewrite: false


  Commit: 988749e8f39e99a621dd5f1f6195a1f4e1e95782
      https://github.com/llvm/llvm-project/commit/988749e8f39e99a621dd5f1f6195a1f4e1e95782
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix bug flang-compiler/f18#735

Original-commit: flang-compiler/f18 at dccb16d492685cbe02771c2f78a60cbd46fc1bac
Reviewed-on: https://github.com/flang-compiler/f18/pull/738
Tree-same-pre-rewrite: false


  Commit: 8fc7824feb3e293951b4244ce4071c48f4f06c28
      https://github.com/llvm/llvm-project/commit/8fc7824feb3e293951b4244ce4071c48f4f06c28
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:
    M flang/test/semantics/symbol09.f90

  Log Message:
  -----------
  [flang] tweak test results

Original-commit: flang-compiler/f18 at 360c6717e790b7160655677e6f160c4d467383f8
Reviewed-on: https://github.com/flang-compiler/f18/pull/738


  Commit: 722ffc3e2dd9b5c1f9da15098c2d7a7bb6c9539f
      https://github.com/llvm/llvm-project/commit/722ffc3e2dd9b5c1f9da15098c2d7a7bb6c9539f
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#738 from flang-compiler/pmk-fix-735

Fix bug flang-compiler/f18#735

Original-commit: flang-compiler/f18 at 675ccd4208cc6061b7e3fe9b6c02441ceaea2e06
Reviewed-on: https://github.com/flang-compiler/f18/pull/738


  Commit: f2917c777bafdd81fbec8c7d1681ed30a4e71f8d
      https://github.com/llvm/llvm-project/commit/f2917c777bafdd81fbec8c7d1681ed30a4e71f8d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/real.cc

  Log Message:
  -----------
  [flang] Do not emit a bogus exponent (0.e-1)

Original-commit: flang-compiler/f18 at 3d0b13d7ed146eae2641a4e6218d353314c7496f
Reviewed-on: https://github.com/flang-compiler/f18/pull/736


  Commit: a443fdcb6af33342facb43cf26dd30e037e14c33
      https://github.com/llvm/llvm-project/commit/a443fdcb6af33342facb43cf26dd30e037e14c33
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#736 from flang-compiler/pmk-fix-expo

Do not emit a bogus exponent on zero (0.e-1)

Original-commit: flang-compiler/f18 at ab19f2e9a7a9daa57ed1c1767cc182bf7fff98e6
Reviewed-on: https://github.com/flang-compiler/f18/pull/736


  Commit: 5676797c2aa46a40224e8ce91dd6ae3dac288706
      https://github.com/llvm/llvm-project/commit/5676797c2aa46a40224e8ce91dd6ae3dac288706
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M flang/lib/semantics/symbol.cc
    M flang/test/semantics/procinterface01.f90
    M flang/test/semantics/symbol01.f90
    M flang/test/semantics/symbol02.f90
    M flang/test/semantics/symbol03.f90
    M flang/test/semantics/symbol05.f90
    M flang/test/semantics/symbol06.f90
    M flang/test/semantics/symbol07.f90
    M flang/test/semantics/symbol08.f90
    M flang/test/semantics/symbol09.f90
    M flang/test/semantics/symbol10.f90
    M flang/test/semantics/symbol11.f90
    M flang/test/semantics/symbol12.f90
    M flang/test/semantics/symbol13.f90
    M flang/test/semantics/symbol14.f90
    M flang/test/semantics/symbol15.f90
    M flang/test/semantics/symbol16.f90

  Log Message:
  -----------
  [flang] Improve flag dumping for -funparse-with-symbols

Original-commit: flang-compiler/f18 at 768fb1b36925c1e1ed563562ef01146c2bba4b2b


  Commit: 9c3a9375be62e16c899b9be093c6c7e6c240ba35
      https://github.com/llvm/llvm-project/commit/9c3a9375be62e16c899b9be093c6c7e6c240ba35
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call02.f90
    M flang/test/semantics/procinterface01.f90
    M flang/test/semantics/resolve59.f90

  Log Message:
  -----------
  [flang] Implement checks for test/semantics/call02.f90

Original-commit: flang-compiler/f18 at 38eaaa72fffe1b1f2fccec97a1a2a428f47da98f
Reviewed-on: https://github.com/flang-compiler/f18/pull/745
Tree-same-pre-rewrite: false


  Commit: 1c10d963aa02b51b3e8e565d26a6c17bf06ff915
      https://github.com/llvm/llvm-project/commit/1c10d963aa02b51b3e8e565d26a6c17bf06ff915
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/call01.f90
    M flang/test/semantics/call02.f90
    M flang/test/semantics/call04.f90
    M flang/test/semantics/call05.f90
    M flang/test/semantics/call06.f90
    M flang/test/semantics/call10.f90
    M flang/test/semantics/call11.f90
    M flang/test/semantics/call12.f90
    M flang/test/semantics/expr-errors01.f90
    M flang/test/semantics/omp-nested01.f90
    M flang/test/semantics/resolve05.f90

  Log Message:
  -----------
  [flang] Remove periods from the ends of messages, per review comment

Original-commit: flang-compiler/f18 at 0ce32de0d62be7e6eb447fde074e661011b6fc1c
Reviewed-on: https://github.com/flang-compiler/f18/pull/745


  Commit: f9f0ff19787de5d5ab8d16909bc8f43819e504ad
      https://github.com/llvm/llvm-project/commit/f9f0ff19787de5d5ab8d16909bc8f43819e504ad
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#745 from flang-compiler/pmk-call

Implement checks for test/semantics/call02.f90

Original-commit: flang-compiler/f18 at 45604a2d72d5d541b5de68aadb482d2f06d2c66a
Reviewed-on: https://github.com/flang-compiler/f18/pull/745


  Commit: 4b30ecf11c6f68c2ff5eb1451b2c58e1a364e9bd
      https://github.com/llvm/llvm-project/commit/4b30ecf11c6f68c2ff5eb1451b2c58e1a364e9bd
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Semantic checks for target construct

Original-commit: flang-compiler/f18 at 373391bc03359e11a80022f5058c5e91ec08cd0a
Reviewed-on: https://github.com/flang-compiler/f18/pull/719
Tree-same-pre-rewrite: false


  Commit: 9527a188163aac5ade622ad2ca492448bbd83018
      https://github.com/llvm/llvm-project/commit/9527a188163aac5ade622ad2ca492448bbd83018
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Added tofrom:scalar check for defaultmap clause

Original-commit: flang-compiler/f18 at 1025649b647f670aa05d7779319591440dae6c27
Reviewed-on: https://github.com/flang-compiler/f18/pull/719
Tree-same-pre-rewrite: false


  Commit: da26e76078d35100d444219e6dc4eb1a8419ced8
      https://github.com/llvm/llvm-project/commit/da26e76078d35100d444219e6dc4eb1a8419ced8
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-11 (Wed, 11 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Changed missing tofrom:scalar error message to be more descriptive

Original-commit: flang-compiler/f18 at 18e0a55a026f96e7afecafedd385efa697391ac2
Reviewed-on: https://github.com/flang-compiler/f18/pull/719


  Commit: 6f9ae14b27c356db6aa81f03cd2a1445a2272ed7
      https://github.com/llvm/llvm-project/commit/6f9ae14b27c356db6aa81f03cd2a1445a2272ed7
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-14 (Sat, 14 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#719 from DavidTruby/target

Semantic checks for target construct

Original-commit: flang-compiler/f18 at 2752d09c3a7f599c27de14fcef3846f9db39e97e
Reviewed-on: https://github.com/flang-compiler/f18/pull/719


  Commit: d43405e4e6d4af8fe5e1d660ceed05f74bb62633
      https://github.com/llvm/llvm-project/commit/d43405e4e6d4af8fe5e1d660ceed05f74bb62633
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-12 (Thu, 12 Sep 2019)

  Changed paths:
    M flang/lib/semantics/symbol.cc
    M flang/test/semantics/resolve17.f90

  Log Message:
  -----------
  [flang] Fix bug merging generics on USE

When we use-associate the same generic name from two different modules
they are merged together. If the same specific procedure occurs in both
generics it should only occur once in the merged one.

Similarly, it's not an error if they both have a derived type or
specific procedure named the same as the generic, as long as they are
the same symbol.

Fixes flang-compiler/f18#733.

Original-commit: flang-compiler/f18 at d37db076914ea40aece502b13b9059dc4c1b319b
Reviewed-on: https://github.com/flang-compiler/f18/pull/741
Tree-same-pre-rewrite: false


  Commit: f13cf9f0ed7f5d9b7247973c53dac96380da08ca
      https://github.com/llvm/llvm-project/commit/f13cf9f0ed7f5d9b7247973c53dac96380da08ca
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve17.f90

  Log Message:
  -----------
  [flang] Better handling of merged generics

If a generic name is use-associated from two different modules and they
both have a specific procedure or both have a derived type with the same
name, report it as an error.

Original-commit: flang-compiler/f18 at 42369af96d3cca7ca2050592e728e04de8124bd8
Reviewed-on: https://github.com/flang-compiler/f18/pull/741
Tree-same-pre-rewrite: false


  Commit: 4fde74a1c86d64c8e0c522f3a45e6926f0893c59
      https://github.com/llvm/llvm-project/commit/4fde74a1c86d64c8e0c522f3a45e6926f0893c59
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M flang/lib/semantics/symbol.cc

  Log Message:
  -----------
  [flang] Address review comment

Original-commit: flang-compiler/f18 at 134190f75e0481a63fe97343977bb3fe895c9a5c
Reviewed-on: https://github.com/flang-compiler/f18/pull/741


  Commit: a10899f7296dc6792456f7b22afb9e2ef8386304
      https://github.com/llvm/llvm-project/commit/a10899f7296dc6792456f7b22afb9e2ef8386304
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#741 from flang-compiler/tsk-issue733

Fix bug merging generics on USE

Original-commit: flang-compiler/f18 at 5cedc81d15960f3a7349781d3f5f555abb0692c9
Reviewed-on: https://github.com/flang-compiler/f18/pull/741


  Commit: ce8b500d57cac7abb98b71cbb90e442eed843b2f
      https://github.com/llvm/llvm-project/commit/ce8b500d57cac7abb98b71cbb90e442eed843b2f
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/tools.cc
    M flang/test/semantics/modfile03.f90

  Log Message:
  -----------
  [flang] Refactoring

Eliminate two of the three overloadings of `Scope::MakeDerivedType()`.
Keep the one that has `Category` first because that's the order the
constructor of `DeclTypeSpec` uses.

In `mod-file.cc`, eliminate some calls to `PutLower()`. Symbols and
names are already lower case so they don't need to be converted.

In `modfile03.f90`, move the expected `.mod` file comments to right
after the corresponding modules. That makes it easier to work with.

Original-commit: flang-compiler/f18 at 86874d9bf8398391d3c24b0f0c8ed6c1e2c88185
Reviewed-on: https://github.com/flang-compiler/f18/pull/740
Tree-same-pre-rewrite: false


  Commit: 0b86ab186d593c1c4e61f3586a4b0d2b3b07f8a7
      https://github.com/llvm/llvm-project/commit/0b86ab186d593c1c4e61f3586a4b0d2b3b07f8a7
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/test/semantics/modfile03.f90

  Log Message:
  -----------
  [flang] Fix renames in module files

When a module contains a use-association with rename, we have to be
careful to use the correct name (i.e. the local-name, not the use-name)
when writing out its `.mod` file.

When analyzing a `Name` in an expression, follow the use-association
for details, attributes, and constant values; but if we need to make a
`Designator` or `ProcedureDesignator`, use the local name.

Original-commit: flang-compiler/f18 at 8f07b803e141e34b3e512f8f02ef228186abe80f
Reviewed-on: https://github.com/flang-compiler/f18/pull/740
Tree-same-pre-rewrite: false


  Commit: a29678ddb67a4131d7c72d76d29a55f2f950ef84
      https://github.com/llvm/llvm-project/commit/a29678ddb67a4131d7c72d76d29a55f2f950ef84
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/formatting.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h
    M flang/test/semantics/modfile03.f90
    M flang/test/semantics/symbol06.f90

  Log Message:
  -----------
  [flang] Fix bugs with use-associated derived type with rename

When a derived type is use-associated with a rename, like
`use m, only: t2 => t1`
we need to record in the `DerivedTypeSpec` both the local-name in this
scope and the symbol for the derived type.

In most cases we need to work the the type symbol and its
`DerivedTypeDetails`, but when writing the type to the module file
we need the local-name. The name of the type symbol may be hidden
or not use-associated.

When analyzing a `parser::Name` we don't want to follow use-associations
because we could end up with the wrong name in a `DataRef` (i.e. the
use-name rather than the local-name). But that means that
`GetNamedConstantValue()` does have to follow them or named constants
won't always be folded.

Fixes flang-compiler/f18#729.

Original-commit: flang-compiler/f18 at 50d8921c6909d913774b4630b51bd3eb30ee34fc
Reviewed-on: https://github.com/flang-compiler/f18/pull/740


  Commit: fe221123224d1f4df94a8739493b9b0f0aaef298
      https://github.com/llvm/llvm-project/commit/fe221123224d1f4df94a8739493b9b0f0aaef298
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#740 from flang-compiler/tsk5

Fix bugs with use-association renames

Original-commit: flang-compiler/f18 at 61d5c7a8c1caaf38b32bea32554c7691af5764f8
Reviewed-on: https://github.com/flang-compiler/f18/pull/740


  Commit: ca8630845384d6a3ecd0b1653bcf31076ba75a06
      https://github.com/llvm/llvm-project/commit/ca8630845384d6a3ecd0b1653bcf31076ba75a06
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve59.f90

  Log Message:
  -----------
  [flang] Prevent RESULT name from being the same as the function.
Fix flang-compiler/f18#726.
Add test and error messsage for such scenario and set error on the
result symbol because it is unclear what it is inside the function.

Original-commit: flang-compiler/f18 at a3d5b5af0d4a2537e2cd1cf84cae16e622d2c50c
Reviewed-on: https://github.com/flang-compiler/f18/pull/743
Tree-same-pre-rewrite: false


  Commit: ba89315523a7e49d423b8351b3c27d59343b2b7b
      https://github.com/llvm/llvm-project/commit/ba89315523a7e49d423b8351b3c27d59343b2b7b
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve59.f90

  Log Message:
  -----------
  [flang] Address comment: make error a warning instead and ignore RESULT
Instead of emitting an error when RESULT has the same name as the
function, emit a warning and ignore RESULT in the rest of the
compilation.

Original-commit: flang-compiler/f18 at 8ce3862d39cee904b719ed68752237b20d9e154f
Reviewed-on: https://github.com/flang-compiler/f18/pull/743


  Commit: ac761ca21acdf41b34dd0033422cd20fcc69a774
      https://github.com/llvm/llvm-project/commit/ac761ca21acdf41b34dd0033422cd20fcc69a774
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-09-17 (Tue, 17 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#743 from flang-compiler/jpr-fix-726

Prevent RESULT name from being the same as the function name

Original-commit: flang-compiler/f18 at 648d6b9eeaac17134ec5850493a3e60d7c7ad09b
Reviewed-on: https://github.com/flang-compiler/f18/pull/743


  Commit: bb1127efb689782e6fe8fceceb835d7abf8e9584
      https://github.com/llvm/llvm-project/commit/bb1127efb689782e6fe8fceceb835d7abf8e9584
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-09-18 (Wed, 18 Sep 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] [OpenMP] Simplify `OmpObject` with `std::variant`

Instead of using an `ENUM_CLASS Kind` to distinguish a `Designator`
or common-block name, change it to `std::variant`. If the `Name`
is available, then it is common-block name.

Original-commit: flang-compiler/f18 at abf5db6171bc57eeddb58d22cd09e2344b023cad


  Commit: b506f39f1895511a2895f043b4756db3ebad05d5
      https://github.com/llvm/llvm-project/commit/b506f39f1895511a2895f043b4756db3ebad05d5
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-18 (Wed, 18 Sep 2019)

  Changed paths:
    M flang/test/semantics/test_any.sh

  Log Message:
  -----------
  [flang] Clean up temp dirs

A temp directory is created in `common.sh` and it is cleaned up by
`trap ... EXIT`. If the test script has its own trap, as this one does,
it seems to replace the first one. So the cleanup from `common.sh` was
not being executed when the `%t` feature was used and empty temp
directories were being left in the directory where the tests ran.

Since we already have a temp directory that is cleaned up, just use
that for `%t` and don't bother with another `mktemp`.

Original-commit: flang-compiler/f18 at f61d62ddec011c1a6462ece12af29c5f0b16e60a
Reviewed-on: https://github.com/flang-compiler/f18/pull/754


  Commit: e525afbb216190d92da37f56509bbf562df99eb7
      https://github.com/llvm/llvm-project/commit/e525afbb216190d92da37f56509bbf562df99eb7
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-19 (Thu, 19 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#754 from flang-compiler/tsk6

Clean up temp dirs

Original-commit: flang-compiler/f18 at 6e8f90127adf6bdce291f35ec28cf3054c727f0d
Reviewed-on: https://github.com/flang-compiler/f18/pull/754


  Commit: 493a135a56c4e50106550dad824c20e850149aa8
      https://github.com/llvm/llvm-project/commit/493a135a56c4e50106550dad824c20e850149aa8
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-19 (Thu, 19 Sep 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names-utils.h
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/modfile07.f90
    M flang/test/semantics/resolve11.f90
    M flang/test/semantics/resolve25.f90
    M flang/test/semantics/resolve38.f90

  Log Message:
  -----------
  [flang] Handle alternative names for relational operators

10.1.6.2 says:
> The operators <, <=, >, >=, ==, and /= always have the same interpretations
> as the operators .LT., .LE., .GT., .GE., .EQ., and .NE., respectively.
That means we have to treat `operator(<)` like `operator(.lt.)`,
for example. `<>` is a third alias for `.NE.`.

We can't just choose always to use one form (e.g. replacing `operator(.lt.)`
with `operator(<)`). This is because all symbols names are `CharBlock`s
referring to the cooked character stream so that they have proper source
provenance. Also, if a user prefers one style and uses it consistently,
that's the form they should see in messages.

So the fix is to use whatever form is found in the source, but also to
look up symbols by the other names when necessary. To assist this, add
`GenericSpecInfo::GetAllNames()` to return all of the names of a generic
spec. Each place a generic spec can occur we have to use these to look
for the symbol.

Also reorganize the `AddUse()` overloads to work with this change.

Fixes flang-compiler/f18#746.

Original-commit: flang-compiler/f18 at 7f06f175d5033f0728f67b1be25ecd53df1f8de5
Reviewed-on: https://github.com/flang-compiler/f18/pull/752


  Commit: 3165e0b5b224b51f67452ed2eb25af0ae58b5272
      https://github.com/llvm/llvm-project/commit/3165e0b5b224b51f67452ed2eb25af0ae58b5272
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-19 (Thu, 19 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#752 from flang-compiler/tsk-issue746

Handle alternative names for relational operators

Original-commit: flang-compiler/f18 at c448c2b1a59876e60db7134dda3594f6a991c2ef
Reviewed-on: https://github.com/flang-compiler/f18/pull/752


  Commit: d8fc41f61282217b6e7aaf644c094ab184a6e11d
      https://github.com/llvm/llvm-project/commit/d8fc41f61282217b6e7aaf644c094ab184a6e11d
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/intrinsics.cc
    M flang/test/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Allow more argument types in some specific intrinsic
Fix flang-compiler/f18#724.
Allow all type kinds for arguments in restricted specific conversion
intrinisc (no warning, this is ubiquitous).
Allow MAX/MIN restricted intrinsic (AMAX0...) to be replaced by the
related generic foolowed by a type conversion to the expected result
type of the specific. Emit a warning because xlf and ifort are doing so
but pgfortran is converting the arguments instead.

Original-commit: flang-compiler/f18 at c07adb94ed2b2b46284d6a4a4b23c4189ea1d936
Reviewed-on: https://github.com/flang-compiler/f18/pull/749
Tree-same-pre-rewrite: false


  Commit: 9a01a4915eda91300ffcdf5e7ecb7048c3969e10
      https://github.com/llvm/llvm-project/commit/9a01a4915eda91300ffcdf5e7ecb7048c3969e10
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-17 (Tue, 17 Sep 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Address editorial comments and use oxford comma

Original-commit: flang-compiler/f18 at 88a8d1be035b8aacab277526ebc09802cf22e176
Reviewed-on: https://github.com/flang-compiler/f18/pull/749
Tree-same-pre-rewrite: false


  Commit: 00c02c469ce69dedce9cbec802465866586de5b7
      https://github.com/llvm/llvm-project/commit/00c02c469ce69dedce9cbec802465866586de5b7
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-18 (Wed, 18 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Refactor IntrinsicProcTable::Implementation::Probe for readability

Original-commit: flang-compiler/f18 at 4a7211e42bfc1d709246b13cc659356d738edd45
Reviewed-on: https://github.com/flang-compiler/f18/pull/749
Tree-same-pre-rewrite: false


  Commit: cd15ba5360512a4c7c139d2c77a707195edd20e4
      https://github.com/llvm/llvm-project/commit/cd15ba5360512a4c7c139d2c77a707195edd20e4
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-09-18 (Wed, 18 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/host.cc
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Fix typos and style in some comments

Original-commit: flang-compiler/f18 at 621ded353f6179045e8fc4c18ef13a4aa05293b9
Reviewed-on: https://github.com/flang-compiler/f18/pull/749


  Commit: 505b214493e2d9c6422fa9bb6db21f5e0a9cbee0
      https://github.com/llvm/llvm-project/commit/505b214493e2d9c6422fa9bb6db21f5e0a9cbee0
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#749 from flang-compiler/jpr-fix-724-2

Allow more argument types in some specific intrinsic

Original-commit: flang-compiler/f18 at e379451c7f319b0bb811022af269f7ad45b190ac
Reviewed-on: https://github.com/flang-compiler/f18/pull/749


  Commit: ab1231451408a5649f6b26981a226945f6b63f45
      https://github.com/llvm/llvm-project/commit/ab1231451408a5649f6b26981a226945f6b63f45
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/doconcurrent05.f90
    M flang/test/semantics/doconcurrent06.f90
    M flang/test/semantics/dosemantics10.f90
    A flang/test/semantics/dosemantics11.f90

  Log Message:
  -----------
  [flang] Implementation of semantic checks C1135, C1167, and C1168

These constraints state that CYCLE and EXIT statements should not leave DO
CONCURRENT, CRITICAL, or CHANGE TEAM constructs.

I added checking code to check-do.cc and removed some superseded code from
check-do.cc and semantics.cc.  The new code uses the construct stack
implemented in my previous pull request.

I also added a new test -- dosemantics11.f90 and modified the tests
dosemantics10.f90, doconcurrent05.f90, and doconcurrent06.f90 to adapt to
the new error messages.  I converted these latter two tests to use
test_error.sh since they only reported errors.

Original-commit: flang-compiler/f18 at b0bea7da64ee73a66a761b851d9e1f922ac94e16
Reviewed-on: https://github.com/flang-compiler/f18/pull/756
Tree-same-pre-rewrite: false


  Commit: e0eee884b21cbcc8407d445b7d337e68d402e6c6
      https://github.com/llvm/llvm-project/commit/e0eee884b21cbcc8407d445b7d337e68d402e6c6
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M flang/lib/common/template.h
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/dosemantics10.f90
    M flang/test/semantics/dosemantics11.f90

  Log Message:
  -----------
  [flang] Responses to a comments in my previous pull request.

Original-commit: flang-compiler/f18 at e0d73a45ac0f6de78bfa9db18d730b11555dcfc0
Reviewed-on: https://github.com/flang-compiler/f18/pull/756
Tree-same-pre-rewrite: false


  Commit: 33b208e48769bc6cf2b707e763d9d65c71cd21e0
      https://github.com/llvm/llvm-project/commit/33b208e48769bc6cf2b707e763d9d65c71cd21e0
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-24 (Tue, 24 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h

  Log Message:
  -----------
  [flang] More responses to comments in the pull request.  The big change was to
implement an enum class to indicate whether the statement being checked
is a CYCLE or EXIT statement.  This change rippled through a few
interfaces, resulting in cleaner, more readable code.  Thanks for the
tip, Tim!

Original-commit: flang-compiler/f18 at e167c3d39fa95c93f402a0bfdf916dc10dbd80e1
Reviewed-on: https://github.com/flang-compiler/f18/pull/756
Tree-same-pre-rewrite: false


  Commit: ea1cf9ee0b8bb6d464a254659f6badefded0759a
      https://github.com/llvm/llvm-project/commit/ea1cf9ee0b8bb6d464a254659f6badefded0759a
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-24 (Tue, 24 Sep 2019)

  Changed paths:
    M flang/lib/common/template.h
    M flang/lib/semantics/check-do.cc

  Log Message:
  -----------
  [flang] More responses to pull request comments.

Original-commit: flang-compiler/f18 at 0fb4cf1c9b3fe36e2c5075981e0d7ce61cb49aae
Reviewed-on: https://github.com/flang-compiler/f18/pull/756


  Commit: acda903be8f9d723fcf5b7725acb9e89da490599
      https://github.com/llvm/llvm-project/commit/acda903be8f9d723fcf5b7725acb9e89da490599
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#756 from flang-compiler/ps-do

Implementation of semantic checks C1135, C1167, and C1168

Original-commit: flang-compiler/f18 at e43377f999862e22ddd141f95d9988a1ad5da8a4
Reviewed-on: https://github.com/flang-compiler/f18/pull/756


  Commit: e9dda4f0f5794668f84371c375312e1879e9ffb3
      https://github.com/llvm/llvm-project/commit/e9dda4f0f5794668f84371c375312e1879e9ffb3
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/descender.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/fold.h
    M flang/lib/evaluate/traversal.h

  Log Message:
  -----------
  [flang] checkpoint

Original-commit: flang-compiler/f18 at 782f44fe7d1cc23f6edac4b18104f932a6884490
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: 9016b1d6a88a7de51f81d4a8ed2a378f5e1c0244
      https://github.com/llvm/llvm-project/commit/9016b1d6a88a7de51f81d4a8ed2a378f5e1c0244
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/descender.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/fold.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt

  Log Message:
  -----------
  [flang] checkpoint

Original-commit: flang-compiler/f18 at 96ade8e6e9004a3f556defbb6f252214c9e38459
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: 8d8e1c46040f7fb2e96358d4f8c0456f474e33d9
      https://github.com/llvm/llvm-project/commit/8d8e1c46040f7fb2e96358d4f8c0456f474e33d9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    A flang/test/semantics/expr-errors02.f90

  Log Message:
  -----------
  [flang] add test

Original-commit: flang-compiler/f18 at ad2fa9dfdf2da204ad1c9ef510133b8ba43b41aa
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: c36f7d916a44169a0f55ce7bd87a0b9cf1f8590b
      https://github.com/llvm/llvm-project/commit/c36f7d916a44169a0f55ce7bd87a0b9cf1f8590b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/semantics/expression.cc
    M flang/test/semantics/expr-errors02.f90

  Log Message:
  -----------
  [flang] progress

Original-commit: flang-compiler/f18 at b5e3e709cb0f9ee61124af3422372b01132e07be
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: 0bc6d134a69dc1752aef854e62089d8efc6a07b8
      https://github.com/llvm/llvm-project/commit/0bc6d134a69dc1752aef854e62089d8efc6a07b8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/CMakeLists.txt
    A flang/lib/evaluate/check-expression.cc
    A flang/lib/evaluate/check-expression.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/fold.h
    A flang/lib/evaluate/traverse.h
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/type.h
    M flang/test/semantics/expr-errors02.f90

  Log Message:
  -----------
  [flang] Repackaging; tests pass

Original-commit: flang-compiler/f18 at 1fa7bb7717a1feb2e93e40c907ffe49c10f45332
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: e6e66c022bbd7de7a8c15e04f24845f7b54691ec
      https://github.com/llvm/llvm-project/commit/e6e66c022bbd7de7a8c15e04f24845f7b54691ec
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/traverse.h

  Log Message:
  -----------
  [flang] Redo IsInitialDataTarget

Original-commit: flang-compiler/f18 at 988c38e1f53115291a5e2a0c7e059cbb42bf096b
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: 48fd773a1928541b5c0a7ee91d4822a76872bd8f
      https://github.com/llvm/llvm-project/commit/48fd773a1928541b5c0a7ee91d4822a76872bd8f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traverse.h
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Refinements; replace several clients of old Visitor with new Traverse

Original-commit: flang-compiler/f18 at 0b44a86e31c0c7f84cf0c8dcafbedfb5e0e09c9f
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: f07d6bc6bae459e908af9f94162e6bb8eb570d05
      https://github.com/llvm/llvm-project/commit/f07d6bc6bae459e908af9f94162e6bb8eb570d05
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h

  Log Message:
  -----------
  [flang] more conversions to Traverse

Original-commit: flang-compiler/f18 at e8668e23687f8cf0ae4a2300ed23a93a95b67470
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: fc5d127c1ccd177378b106dbbb9f55995efc48fc
      https://github.com/llvm/llvm-project/commit/fc5d127c1ccd177378b106dbbb9f55995efc48fc
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/check-expression.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    R flang/lib/evaluate/traversal.h

  Log Message:
  -----------
  [flang] Complete conversions, delete old visitor

Original-commit: flang-compiler/f18 at 6ce1da55c8f62f60a3f3727ce8f2d01394d4133b
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: 32f2ea0753e017a4a41775fce572700a7c00f213
      https://github.com/llvm/llvm-project/commit/32f2ea0753e017a4a41775fce572700a7c00f213
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/check-expression.h
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/traverse.h
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Build with all compilers * versions

Original-commit: flang-compiler/f18 at 7332caa613696aa61dad848d8ed5790294edc7b9
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: 686baf0b0eff7055ae285abe5e12f2c8ae21dc1e
      https://github.com/llvm/llvm-project/commit/686baf0b0eff7055ae285abe5e12f2c8ae21dc1e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/descender.h

  Log Message:
  -----------
  [flang] Remove dead code

Original-commit: flang-compiler/f18 at 4d90aad3614a00e0c37595a0643d1b282148c6cd
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: d8c9b50fd64351ff0f38ea8e0d89adbd034144a7
      https://github.com/llvm/llvm-project/commit/d8c9b50fd64351ff0f38ea8e0d89adbd034144a7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/lib/evaluate/check-expression.cc
    R flang/lib/evaluate/descender.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/traverse.h

  Log Message:
  -----------
  [flang] Prep for review

Original-commit: flang-compiler/f18 at 8be02a41c7e0312a95ee4ea399318eb20c45ccce
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: 9fd72e93938bd32557786a11d78f9da1fe26c260
      https://github.com/llvm/llvm-project/commit/9fd72e93938bd32557786a11d78f9da1fe26c260
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/check-expression.h
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/test/semantics/expr-errors02.f90

  Log Message:
  -----------
  [flang] Clean up test results

Original-commit: flang-compiler/f18 at 7d3180160c83577f7bfb108ac047ce18b6ab1166
Reviewed-on: https://github.com/flang-compiler/f18/pull/755
Tree-same-pre-rewrite: false


  Commit: ccb91afba7cb29ed695209d20c07e9e2a266ac22
      https://github.com/llvm/llvm-project/commit/ccb91afba7cb29ed695209d20c07e9e2a266ac22
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/traverse.h
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Address review comments

Original-commit: flang-compiler/f18 at 2393157d3fa9cdb870035986b6f56c81f481c4e7
Reviewed-on: https://github.com/flang-compiler/f18/pull/755


  Commit: b80a8dcc1f7e7784267aae6a9a74c6e59fe75a9f
      https://github.com/llvm/llvm-project/commit/b80a8dcc1f7e7784267aae6a9a74c6e59fe75a9f
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#755 from flang-compiler/pmk-spec-expr

Check specification expression constraints (10.1.11)

Original-commit: flang-compiler/f18 at 0c99f8dc8e583fd7425514cff0ce31bc8b1a13db
Reviewed-on: https://github.com/flang-compiler/f18/pull/755


  Commit: 55e241a72239445f261b1cf4771fca8a13b8d243
      https://github.com/llvm/llvm-project/commit/55e241a72239445f261b1cf4771fca8a13b8d243
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/traverse.h

  Log Message:
  -----------
  [flang] Fix build on OSX

Original-commit: flang-compiler/f18 at 453b03af1c594e32b1a3b6f994da5bfc9bc7eca7
Reviewed-on: https://github.com/flang-compiler/f18/pull/760


  Commit: 42c1c21300c8ed86bf260cc2e23d0484b013d5c2
      https://github.com/llvm/llvm-project/commit/42c1c21300c8ed86bf260cc2e23d0484b013d5c2
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#760 from flang-compiler/pmk-fix-build

Fix build on OSX

Original-commit: flang-compiler/f18 at 61dcae34429c0c49d05b0b0652f0811f56923d49
Reviewed-on: https://github.com/flang-compiler/f18/pull/760


  Commit: 73c630a4ea6ec613a4f34cc97a6121bdf26ccb51
      https://github.com/llvm/llvm-project/commit/73c630a4ea6ec613a4f34cc97a6121bdf26ccb51
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/parser/message.h
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/parsing.h
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/source.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/mod-file.h
    M flang/test/semantics/resolve12.f90
    M flang/test/semantics/resolve26.f90

  Log Message:
  -----------
  [flang] Improve module file reading and writing

Fix problems with writing a mod file while another compilation is
reading or writing. Write to a temp and then rename it:
- compute the new contents of the .mod file
- if it already exists, check if it is already correct
- if not, write new contents to a temp file
- rename the temp to the final destination

`mkstemps()` seems to be the best way to create the temp file.
It returns a file descriptor, so change the rest of the mod file
writing to use POSIX open/read/write/close. This seems to set
errno more reliably too.

There is some extra work around creating the temp to make it have
the same directory and suffix as the final file (so that if one gets
left behind by a crash, "rm *.mod" still cleans it up).
`mkstemps()` creates file with 0600 permissions so try to change it
to what it would have been if we just wrote the file.

Change module file reading to only read the file once; we used to
read it to verify the checksum and then again to parse it.
Instead, change `Parsing` so that we can get the file contents
after `Prescan()` and use that to verify the checksum. Also, it has
a mechanism for searching directories for files, so make use of that
instead of duplicating that functionality in `ModFileReader`.
This requires some changes to how errors are returned so they can
be reported in the right place.

Original-commit: flang-compiler/f18 at d0d54971a5547820f8ed0271eb9818557bc8bc82
Reviewed-on: https://github.com/flang-compiler/f18/pull/758
Tree-same-pre-rewrite: false


  Commit: 3ef61ec22672c145cc93675c98845b27d272b961
      https://github.com/llvm/llvm-project/commit/3ef61ec22672c145cc93675c98845b27d272b961
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/test/semantics/getdefinition01.f90
    M flang/test/semantics/getdefinition02.f
    M flang/test/semantics/getdefinition03-a.f90
    M flang/test/semantics/getdefinition03-b.f90
    M flang/test/semantics/getsymbols01.f90
    M flang/test/semantics/getsymbols02-a.f90
    M flang/test/semantics/getsymbols02-b.f90
    M flang/test/semantics/getsymbols02-c.f90
    M flang/test/semantics/getsymbols03-a.f90
    M flang/test/semantics/getsymbols03-b.f90

  Log Message:
  -----------
  [flang] Fix tests that use the same .mod file

The tests run by `test_any.sh` don't redirect their .mod files to
a different directory so they occasionally fail when the same file
is accessed by different tests at the same time. With locking of
module files implemented, this problem reproduces much more reliably

Work around it by changing the module names to be distinct. Also remove
some comments left over when copied from `test_symbols.sh` tests.

Original-commit: flang-compiler/f18 at f7b5c5f0fcbbac4736940761e6d43ec76a3a372a
Reviewed-on: https://github.com/flang-compiler/f18/pull/758


  Commit: fc3c6ee6079eacb32226027d3a39d19771a3ad12
      https://github.com/llvm/llvm-project/commit/fc3c6ee6079eacb32226027d3a39d19771a3ad12
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#758 from flang-compiler/tsk-modfiles

Improve module file reading and writing

Original-commit: flang-compiler/f18 at b5f48dfc461db37650a54aea3e29531b577fd871
Reviewed-on: https://github.com/flang-compiler/f18/pull/758


  Commit: 3a25e25bd74be9eadfc332a0438c890f432d5321
      https://github.com/llvm/llvm-project/commit/3a25e25bd74be9eadfc332a0438c890f432d5321
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-17 (Tue, 17 Sep 2019)

  Changed paths:
    M flang/documentation/C++style.md

  Log Message:
  -----------
  [flang] Update C++style.md

Add guidelines for error messages and commas.  Add a version number for clang-format. Add spaces before ### sections to restart numbering.

Original-commit: flang-compiler/f18 at 3e8db49f34e2dc47ce5b89af6099710f708f64c3
Reviewed-on: https://github.com/flang-compiler/f18/pull/751
Tree-same-pre-rewrite: false


  Commit: fdb58597e8597b67a6d672855e591dfd13040cca
      https://github.com/llvm/llvm-project/commit/fdb58597e8597b67a6d672855e591dfd13040cca
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-17 (Tue, 17 Sep 2019)

  Changed paths:
    M flang/documentation/C++style.md

  Log Message:
  -----------
  [flang] Update C++style.md

Original-commit: flang-compiler/f18 at d453fdda31dc6ff479d21fc3009c07c076b51a71
Reviewed-on: https://github.com/flang-compiler/f18/pull/751


  Commit: 914e93681a52987ce12ff322ff9838e3a5003801
      https://github.com/llvm/llvm-project/commit/914e93681a52987ce12ff322ff9838e3a5003801
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#751 from flang-compiler/sjs-style-update

Update C++style.md

Original-commit: flang-compiler/f18 at ab0cce154634900f64c8a6184d5e0302f790e5d6
Reviewed-on: https://github.com/flang-compiler/f18/pull/751


  Commit: cad44d2e916a44a1b262a04cffb2262f90941549
      https://github.com/llvm/llvm-project/commit/cad44d2e916a44a1b262a04cffb2262f90941549
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-17 (Tue, 17 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Semantic checks for teams directive

Original-commit: flang-compiler/f18 at ec22e9c4c2b5592975c53869f3cfbcd097222203
Reviewed-on: https://github.com/flang-compiler/f18/pull/750
Tree-same-pre-rewrite: false


  Commit: 5efbea87cfccd576aa23c7012a574218fb6639c7
      https://github.com/llvm/llvm-project/commit/5efbea87cfccd576aa23c7012a574218fb6639c7
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-19 (Thu, 19 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc

  Log Message:
  -----------
  [flang] Added grammar for teams directive to semantic checks

Original-commit: flang-compiler/f18 at 1cee26516b39824523b4ec8c44a076d6a3f56e25
Reviewed-on: https://github.com/flang-compiler/f18/pull/750


  Commit: 0e3b30489cbae3ec3c2b716fa7ad8480fbe325a7
      https://github.com/llvm/llvm-project/commit/0e3b30489cbae3ec3c2b716fa7ad8480fbe325a7
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#750 from DavidTruby/teams

Semantic checks for OpenMP teams directive

Original-commit: flang-compiler/f18 at 4b2a8be379a745afb7bdd689b943ce5868f2bdc6
Reviewed-on: https://github.com/flang-compiler/f18/pull/750


  Commit: a3d296663731f837a44842af364cc323c607e6da
      https://github.com/llvm/llvm-project/commit/a3d296663731f837a44842af364cc323c607e6da
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc

  Log Message:
  -----------
  [flang] Fix clang build on MacOS

clang doesn't consider `std::strlen` of a constant to be a constexpr,
so just replace with the actual length.

Original-commit: flang-compiler/f18 at 738deab4656478df41a3ef7fdb9f02fe503779c5
Reviewed-on: https://github.com/flang-compiler/f18/pull/761


  Commit: 997cfcdcc225a49e519040f426852da85dc211e4
      https://github.com/llvm/llvm-project/commit/997cfcdcc225a49e519040f426852da85dc211e4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-09-25 (Wed, 25 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#761 from flang-compiler/tsk-modfiles

Fix clang build on MacOS

Original-commit: flang-compiler/f18 at b99d1665fc04e87183ad8077a5e139c1df810738
Reviewed-on: https://github.com/flang-compiler/f18/pull/761


  Commit: c3f05ac421c8564c20193dfe8799e681cc0081e4
      https://github.com/llvm/llvm-project/commit/c3f05ac421c8564c20193dfe8799e681cc0081e4
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-09-26 (Thu, 26 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/test/semantics/doconcurrent01.f90

  Log Message:
  -----------
  [flang] Added tests for image control statements in DO CONCURRENT
There was already code in check-do.cc to test for the presence of a
variety of different image control statements, but several of them did
not have associated tests.  This change adds tests for most of them.

Also, I removed the check for the END PROGRAM statement, since its
presence causes a syntax error which prevents the semantic check from
ever being reached.

Original-commit: flang-compiler/f18 at 9cc6f5bd40689fa4bd0972e821ad3a871733b6fb
Reviewed-on: https://github.com/flang-compiler/f18/pull/764


  Commit: 75c912e5eda9d7e59dfcbd68ba08bfc2a5716bd0
      https://github.com/llvm/llvm-project/commit/75c912e5eda9d7e59dfcbd68ba08bfc2a5716bd0
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-09-26 (Thu, 26 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#764 from flang-compiler/ps-do

Added tests for image control statements in DO CONCURRENT

Original-commit: flang-compiler/f18 at 2856f0f2488c57874d2d06a6f40a02b4ddf1a109
Reviewed-on: https://github.com/flang-compiler/f18/pull/764


  Commit: 6e7ed4fb4d28fdfbba2e65d4904ddbf02b3986b4
      https://github.com/llvm/llvm-project/commit/6e7ed4fb4d28fdfbba2e65d4904ddbf02b3986b4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-09-27 (Fri, 27 Sep 2019)

  Changed paths:
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] Fix flang-compiler/f18#765

Original-commit: flang-compiler/f18 at bb2ffac7176ce81079940b8736461cb01794f9c8
Reviewed-on: https://github.com/flang-compiler/f18/pull/766


  Commit: 25ced3c767bf8fcd023b75090cd246c8df1dc6d5
      https://github.com/llvm/llvm-project/commit/25ced3c767bf8fcd023b75090cd246c8df1dc6d5
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-09-27 (Fri, 27 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#766 from flang-compiler/pmk-fix-765

Fix flang-compiler/f18#765

Original-commit: flang-compiler/f18 at 2fffc265c328ef0169ca63f654f1d54401a86880
Reviewed-on: https://github.com/flang-compiler/f18/pull/766


  Commit: deef31dc7cc9b4824fde8d062f91336772b37532
      https://github.com/llvm/llvm-project/commit/deef31dc7cc9b4824fde8d062f91336772b37532
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
    A flang/include/fir/Type.h

  Log Message:
  -----------
  [flang] add fir types header

Original-commit: flang-compiler/f18 at 4dc278b271ca5c30505db1c980d284929e464541
Reviewed-on: https://github.com/flang-compiler/f18/pull/696
Tree-same-pre-rewrite: false


  Commit: 38301e7fa0616d97c93c67dc39fd6a49f6687807
      https://github.com/llvm/llvm-project/commit/38301e7fa0616d97c93c67dc39fd6a49f6687807
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-09-06 (Fri, 06 Sep 2019)

  Changed paths:
    M flang/include/fir/Type.h

  Log Message:
  -----------
  [flang] changes per review comments

Original-commit: flang-compiler/f18 at eb34e2d47b1a8d43c87ce4368046fe2195e3b783
Reviewed-on: https://github.com/flang-compiler/f18/pull/696
Tree-same-pre-rewrite: false


  Commit: 717cdbd4acaf5c366c2674d947ab0e33a47849a4
      https://github.com/llvm/llvm-project/commit/717cdbd4acaf5c366c2674d947ab0e33a47849a4
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-09-06 (Fri, 06 Sep 2019)

  Changed paths:
    M flang/include/fir/Type.h

  Log Message:
  -----------
  [flang] more cleanup

Original-commit: flang-compiler/f18 at 23fdcf77d03e0b813eb000237e127bf9eea92a15
Reviewed-on: https://github.com/flang-compiler/f18/pull/696
Tree-same-pre-rewrite: false


  Commit: 27e80ffd737520efed64919a5fa5c71a85773841
      https://github.com/llvm/llvm-project/commit/27e80ffd737520efed64919a5fa5c71a85773841
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-09-06 (Fri, 06 Sep 2019)

  Changed paths:
    A flang/include/fir/Attribute.h

  Log Message:
  -----------
  [flang] add attributes

Original-commit: flang-compiler/f18 at d35f55b0d5fc45d161515824731430bda8fd3d67
Reviewed-on: https://github.com/flang-compiler/f18/pull/696
Tree-same-pre-rewrite: false


  Commit: d6bfd9135c7e4b8c42017abb2440f37ce0ff30e1
      https://github.com/llvm/llvm-project/commit/d6bfd9135c7e4b8c42017abb2440f37ce0ff30e1
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M flang/include/fir/Dialect.h

  Log Message:
  -----------
  [flang] fix name of argument

Original-commit: flang-compiler/f18 at ad505459416fabf3f9b3663bd170f1645abbfc88
Reviewed-on: https://github.com/flang-compiler/f18/pull/696
Tree-same-pre-rewrite: false


  Commit: 6bff59ec6bc6eee945268828203cebaeab7aa771
      https://github.com/llvm/llvm-project/commit/6bff59ec6bc6eee945268828203cebaeab7aa771
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-09-10 (Tue, 10 Sep 2019)

  Changed paths:
    A flang/include/fir/FIROps.h

  Log Message:
  -----------
  [flang] add FIROps.h

Original-commit: flang-compiler/f18 at e53fefb66cd1f86b0c157786f41b05bbb607c54c
Reviewed-on: https://github.com/flang-compiler/f18/pull/696
Tree-same-pre-rewrite: false


  Commit: cca3c31176e0ac76b375b72bb34cca24edf32981
      https://github.com/llvm/llvm-project/commit/cca3c31176e0ac76b375b72bb34cca24edf32981
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-09-17 (Tue, 17 Sep 2019)

  Changed paths:
    A flang/include/fir/Analysis/IteratedDominanceFrontier.h
    A flang/include/fir/CMakeLists.txt
    M flang/include/fir/FIROps.h
    M flang/include/fir/FIROps.td
    A flang/include/fir/Transforms/MemToReg.h

  Log Message:
  -----------
  [flang] latest changes

Original-commit: flang-compiler/f18 at c4278fe1aa82c5667f7dd9de21c8d3777a48d07b
Reviewed-on: https://github.com/flang-compiler/f18/pull/696
Tree-same-pre-rewrite: false


  Commit: 5c8c0716b4c9cbe83daa60e4bc50e37880d06612
      https://github.com/llvm/llvm-project/commit/5c8c0716b4c9cbe83daa60e4bc50e37880d06612
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-09-26 (Thu, 26 Sep 2019)

  Changed paths:
    M flang/include/fir/Analysis/IteratedDominanceFrontier.h
    M flang/include/fir/Attribute.h
    M flang/include/fir/Dialect.h
    M flang/include/fir/FIROps.h
    M flang/include/fir/FIROps.td
    M flang/include/fir/Transforms/MemToReg.h
    M flang/include/fir/Type.h

  Log Message:
  -----------
  [flang] sync latest changes to these files

Original-commit: flang-compiler/f18 at 97becf30fa9cf79f8fd1aa01d1e1e2271251e4a9
Reviewed-on: https://github.com/flang-compiler/f18/pull/696


  Commit: bd73184fdc53b334b20f54fdae3e2361628e5832
      https://github.com/llvm/llvm-project/commit/bd73184fdc53b334b20f54fdae3e2361628e5832
  Author: Eric Schweitz <eric.schweitz at pgroup.com>
  Date:   2019-09-27 (Fri, 27 Sep 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#696 from schweitzpgi/fir-type

add fir types header

Original-commit: flang-compiler/f18 at fc53f3415ee67bf731287e44593fa51ef4fd82ec
Reviewed-on: https://github.com/flang-compiler/f18/pull/696


  Commit: d3e8c76f675447af9e584eb7fa3189ada4d176d1
      https://github.com/llvm/llvm-project/commit/d3e8c76f675447af9e584eb7fa3189ada4d176d1
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-27 (Fri, 27 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Added semantic checks for map clauses

Original-commit: flang-compiler/f18 at 75b62283888c53c066999245bcd1fe9bdd29fe41
Reviewed-on: https://github.com/flang-compiler/f18/pull/748
Tree-same-pre-rewrite: false


  Commit: 7c09d48218acf50ffa5da1c9c985fea190b31f9b
      https://github.com/llvm/llvm-project/commit/7c09d48218acf50ffa5da1c9c985fea190b31f9b
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-27 (Fri, 27 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Corrections for map semantics to match coding style

Original-commit: flang-compiler/f18 at f2d97c3a1e77398addecbdb20ed55f2aa01361d8
Reviewed-on: https://github.com/flang-compiler/f18/pull/748
Tree-same-pre-rewrite: false


  Commit: 5776003259cb83e5b4794358818ac84621ee77dd
      https://github.com/llvm/llvm-project/commit/5776003259cb83e5b4794358818ac84621ee77dd
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-27 (Fri, 27 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Corrected check for required OpenMP clauses

Original-commit: flang-compiler/f18 at ce3ec50c3f01785f8bc0f92f1a7f6b65b2e52973
Reviewed-on: https://github.com/flang-compiler/f18/pull/748
Tree-same-pre-rewrite: false


  Commit: e0c15c4952147ba0ea4aff871f3f0a6a99039820
      https://github.com/llvm/llvm-project/commit/e0c15c4952147ba0ea4aff871f3f0a6a99039820
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-27 (Fri, 27 Sep 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc

  Log Message:
  -----------
  [flang] Added grammar comments for enter data and exit data directives

Original-commit: flang-compiler/f18 at a1e6cded2f0c0af9fda8ea53ac8c6636843e07e1
Reviewed-on: https://github.com/flang-compiler/f18/pull/748


  Commit: ac8a9574933424f49c8a4584f263176c86d992af
      https://github.com/llvm/llvm-project/commit/ac8a9574933424f49c8a4584f263176c86d992af
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-10-01 (Tue, 01 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#748 from DavidTruby/map

Added semantic checks for map clauses

Original-commit: flang-compiler/f18 at 183b3aab8351bdc0018c9d4963e9ce07588560af
Reviewed-on: https://github.com/flang-compiler/f18/pull/748


  Commit: 855f817d9d8c99c0e332b84256a63b15f57dfd7a
      https://github.com/llvm/llvm-project/commit/855f817d9d8c99c0e332b84256a63b15f57dfd7a
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-10-01 (Tue, 01 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/test/semantics/doconcurrent01.f90

  Log Message:
  -----------
  [flang] More semantic checking for DO constructs
This time I'm adding to the checks for constraint C1137, which states
that image control statements cannot appear in a DO CONCURRENT.  The
checks I added test to see if the DO CONCURRENT contains an ALLOCATE or
DEALLOCATE that references a coarray.

Original-commit: flang-compiler/f18 at c16b883db3016bceb2c795babe047d297ba92717
Reviewed-on: https://github.com/flang-compiler/f18/pull/769


  Commit: 259364c3e505d7953e2e136a4a1293288fe77d0b
      https://github.com/llvm/llvm-project/commit/259364c3e505d7953e2e136a4a1293288fe77d0b
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-10-01 (Tue, 01 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#769 from flang-compiler/ps-c1137

More semantic checking for DO constructs

Original-commit: flang-compiler/f18 at 3a13d84742a88a0684e372e025e4e7530378d3bf
Reviewed-on: https://github.com/flang-compiler/f18/pull/769


  Commit: 7d1696b3ad6d21d932c29b4de8a515593b87d84a
      https://github.com/llvm/llvm-project/commit/7d1696b3ad6d21d932c29b4de8a515593b87d84a
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/documentation/FortranIR.md
    M flang/lib/CMakeLists.txt
    A flang/lib/burnside/CMakeLists.txt
    A flang/lib/burnside/builder.h
    A flang/lib/burnside/flattened.cc
    A flang/lib/burnside/flattened.h
    A flang/lib/burnside/mixin.h

  Log Message:
  -----------
  [flang] add initial Burnside bridge code

Original-commit: flang-compiler/f18 at 0d387d146849ecb218b554e3b072794c8d6216d6
Reviewed-on: https://github.com/flang-compiler/f18/pull/720


  Commit: 5e86f8893717c2203f235215907d2abafc23d65e
      https://github.com/llvm/llvm-project/commit/5e86f8893717c2203f235215907d2abafc23d65e
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#720 from schweitzpgi/resurrect-flat-form

re-add files from old FIR code

Original-commit: flang-compiler/f18 at 5bf0827c20f4b9be3b49c1fd28bb14871a3ed9ad
Reviewed-on: https://github.com/flang-compiler/f18/pull/720


  Commit: c579118ce6212cf29607e61a9d3a76440604d6da
      https://github.com/llvm/llvm-project/commit/c579118ce6212cf29607e61a9d3a76440604d6da
  Author: David Truby <david.truby at arm.com>
  Date:   2019-09-30 (Mon, 30 Sep 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics-library-templates.h
    M flang/lib/evaluate/intrinsics-library.h

  Log Message:
  -----------
  [flang] Replace access through union with reinterpret_cast.

This avoids undefined behaviour.

Original-commit: flang-compiler/f18 at e289bbfa83ebb818971a688b019be697fd900d62
Reviewed-on: https://github.com/flang-compiler/f18/pull/767
Tree-same-pre-rewrite: false


  Commit: 98223835c0b61a7616973d734dc3e6dcbcd05bd4
      https://github.com/llvm/llvm-project/commit/98223835c0b61a7616973d734dc3e6dcbcd05bd4
  Author: David Truby <david.truby at arm.com>
  Date:   2019-10-01 (Tue, 01 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics-library.h

  Log Message:
  -----------
  [flang] Added comment about gcc function cast workaround.

Original-commit: flang-compiler/f18 at 28bc021323b5b76371fe3f5640b17f8adb0ee4b1
Reviewed-on: https://github.com/flang-compiler/f18/pull/767


  Commit: 9253f3c03511be57ceeae4f99fb004d9de57531e
      https://github.com/llvm/llvm-project/commit/9253f3c03511be57ceeae4f99fb004d9de57531e
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#767 from DavidTruby/generic-fp

Replace access through union with reinterpret_cast.

Original-commit: flang-compiler/f18 at f7d8318b56665ed1c6d7998310bf3d51db4aae12
Reviewed-on: https://github.com/flang-compiler/f18/pull/767


  Commit: 56efc1eca29fd88cdc79b06bb17a53ec3f56b7f4
      https://github.com/llvm/llvm-project/commit/56efc1eca29fd88cdc79b06bb17a53ec3f56b7f4
  Author: David Truby <david.truby at arm.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc
    M flang/test/semantics/omp-device-constructs.f90

  Log Message:
  -----------
  [flang] Added basic sema checks for distribute construct

Original-commit: flang-compiler/f18 at f23059bf308a3d29b60bc0452deaa23da3d8eaa1
Reviewed-on: https://github.com/flang-compiler/f18/pull/771


  Commit: 7292b3334cd69de38ebf71330b3f943a91f3f36a
      https://github.com/llvm/llvm-project/commit/7292b3334cd69de38ebf71330b3f943a91f3f36a
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#771 from DavidTruby/distribute

Added basic sema checks for distribute construct

Original-commit: flang-compiler/f18 at 3aeb44b3a8a5fe8baa2e1758ae2e38c89a57eedd
Reviewed-on: https://github.com/flang-compiler/f18/pull/771


  Commit: 9aa80d33534a92704b9491a7d3e5e0cbc33870cf
      https://github.com/llvm/llvm-project/commit/9aa80d33534a92704b9491a7d3e5e0cbc33870cf
  Author: David Truby <david.truby at arm.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/lib/parser/openmp-grammar.h
    M flang/lib/parser/parse-tree.h

  Log Message:
  -----------
  [flang] Make the second argument to dist_schedule optional.

Original-commit: flang-compiler/f18 at 7ed2d0e3ec68f00c483d3107d0383a4f172d1feb
Reviewed-on: https://github.com/flang-compiler/f18/pull/772
Tree-same-pre-rewrite: false


  Commit: e401082289d52b72a1bca35191d78ddba70d069d
      https://github.com/llvm/llvm-project/commit/e401082289d52b72a1bca35191d78ddba70d069d
  Author: David Truby <david.truby at arm.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:
    M flang/lib/parser/unparse.cc

  Log Message:
  -----------
  [flang] Removed stray comma in unparse for dist_schedule clause

Original-commit: flang-compiler/f18 at 0b61bc22c23fa302b34cb560cb291f0484926e5e
Reviewed-on: https://github.com/flang-compiler/f18/pull/772


  Commit: 1c2cb4bfe5b8b4eb19018b7b4f54f8cf6d882517
      https://github.com/llvm/llvm-project/commit/1c2cb4bfe5b8b4eb19018b7b4f54f8cf6d882517
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#772 from DavidTruby/dist-schedule

Make the second argument to dist_schedule optional.

Original-commit: flang-compiler/f18 at ff8dde78e6c7ad93fe1d9055d345f7355706eaad
Reviewed-on: https://github.com/flang-compiler/f18/pull/772


  Commit: 637b9332020ed2b24ceae4ec37e2aa1e41ec086a
      https://github.com/llvm/llvm-project/commit/637b9332020ed2b24ceae4ec37e2aa1e41ec086a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/lib/common/template.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/parser/characters.cc
    M flang/lib/parser/instrumented-parser.cc
    M flang/lib/parser/prescan.cc
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/type.cc

  Log Message:
  -----------
  [flang] Enable more warnings, clean them up

Original-commit: flang-compiler/f18 at c6b3420e5fd7aca76453ae996bec1c8402a2ab43
Reviewed-on: https://github.com/flang-compiler/f18/pull/774
Tree-same-pre-rewrite: false


  Commit: 5c35f3288a24052a450a84a308f95ddd61492a96
      https://github.com/llvm/llvm-project/commit/5c35f3288a24052a450a84a308f95ddd61492a96
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/lib/common/idioms.h
    M flang/lib/parser/characters.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/type.cc

  Log Message:
  -----------
  [flang] Retain no-op default: cases when compiling with gcc

Original-commit: flang-compiler/f18 at 8ebfd8d2e9b00ae003ecdc5eb71f63e6fe908143
Reviewed-on: https://github.com/flang-compiler/f18/pull/774
Tree-same-pre-rewrite: false


  Commit: 4ee37ac356d09ad65cf485765fcdffaefcff5dfe
      https://github.com/llvm/llvm-project/commit/4ee37ac356d09ad65cf485765fcdffaefcff5dfe
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/lib/common/idioms.h
    M flang/lib/parser/characters.cc
    M flang/lib/parser/prescan.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/type.cc

  Log Message:
  -----------
  [flang] Address review comments

Original-commit: flang-compiler/f18 at b2a0503614b325c62af920db5a183a2e254994f7
Reviewed-on: https://github.com/flang-compiler/f18/pull/774
Tree-same-pre-rewrite: false


  Commit: e88bf15d2a7a0e2f769c843fda7ea3bab1430f23
      https://github.com/llvm/llvm-project/commit/e88bf15d2a7a0e2f769c843fda7ea3bab1430f23
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/lib/common/idioms.h

  Log Message:
  -----------
  [flang] Dodge weird clang-format behavior

Original-commit: flang-compiler/f18 at 48b81a2dd9e6f92725be92b3225b1cd258173607
Reviewed-on: https://github.com/flang-compiler/f18/pull/774
Tree-same-pre-rewrite: false


  Commit: 07d48c0a23037b38f061cc8cc1e4239322935b58
      https://github.com/llvm/llvm-project/commit/07d48c0a23037b38f061cc8cc1e4239322935b58
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/documentation/C++style.md

  Log Message:
  -----------
  [flang] Extend documentation

Original-commit: flang-compiler/f18 at 7e11f8165f67426ff33887677adf5d723e3895b6
Reviewed-on: https://github.com/flang-compiler/f18/pull/774
Tree-same-pre-rewrite: false


  Commit: 9b37989e0542278b0b747ac876194487faa4176b
      https://github.com/llvm/llvm-project/commit/9b37989e0542278b0b747ac876194487faa4176b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/lib/common/idioms.h
    M flang/lib/semantics/type.cc

  Log Message:
  -----------
  [flang] Final tweaks

Original-commit: flang-compiler/f18 at 6e269b4e299d04a14eb4efc125821168eedeef04
Reviewed-on: https://github.com/flang-compiler/f18/pull/774


  Commit: 019627ebd7155b1fb3d8f1a4f8011f12ff008fd5
      https://github.com/llvm/llvm-project/commit/019627ebd7155b1fb3d8f1a4f8011f12ff008fd5
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#774 from flang-compiler/pmk-more-warnings

Enable clang warnings used by LLVM

Original-commit: flang-compiler/f18 at c098156735a9e6b1844f97800be2a94b6a89978f
Reviewed-on: https://github.com/flang-compiler/f18/pull/774


  Commit: 78d33b600e0870a6c84bde189379c7244686a11f
      https://github.com/llvm/llvm-project/commit/78d33b600e0870a6c84bde189379c7244686a11f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
    M flang/lib/parser/grammar.h
    M flang/lib/parser/type-parsers.h

  Log Message:
  -----------
  [flang] Fix flang-compiler/f18#773

Original-commit: flang-compiler/f18 at d12d1129b746394d3a179b49c3c2034ecdeafd59
Reviewed-on: https://github.com/flang-compiler/f18/pull/775


  Commit: c56e08212048e4d576ebd8ddbe684fce49001fcc
      https://github.com/llvm/llvm-project/commit/c56e08212048e4d576ebd8ddbe684fce49001fcc
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-10-03 (Thu, 03 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#775 from flang-compiler/pmk-fix

Fix flang-compiler/f18#773: ambiguous REALA=3 should be an assignment, not a declaration

Original-commit: flang-compiler/f18 at adbb8becdae433b1727f47cf10affc6eb4328482
Reviewed-on: https://github.com/flang-compiler/f18/pull/775


  Commit: d6c8bd805f4b390c1229b87f18a438ef8ce96ac6
      https://github.com/llvm/llvm-project/commit/d6c8bd805f4b390c1229b87f18a438ef8ce96ac6
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-04 (Fri, 04 Oct 2019)

  Changed paths:
    A flang/test/preprocessing/pp001.F
    A flang/test/preprocessing/pp002.F
    A flang/test/preprocessing/pp003.F
    A flang/test/preprocessing/pp004.F
    A flang/test/preprocessing/pp005.F
    A flang/test/preprocessing/pp006.F
    A flang/test/preprocessing/pp007.F
    A flang/test/preprocessing/pp008.F
    A flang/test/preprocessing/pp009.F
    A flang/test/preprocessing/pp010.F
    A flang/test/preprocessing/pp011.F
    A flang/test/preprocessing/pp012.F
    A flang/test/preprocessing/pp013.F
    A flang/test/preprocessing/pp014.F
    A flang/test/preprocessing/pp015.F
    A flang/test/preprocessing/pp016.F
    A flang/test/preprocessing/pp017.F
    A flang/test/preprocessing/pp018.F
    A flang/test/preprocessing/pp019.F
    A flang/test/preprocessing/pp020.F
    A flang/test/preprocessing/pp021.F
    A flang/test/preprocessing/pp022.F
    A flang/test/preprocessing/pp023.F
    A flang/test/preprocessing/pp024.F
    A flang/test/preprocessing/pp025.F
    A flang/test/preprocessing/pp026.F
    A flang/test/preprocessing/pp027.F
    A flang/test/preprocessing/pp028.F
    A flang/test/preprocessing/pp029.F
    A flang/test/preprocessing/pp030.F
    A flang/test/preprocessing/pp031.F
    A flang/test/preprocessing/pp032.F
    A flang/test/preprocessing/pp033.F
    A flang/test/preprocessing/pp034.F
    A flang/test/preprocessing/pp035.F
    A flang/test/preprocessing/pp036.F
    A flang/test/preprocessing/pp037.F
    A flang/test/preprocessing/pp038.F
    A flang/test/preprocessing/pp039.F
    A flang/test/preprocessing/pp040.F
    A flang/test/preprocessing/pp041.F
    A flang/test/preprocessing/pp042.F
    A flang/test/preprocessing/pp043.F
    A flang/test/preprocessing/pp044.F
    A flang/test/preprocessing/pp101.F90
    A flang/test/preprocessing/pp102.F90
    A flang/test/preprocessing/pp103.F90
    A flang/test/preprocessing/pp104.F90
    A flang/test/preprocessing/pp105.F90
    A flang/test/preprocessing/pp106.F90
    A flang/test/preprocessing/pp107.F90
    A flang/test/preprocessing/pp108.F90
    A flang/test/preprocessing/pp109.F90
    A flang/test/preprocessing/pp110.F90
    A flang/test/preprocessing/pp111.F90
    A flang/test/preprocessing/pp112.F90
    A flang/test/preprocessing/pp113.F90
    A flang/test/preprocessing/pp114.F90
    A flang/test/preprocessing/pp115.F90
    A flang/test/preprocessing/pp116.F90
    A flang/test/preprocessing/pp117.F90
    A flang/test/preprocessing/pp118.F90
    A flang/test/preprocessing/pp119.F90
    A flang/test/preprocessing/pp120.F90
    A flang/test/preprocessing/pp121.F90
    A flang/test/preprocessing/pp122.F90
    A flang/test/preprocessing/pp123.F90
    A flang/test/preprocessing/pp124.F90
    A flang/test/preprocessing/pp125.F90
    A flang/test/preprocessing/pp126.F90
    A flang/test/preprocessing/pp127.F90
    A flang/test/preprocessing/pp128.F90
    A flang/test/preprocessing/pp129.F90
    A flang/test/preprocessing/pp130.F90

  Log Message:
  -----------
  [flang] Import preprocessing tests

Original-commit: flang-compiler/f18 at 7ef7029604fa62c33d47ef0d710403b9f2aae670
Reviewed-on: https://github.com/flang-compiler/f18/pull/777


  Commit: 143fe7938324cd8cc027f58e286b55ff6735aa36
      https://github.com/llvm/llvm-project/commit/143fe7938324cd8cc027f58e286b55ff6735aa36
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-07 (Mon, 07 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#777 from flang-compiler/pmk-pp-tests

Import preprocessing tests

Original-commit: flang-compiler/f18 at 98f1b5f60b3becd6433ccb1fa1d070529c4cf109
Reviewed-on: https://github.com/flang-compiler/f18/pull/777


  Commit: b32a435b0b4f041cbb0150984fb97bb054559931
      https://github.com/llvm/llvm-project/commit/b32a435b0b4f041cbb0150984fb97bb054559931
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-07 (Mon, 07 Oct 2019)

  Changed paths:
    M flang/documentation/Preprocessing.md
    M flang/lib/common/constexpr-bitset.h
    M flang/lib/evaluate/CMakeLists.txt
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    A flang/lib/evaluate/check-call.cc
    A flang/lib/evaluate/check-call.h
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/check-expression.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/parser/prescan.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/type.h
    M flang/module/ieee_arithmetic.f90
    M flang/module/ieee_exceptions.f90
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call08.f90
    A flang/test/semantics/call13.f90
    M flang/test/semantics/doconcurrent01.f90
    M flang/test/semantics/expr-errors02.f90
    M flang/test/semantics/init01.f90
    M flang/test/semantics/modfile08.f90
    M flang/test/semantics/modfile10.f90
    M flang/test/semantics/modfile14.f90
    M flang/test/semantics/modfile15.f90

  Log Message:
  -----------
  [flang] Update preprocessing document, commentary

Extend documentation on preprocessing

IsSimplyContiguous

basic skeleton

Apply suggested improvements to mod-file.cc

Checks for new call13.f90 (15.4.2.2 explicit interfaces)

Implement checking for procedures that can be called via an implicit interface

Argument checking, test fixing

Better argument checking

Better derived type compatibility checking

Treat externals as if implicitly interfaced

Extend IEEE_EXCEPTIONS module so tests still pass with argument checking

SAME_TYPE_AS and EXTENDS_TYPE_OF intrinsic inquiry functions

Define interfaces for most intrinsic subroutines

Better PASS arguments

More with PASS() argument

Prep for review

address comments

fix comment

Remove formatted expression from specification expression error message per review

more review comments

Original-commit: flang-compiler/f18 at 3cca775da9302e3a2acec4a34800cd7666899b5f
Reviewed-on: https://github.com/flang-compiler/f18/pull/776


  Commit: 9c8312208dba472f7e56d0be4299e98edfec9ac8
      https://github.com/llvm/llvm-project/commit/9c8312208dba472f7e56d0be4299e98edfec9ac8
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-07 (Mon, 07 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#776 from flang-compiler/pmk-call

More procedure reference semantics checking (mostly arguments)

Original-commit: flang-compiler/f18 at c582562397a47498a55aaa3671dc0a84d1201af1
Reviewed-on: https://github.com/flang-compiler/f18/pull/776


  Commit: 6acae749c84a472b7fe7e5aa96506b48a386d111
      https://github.com/llvm/llvm-project/commit/6acae749c84a472b7fe7e5aa96506b48a386d111
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/check-call.cc
    M flang/lib/evaluate/check-call.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/modfile32.f90
    A flang/test/semantics/resolve62.f90
    M flang/test/semantics/test_modfile.sh

  Log Message:
  -----------
  [flang] Generic name resolution in expression analysis

Implement the basics of resolving generic names in expressions.

`ExpressionAnalyzer::ResolveGeneric` maps the symbol for a generic
name to the specific procedure appropriate for the actual arguments.
Extract `CheckExplicitInterface` out of `CheckArguments` so that it
can be tried for each specific procedure of the generic as part of
the test to see which is compatible.

Note that it may be there is an elemental and non-elemental specific
procedure that is compatible with the actual arguments. In that case
the generic is resolved to the non-elemental one.

Test this by using generic functions in specification expressions
that must be written to module files. Verify how the generics were
resolved by looking at the generated `.mod` files.

There is more work to be done in this area: the passed-object dummy
argument is not considered and in some cases generated module files
are not correct.

Original-commit: flang-compiler/f18 at 50e458045a3de42bd60515956e09f0f2d654ae1e
Reviewed-on: https://github.com/flang-compiler/f18/pull/778


  Commit: ea7240c3de068cb3f33cccb36effd4dd86ed5af7
      https://github.com/llvm/llvm-project/commit/ea7240c3de068cb3f33cccb36effd4dd86ed5af7
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#778 from flang-compiler/tsk-generics

Generic name resolution in expression analysis

Original-commit: flang-compiler/f18 at 1688bef152eca1144c985ec7cf9b352a02465130
Reviewed-on: https://github.com/flang-compiler/f18/pull/778


  Commit: b71355ca1e6e2a10fd99afd54462564a8548ff90
      https://github.com/llvm/llvm-project/commit/b71355ca1e6e2a10fd99afd54462564a8548ff90
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
    M flang/lib/common/idioms.h
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/check-call.cc
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/evaluate/expression.cc
    M flang/test/evaluate/folding.cc
    M flang/test/evaluate/intrinsics.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call03.f90

  Log Message:
  -----------
  [flang] checkpoint

checkpoint

checkpoint

Original-commit: flang-compiler/f18 at 99d12a7215089b4aefdaef39a2407b84538c29ef
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: f29394589e073de6d191d17911c924057d68abb0
      https://github.com/llvm/llvm-project/commit/f29394589e073de6d191d17911c924057d68abb0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/CMakeLists.txt
    R flang/lib/evaluate/check-call.cc
    R flang/lib/evaluate/check-call.h
    M flang/lib/evaluate/intrinsics-library.h
    M flang/lib/semantics/CMakeLists.txt
    A flang/lib/semantics/check-call.cc
    A flang/lib/semantics/check-call.h
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Move call semantic checking into lib/semantics

Original-commit: flang-compiler/f18 at 7996c85cf3311506093a9864263e198e4199ea29
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: d022fc1ccad62498723ac9f12563fa71cbef29ce
      https://github.com/llvm/llvm-project/commit/d022fc1ccad62498723ac9f12563fa71cbef29ce
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/parser/message.cc
    M flang/lib/parser/message.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-call.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/call03.f90

  Log Message:
  -----------
  [flang] definability tests

Original-commit: flang-compiler/f18 at 4b71f003a9c3a88b4a3e5cbad12f33fb46ef0657
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: b8d4f79d59fb1058c7a2162f8fde239da0df95d7
      https://github.com/llvm/llvm-project/commit/b8d4f79d59fb1058c7a2162f8fde239da0df95d7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/call03.f90
    M flang/test/semantics/call13.f90
    M flang/test/semantics/null01.f90

  Log Message:
  -----------
  [flang] pass call03

Original-commit: flang-compiler/f18 at 8c076bd89b30351b0b6470f4cf621efed1c2ae27
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: 4c37c06597b34052effd0001e92d63623eadafa7
      https://github.com/llvm/llvm-project/commit/4c37c06597b34052effd0001e92d63623eadafa7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-11 (Fri, 11 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/intrinsics-library-templates.h
    M flang/lib/evaluate/intrinsics-library.h
    M flang/lib/evaluate/type.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-call.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h

  Log Message:
  -----------
  [flang] rebase

Original-commit: flang-compiler/f18 at 2691da38361cb4040e394dd5f631becf4caef221
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: 3a4091b5e33629a0e0806e4286ae4a9128dbed84
      https://github.com/llvm/llvm-project/commit/3a4091b5e33629a0e0806e4286ae4a9128dbed84
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/semantics/check-call.cc

  Log Message:
  -----------
  [flang] Fix some bugs exposed by testing new checks

Original-commit: flang-compiler/f18 at 9cc70dcad64a77bb67cdb30f157a00898227f727
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: f090eb878e373021a3fdd0348e71a80590706fa1
      https://github.com/llvm/llvm-project/commit/f090eb878e373021a3fdd0348e71a80590706fa1
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/shape.cc
    M flang/module/ieee_exceptions.f90

  Log Message:
  -----------
  [flang] Better shape analysis for CSHIFT, EOSHIFT, SPREAD

Original-commit: flang-compiler/f18 at eb43df85a6048d0ffe417998d068bb6c45e702e0
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: 4abdc30b6302e5ae0ad148fc374dac6b0c2d6500
      https://github.com/llvm/llvm-project/commit/4abdc30b6302e5ae0ad148fc374dac6b0c2d6500
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/semantics/check-call.cc
    M flang/test/semantics/call03.f90
    M flang/test/semantics/symbol13.f90

  Log Message:
  -----------
  [flang] Revert to returning default INTEGER for LEN() and offset-in-CHARACTER intrinsics; further shape analysis of intrinsic results

Original-commit: flang-compiler/f18 at 561f5965b2309df3cd15d7e2a96d7e73f2f76e35
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: ca9d6be0e40735d8367657ca3290e5ef86ce4d2b
      https://github.com/llvm/llvm-project/commit/ca9d6be0e40735d8367657ca3290e5ef86ce4d2b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/call03.f90

  Log Message:
  -----------
  [flang] Pad short CHARACTER actual arguments

Original-commit: flang-compiler/f18 at b9c890ca9cc3e07967ece4dee739ac8059bb9388
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: db4ae5cd98afb91609c8d1d04ffe2547938d97de
      https://github.com/llvm/llvm-project/commit/db4ae5cd98afb91609c8d1d04ffe2547938d97de
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-17 (Thu, 17 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/expression.cc
    M flang/test/semantics/call03.f90

  Log Message:
  -----------
  [flang] Address most review comments

Original-commit: flang-compiler/f18 at 43720b5057437c77bbe7baa45c7e93ac871e17f9
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: 5f8817bdac8b6615f6441891bead8ff5cff4721b
      https://github.com/llvm/llvm-project/commit/5f8817bdac8b6615f6441891bead8ff5cff4721b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-17 (Thu, 17 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-declarations.h

  Log Message:
  -----------
  [flang] Address remaining initial comments

Original-commit: flang-compiler/f18 at acd307c91fc27ae0edb6695fd4955ae38c916903
Reviewed-on: https://github.com/flang-compiler/f18/pull/782
Tree-same-pre-rewrite: false


  Commit: 15f38e2d67699fec7406b08cf3da64637eec2d7a
      https://github.com/llvm/llvm-project/commit/15f38e2d67699fec7406b08cf3da64637eec2d7a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-17 (Thu, 17 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-declarations.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/call03.f90

  Log Message:
  -----------
  [flang] Use component iterators in check-call.cc

Original-commit: flang-compiler/f18 at e78db8907f75ebad88b53126b2cfbc743336a8bf
Reviewed-on: https://github.com/flang-compiler/f18/pull/782


  Commit: a1839554bfed768a26a5dafbd13c1290ca91108c
      https://github.com/llvm/llvm-project/commit/a1839554bfed768a26a5dafbd13c1290ca91108c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#782 from flang-compiler/pmk-calls

Further semantics checks for procedure references

Original-commit: flang-compiler/f18 at fbdd919a1452a10e3ddeed2c219f840ba9638704
Reviewed-on: https://github.com/flang-compiler/f18/pull/782


  Commit: e6bf9526e19a3fd3e9ae44a3f635b162a3842384
      https://github.com/llvm/llvm-project/commit/e6bf9526e19a3fd3e9ae44a3f635b162a3842384
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call04.f90

  Log Message:
  -----------
  [flang] most call04 checks

Original-commit: flang-compiler/f18 at 65289a66d10d21df497b677164bdf26bc10da6b2
Reviewed-on: https://github.com/flang-compiler/f18/pull/783
Tree-same-pre-rewrite: false


  Commit: 9cf827d297869bafc5db933757f3083627df6b5d
      https://github.com/llvm/llvm-project/commit/9cf827d297869bafc5db933757f3083627df6b5d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/call04.f90

  Log Message:
  -----------
  [flang] Pass call04

Original-commit: flang-compiler/f18 at 5a4483780420e105b2a5aeb82a1b268c028ef7f1
Reviewed-on: https://github.com/flang-compiler/f18/pull/783


  Commit: 416d9ced52cfc4727e41f8e154fef339db86bfca
      https://github.com/llvm/llvm-project/commit/416d9ced52cfc4727e41f8e154fef339db86bfca
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#783 from flang-compiler/pmk-call04

Add call semantics checks, pass call04.f90 test

Original-commit: flang-compiler/f18 at 2555860e779d5ee3e475e72fa66027ddbb1cd394
Reviewed-on: https://github.com/flang-compiler/f18/pull/783


  Commit: 2348d593aeb57d9310873651986ea753acb29826
      https://github.com/llvm/llvm-project/commit/2348d593aeb57d9310873651986ea753acb29826
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:
    A flang/lib/common/uint128.h
    M flang/lib/common/unsigned-const-division.h
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/decimal-to-binary.cc

  Log Message:
  -----------
  [flang] Add software uint128_t (debugging incomplete)

Original-commit: flang-compiler/f18 at 5be270e604965626ece73ca376ec450986cc5ae1
Reviewed-on: https://github.com/flang-compiler/f18/pull/785
Tree-same-pre-rewrite: false


  Commit: dc4fac56349b016e7cb8ccf818744bd99080f82f
      https://github.com/llvm/llvm-project/commit/dc4fac56349b016e7cb8ccf818744bd99080f82f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:
    M flang/lib/CMakeLists.txt
    M flang/lib/common/uint128.h
    M flang/lib/common/unsigned-const-division.h
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h
    M flang/test/evaluate/CMakeLists.txt
    A flang/test/evaluate/uint128.cc

  Log Message:
  -----------
  [flang] Testing and debugging

Original-commit: flang-compiler/f18 at 3fa2e55bef6858e1f6bf49b3cd96d424163156d3
Reviewed-on: https://github.com/flang-compiler/f18/pull/785
Tree-same-pre-rewrite: false


  Commit: 4f761d601e633520ffa44fd9f5d2ad3d5333d8ba
      https://github.com/llvm/llvm-project/commit/4f761d601e633520ffa44fd9f5d2ad3d5333d8ba
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-21 (Mon, 21 Oct 2019)

  Changed paths:
    M flang/lib/common/uint128.h
    M flang/lib/common/unsigned-const-division.h

  Log Message:
  -----------
  [flang] Fix clang performance problem with new code

Original-commit: flang-compiler/f18 at b70cac3ba8e093eeb62cec8d1a8eb932eff585c8
Reviewed-on: https://github.com/flang-compiler/f18/pull/785
Tree-same-pre-rewrite: false


  Commit: f3ae44f6454511db5b48640f71d5928f5602ba1f
      https://github.com/llvm/llvm-project/commit/f3ae44f6454511db5b48640f71d5928f5602ba1f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/traverse.h
    M flang/test/evaluate/CMakeLists.txt

  Log Message:
  -----------
  [flang] Work around a gcc-7.2 specific build bug by recoding with a better approach

Original-commit: flang-compiler/f18 at bc2b4015b06cc2c669e97dc56821050c6022ff7e
Reviewed-on: https://github.com/flang-compiler/f18/pull/785


  Commit: 26334a9e1bf843ed75e83b8a25f1af0e35e4cef5
      https://github.com/llvm/llvm-project/commit/26334a9e1bf843ed75e83b8a25f1af0e35e4cef5
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#785 from flang-compiler/pmk-int128

Implement uint128_t for impoverished build environments

Original-commit: flang-compiler/f18 at 6ea37f7cf56056e8d2bd815f87ae669f29787aed
Reviewed-on: https://github.com/flang-compiler/f18/pull/785


  Commit: 7aea2f6cb983a18ce8178db1f150e36e707a8367
      https://github.com/llvm/llvm-project/commit/7aea2f6cb983a18ce8178db1f150e36e707a8367
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M flang/test/evaluate/uint128.cc

  Log Message:
  -----------
  [flang] Fix bad new test, and fix detection of test failures in that test too

Original-commit: flang-compiler/f18 at 38ec2a879b63e633a7663698861cfc9aba56acd6
Reviewed-on: https://github.com/flang-compiler/f18/pull/787


  Commit: 2a7af74b3ea62d53e076438655b22beb9f124a65
      https://github.com/llvm/llvm-project/commit/2a7af74b3ea62d53e076438655b22beb9f124a65
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#787 from flang-compiler/pmk-fix

Fix bad new test, and fix detection of test failures in that test too

Original-commit: flang-compiler/f18 at 7c32e6757134223d1bd900e7e8bd2e5aa41b1c5a
Reviewed-on: https://github.com/flang-compiler/f18/pull/787


  Commit: 373f7489efee5db78161d158a208e9de87da5268
      https://github.com/llvm/llvm-project/commit/373f7489efee5db78161d158a208e9de87da5268
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-call.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/modfile32.f90
    M flang/test/semantics/resolve62.f90

  Log Message:
  -----------
  [flang] Resolve defined operators to specifics

Most of these changes involve moving code around so that it case be
used for `DefinedUnary` and `DefinedBinary`. The functional changes are
in the `Analyze` member functions for those cases where the arguments
are now analyzed, the generic is resolved, and a `FunctionRef` is
created.

Add `ArgumentAnalyzer` to handling building of the `ActualArguments`
of a call. This allows the code to be shared with the defined unary
and defined binary cases. Move `AnalyzeActualArgument` and
`AnalyzeActualArgument` into that class (renaming both to `Analyze`).

Create an overload of `GetCalleeAndArguments` for the `Name` case so it
can be used for defined ops where we don't have a `ProcedureDesignator`.

Move `IsGenericDefinedOp` to `tools.h` to make it available to the
new code.

We were using `semantics::CheckExplicitInterface` to resolve a generic
interface to a specific procedure based on actual arguments. The problem
with that is that it performs too many checks. We just want to get the
right specific; there may be errors reported later during call analysis.

To fix this, add a new function, `CheckInterfaceForGeneric`, to perform
this check. It shares code with `CheckExplicitInterface`, but it passes
in a null scope to indicate that the full set of checks aren't
necessary in `CheckExplicitInterfaceArg`. Instead we lift the call to
`TypeAndShape::IsCompatibleWith` out of `CheckExplicitDataArg`, and skip
the latter when there is no scope.

Original-commit: flang-compiler/f18 at fff2d1580f26719e0c384c66576aa6620d04faff
Reviewed-on: https://github.com/flang-compiler/f18/pull/786


  Commit: f0cef274b9402cfc65ae77a4f283da4f7a5ee1c6
      https://github.com/llvm/llvm-project/commit/f0cef274b9402cfc65ae77a4f283da4f7a5ee1c6
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#786 from flang-compiler/tsk-defined-ops

Resolve defined operators to specifics

Original-commit: flang-compiler/f18 at b10a60d2d6fa3257e5c3429c93e900e96fd646ad
Reviewed-on: https://github.com/flang-compiler/f18/pull/786


  Commit: 196fec7d85790db721061686c25088ae5ec014a3
      https://github.com/llvm/llvm-project/commit/196fec7d85790db721061686c25088ae5ec014a3
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/doconcurrent01.f90
    M flang/test/semantics/doconcurrent03.f90
    R flang/test/semantics/doconcurrent08.f90
    M flang/test/semantics/dosemantics02.f90
    M flang/test/semantics/dosemantics08.f90

  Log Message:
  -----------
  [flang] # This is a combination of 2 commits.
# This is the 1st commit message:

Changes to disallow image control statements in DO CONCURRENT

Most of these changes were already implemented.  The last remaining part was to check for calls to move_alloc with coarray arguments.  This set of changes implements that.  I also bundled other changes.  Specifically:

All of the code to detect image control statements was moved from check-do.cc to tools.cc so that it could be used by other semantic checking functions.

I added location information to the error messages for all DO semantics checks to highlight either the DO loop associated with the error or other relevant source locations.

I cleaned up the error messages associated with DO semantics so that they have more consistent grammar and punctuation.

I eliminated redundant checks for IEEE_GET_FLAG and IEEE_HALTING_MODE.

I removed the redundant test doconcurrent08.f90.

Responses to pull request comments

I changed the interface to determine whether a statement is an image control
statement to use an ExecutableConstruct as its input.  Since
ExecutableConstruct contains types that do not have source location information
(ChangeTeamConstruct and CriticalConstruct), I also created a function to get
the source location of an ExecutableConstruct.  Also, some ExecutableConstructs
are image control statements because they reference coarrays.  I wanted to tell
users that the reason that an ALLOCATE statement (for example) is an image
control statement because it references a coarray.  To make this happen, I
added another function to return a message for image control statements that
reference coarrays.

I also cleaned up the references to the standard in comments in check-do.cc to
briefly describe the contents of those constraints.

I also added messages that refer to the enclosing DO CONCURRENT statement for
error messages where appropriate.

Responses to pull request comments

The biggest change was to redo the implementation of "IsImageControlStmt()" to
use a custom visitor that strips off the "common::Indirection<...>" prefix of
most of the image control statement types and also takes advantage of
"common::HasMember<...>" to determine if a variant contains a specific type.

Spelling error.

# This is the commit message flang-compiler/f18#2:

More refactoring in response to comments on the pull request.

Original-commit: flang-compiler/f18 at 3f0a0155b3fc3ae8bd81780c1254e235dc272b77
Reviewed-on: https://github.com/flang-compiler/f18/pull/780


  Commit: f39e704606cbcb5c512ba87f6a9d185c54a73e1c
      https://github.com/llvm/llvm-project/commit/f39e704606cbcb5c512ba87f6a9d185c54a73e1c
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#780 from flang-compiler/ps-move_alloc

Changes to disallow image control statements in DO CONCURRENT

Original-commit: flang-compiler/f18 at adc753c306b690426a955023ebcfb0891a9a545b
Reviewed-on: https://github.com/flang-compiler/f18/pull/780


  Commit: b5eec67fc4ff734a20dda182c26399d974904f37
      https://github.com/llvm/llvm-project/commit/b5eec67fc4ff734a20dda182c26399d974904f37
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M flang/lib/parser/message.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h

  Log Message:
  -----------
  [flang] Add contextualizing interfaces to ExpressionAnalyzer and ContextualMessages

Original-commit: flang-compiler/f18 at 30a004d7b162a425fa41acd9f51fc3dc5e8624c4
Reviewed-on: https://github.com/flang-compiler/f18/pull/790


  Commit: bf102b76e454779bbc4f3fcb0cd3845b4168c9e0
      https://github.com/llvm/llvm-project/commit/bf102b76e454779bbc4f3fcb0cd3845b4168c9e0
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#790 from flang-compiler/pmk-expr-msgs

Add contextualizing interfaces to ExpressionAnalyzer and ContextualMe…

Original-commit: flang-compiler/f18 at 85136c45efaea28e502e66a498604ac64fb7924f
Reviewed-on: https://github.com/flang-compiler/f18/pull/790


  Commit: 5f270940ff0167029d2b445eab0b2571c991ddbb
      https://github.com/llvm/llvm-project/commit/5f270940ff0167029d2b445eab0b2571c991ddbb
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/allocate03.f90
    M flang/test/semantics/allocate06.f90
    M flang/test/semantics/allocate09.f90
    M flang/test/semantics/call05.f90

  Log Message:
  -----------
  [flang] Restored changes from pmk-call05

Original-commit: flang-compiler/f18 at bb9c12eec36e7737ebc20b17d7e51da127aa1fbf
Reviewed-on: https://github.com/flang-compiler/f18/pull/792
Tree-same-pre-rewrite: false


  Commit: 715f2c0d86e8805502a3709b310a82ee2b1ac25d
      https://github.com/llvm/llvm-project/commit/715f2c0d86e8805502a3709b310a82ee2b1ac25d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-call.cc

  Log Message:
  -----------
  [flang] Fix duplicate messages

Original-commit: flang-compiler/f18 at 6528c5f31b8ee9a281b672927a636cee67381d4e
Reviewed-on: https://github.com/flang-compiler/f18/pull/792
Tree-same-pre-rewrite: false


  Commit: 7c44a2011b66a4ca1284e5e48897dcd08173ab7f
      https://github.com/llvm/llvm-project/commit/7c44a2011b66a4ca1284e5e48897dcd08173ab7f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc

  Log Message:
  -----------
  [flang] Restore a review comment response

Original-commit: flang-compiler/f18 at d9673df31c7cd011a03685da000279b78c69d6b5
Reviewed-on: https://github.com/flang-compiler/f18/pull/792


  Commit: a11446f6c376eeebbc199bc6071905dc559f89f6
      https://github.com/llvm/llvm-project/commit/a11446f6c376eeebbc199bc6071905dc559f89f6
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#792 from flang-compiler/pmk-call05-again

pmk-call05 again

Original-commit: flang-compiler/f18 at 2b88ae44db2c7377fd655ff381ba1a23150be52c
Reviewed-on: https://github.com/flang-compiler/f18/pull/792


  Commit: 31cc8516292abfbcd7efa7c1798b885e095a2f6f
      https://github.com/llvm/llvm-project/commit/31cc8516292abfbcd7efa7c1798b885e095a2f6f
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/tools.cc
    M flang/test/semantics/doconcurrent01.f90

  Log Message:
  -----------
  [flang] Changes to check for calls to PURE procedure components

This addresses issue flang-compiler/f18#781.  I changed my test to create a PURE procedure
component by using an interface as suggested by Peter and Jean.  I then
enhanced the function IsPureProcedure() in tools.cc to cover this case
and updated the code in check-do.cc to perform the test.

Original-commit: flang-compiler/f18 at 5df56a217dfc93775305ecb077aa4de2852ab71f
Reviewed-on: https://github.com/flang-compiler/f18/pull/789


  Commit: f6a5a3f45ecf5e2e11e99bd0ae81cc3d0b98a18c
      https://github.com/llvm/llvm-project/commit/f6a5a3f45ecf5e2e11e99bd0ae81cc3d0b98a18c
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#789 from flang-compiler/ps-issue781

Changes to check for calls to PURE procedure components

Original-commit: flang-compiler/f18 at 3a0457adee173b77439569fdcd795ba5c67faa0c
Reviewed-on: https://github.com/flang-compiler/f18/pull/789


  Commit: 4ca8c5dc5c64b06b450da3643e3518308f646388
      https://github.com/llvm/llvm-project/commit/4ca8c5dc5c64b06b450da3643e3518308f646388
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/unparse-with-symbols.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/omp-resolve01.f90
    A flang/test/semantics/omp-resolve02.f90
    A flang/test/semantics/omp-symbol01.f90
    A flang/test/semantics/omp-symbol02.f90
    A flang/test/semantics/omp-symbol03.f90
    A flang/test/semantics/omp-symbol04.f90
    A flang/test/semantics/omp-symbol05.f90

  Log Message:
  -----------
  [flang] [OpenMP] OmpVisitor framework for Name Resolution

This is a preliminary framework to do the name resolution for
data references on the OpenMP clauses. Unlike data references
in the OpenMP region, clauses determining the data-sharing or
data-mapping attributes are straightforward and the resolution
process could be extended to do the name resolution in the OpenMP
region. It is hard to determine what kind of checks can be done
in this visitor and what checks should be done later after name
resolution. But the guide line is that `After the completion of
this phase, every Name corresponds to a Symbol with proper OpenMP
attribute(s) determined unless an error occurred.`

1. Take data-sharing clauses as example, create new symbol for
variable that require private access within the OpenMP region.
Declare the entity implicitly if necessary. The new symbol has
`HostAssocDetails`, which is mentioned in the `OpenMP-semantics.md`.

2. For `Shared` or `ThreadPrivate`, no symbol needs to be created.
OpenMP attribute Flag `OmpThreadprivate` needs to be marked for
`Threadprivate` because the `threadprivate` attribute remains the
same whenever these variables are referenced in the program.
`Names` in `Shared` clause need to be resolved to associate the
symbols in the clause enclosing scope (contains the OpenMP directive)
but `OmpShared` does not need to be marked. Declare the entity
implicitly if necessary.

3. For `COMMON block`, when a named common block appears in a list,
it has the same meaning as if every explicit member of the common
block appeared in the list. Also, a common block name specified in
a data-sharing attribute clause must be declared to be a common
block in the same scoping unit in which the data-sharing attribute
clause appears. So, if a named common block appears on a `PRIVATE`
clause, all its members should have new symbols created within the
OpenMP region (scope). For later Semantic checks and CG, a new
symbol is also created for common block name with `HostAssocDetails`.

There are many things are still on the TODO list:
- Better error/warning messages with directive/clause source provenance

- Resolve variables referenced in the OpenMP region, for example,
  `private(tt%a)` is not allowed but `tt%a = 1` is allowed in the
  OpenMP region and a private version of `tt` maybe created for
  the region. The functions created in the `OmpVisitor` should be
  able to handle the name resolution on the statement too (more
  data structures may be introduced). This is a big portion and may
  require some interface changes to distinguish a reference is on
  `OpenMP directive/clause` or `statements within OpenMP region`.

- Same data reference appears on multiple data-sharing clauses.

- Take association into consideration for example Pointer association,
  `ASSOCIATE` construct, and etc.

- Handle `Array Sections` and `Array or Structure Element`.

- Handle all the name resolution for directives/clauses that have
  `parser::Name`.

- More tests

Original-commit: flang-compiler/f18 at b2ea520885eceb6e118f690b95e1846183fe378b


  Commit: f3961579acc39dd598406ca048efef6a334d3e7f
      https://github.com/llvm/llvm-project/commit/f3961579acc39dd598406ca048efef6a334d3e7f
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/omp-resolve03.f90

  Log Message:
  -----------
  [flang] [OpenMP] add common block example

Original-commit: flang-compiler/f18 at a4c923e848bd55adc734808dbc019951610c29e6


  Commit: df51352d72f4c18eb9c1b2259dd41f026887cd1c
      https://github.com/llvm/llvm-project/commit/df51352d72f4c18eb9c1b2259dd41f026887cd1c
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/omp-symbol01.f90

  Log Message:
  -----------
  [flang] [OpenMP] avoid creating new symbol for common block

Original-commit: flang-compiler/f18 at ba2cceb4a2eb3846053d8f480bd6406d562f9f1c


  Commit: 0554d39d74e8da3942869ccf8f2bfa31feea45a1
      https://github.com/llvm/llvm-project/commit/0554d39d74e8da3942869ccf8f2bfa31feea45a1
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/omp-clause-validity01.f90
    M flang/test/semantics/omp-resolve02.f90
    A flang/test/semantics/omp-resolve04.f90
    M flang/test/semantics/omp-symbol02.f90
    A flang/test/semantics/omp-symbol06.f90

  Log Message:
  -----------
  [flang] [OpenMP] Implement no-multiple-appearance rule for DSA Clauses

DSA stands for Data-Sharing Attribute. This work is part of the
Name Resolution for OpenMP framework (data-refs on clauses part)

Based on 2.15.3: A list item that specifies a given variable may
not appear in more than one clause on the same directive, except that
a variable may be specified in both firstprivate and lastprivate clauses.

Through a temporary `std::set` of `const Symbol *` to keep track of
all the symbols on a certain OpenMP directive, we can determine whether
a variable `Name` (or `Symbol`, more accurately) has already appeared on
another DSA clause already, with the exception of FIRSTPRIVATE clause
and LASTPRIVATE clause. This rule applies to `/COMMON block/` also and
the source provenance shows on error message points to the `Name` between
slashes.

Added two more tests and changed some existing tests to accommodate
this commit. I intend to keep the `omp-clause-validity01.f90` test to
do the validity checks only.

Original-commit: flang-compiler/f18 at 0d7828c21e8dfe02e470a861178b7747100516ae


  Commit: 8143b8980de5a142ed37139c0cb3bf114fcce6dd
      https://github.com/llvm/llvm-project/commit/8143b8980de5a142ed37139c0cb3bf114fcce6dd
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] [OpenMP] adjust for PR#753 `OmpObject` parse tree change

PR#753 changed the `OmpObject` to be:

```
struct OmpObject {
  UNION_CLASS_BOILERPLATE(OmpObject);
  std::variant<Designator, /*common block*/ Name> u;
};
```

This commit adjust the logic flow for `ResolveOmpObject` based on
the above parse tree change.

For an `OmpObject`,
```
if (Designator) {
  if (DataRef.Name) {
    // Resolve Names
  } else {
    // ResolveDesignator
    // AnalyzeExpr
    if (Designator.Substring) {
      // Error
    }
    // other checks like StructureComponent, ArrayElement, etc.
  }
} else if (Name) {
  // Resolve COMMON block
}
```

Original-commit: flang-compiler/f18 at e5c1b92c15e5e8aee202d3469e337893510cfe21


  Commit: eeda3041605baf76b22b80256a06834b719ce380
      https://github.com/llvm/llvm-project/commit/eeda3041605baf76b22b80256a06834b719ce380
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/omp-resolve01.f90

  Log Message:
  -----------
  [flang] [OpenMP] address more comments

The major changes are:
  1) changed the non-nullptr type to reference
  2) changed ResolveOmpObject to use std::visit
  3) the rest of the changes are about positions and naming

Original-commit: flang-compiler/f18 at 93debe59f39542aa6c891a0b7b320ac48ddad44a


  Commit: 004a4c577b347b8edffd5c11677ac0770c25dd77
      https://github.com/llvm/llvm-project/commit/004a4c577b347b8edffd5c11677ac0770c25dd77
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/common.sh
    M flang/test/semantics/test_errors.sh
    M flang/test/semantics/test_symbols.sh

  Log Message:
  -----------
  [flang] [OpenMP] Test Infra update to support OpenMP symbol tests

During the symbol tests, OpenMP directives (start with "!$omp")
line needs to be saved for 1.f90 and 2.f90. Also moved "OPTIONS:"
detection to common.sh as "$USER_OPTIONS"

Original-commit: flang-compiler/f18 at 7d4e8e8ad52608ed9e4b5239371533cd28f0fbda


  Commit: 2839cb3835c55013a203df3c06313370f87a07b4
      https://github.com/llvm/llvm-project/commit/2839cb3835c55013a203df3c06313370f87a07b4
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M flang/test/semantics/test_any.sh

  Log Message:
  -----------
  [flang] Throw error in case of missing listed test

Original-commit: flang-compiler/f18 at dabc0ba0e0441d1057218d84a6b6f755985e50cc


  Commit: afd39cd49c00ddf861c7995baab89ab7f03fecdf
      https://github.com/llvm/llvm-project/commit/afd39cd49c00ddf861c7995baab89ab7f03fecdf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M flang/documentation/C++style.md
    A flang/lib/common/reference.h
    M flang/lib/common/unwrap.h
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/constant.h
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traverse.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/variable.cc
    M flang/lib/evaluate/variable.h
    M flang/lib/parser/message.cc
    M flang/lib/parser/message.h
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/mod-file.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Use reference_wrapper in vectors and sets

Convert some CharBlock references to values

Replace more pointers with reference wrappers

Restore object references that were converted to value semantics in an earlier commit

Use Reference<> in Scope

Fix new component iterator

Document pitfall that bit me

final tweaks before rebasing and merging

Rebasing

Original-commit: flang-compiler/f18 at 87874af934a0344f40374d9288e6805a2757e32f
Reviewed-on: https://github.com/flang-compiler/f18/pull/788


  Commit: e46a5a4c1050dc0fe2e33764dde109920d93db1e
      https://github.com/llvm/llvm-project/commit/e46a5a4c1050dc0fe2e33764dde109920d93db1e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#788 from flang-compiler/pmk-ref-wrap

Create `common::Reference<>`, use it to replace non-nullable pointers

Original-commit: flang-compiler/f18 at 0857755e59b822115370f26f5951046068e7ee7d
Reviewed-on: https://github.com/flang-compiler/f18/pull/788


  Commit: 926da903f23d8c37e069588fb023802e4e6439ed
      https://github.com/llvm/llvm-project/commit/926da903f23d8c37e069588fb023802e4e6439ed
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-30 (Wed, 30 Oct 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/blockconstruct01.f90
    M flang/test/semantics/call03.f90
    M flang/test/semantics/call04.f90
    M flang/test/semantics/call06.f90
    A flang/test/semantics/call14.f90
    M flang/test/semantics/doconcurrent01.f90
    M flang/test/semantics/init01.f90
    A flang/test/semantics/misc-declarations.f90
    M flang/test/semantics/modfile24.f90

  Log Message:
  -----------
  [flang] enable call06.f90 test

Relax checking when irrelevant due to INTENT(IN)

Add and pass call14.f90 test on VALUE

Allow ASYNCHRONOUS/VOLATILE to apply to host/USE associated entities, add tests

Pass call06

Check C827 & C828, fix tests

Original-commit: flang-compiler/f18 at df6cb83794b4f8842170c748d9edb7b53ba56fe8
Reviewed-on: https://github.com/flang-compiler/f18/pull/801


  Commit: 0e74840ac2048b5ca421420455ba77f36db1a739
      https://github.com/llvm/llvm-project/commit/0e74840ac2048b5ca421420455ba77f36db1a739
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-30 (Wed, 30 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#801 from flang-compiler/pmk-call06

More semantic checks for calls & declarations

Original-commit: flang-compiler/f18 at d29f634c350085e4dade3feabd28e4486de34bfb
Reviewed-on: https://github.com/flang-compiler/f18/pull/801


  Commit: 7a681f46f8abf109807c221a87526b21bb5bbdf8
      https://github.com/llvm/llvm-project/commit/7a681f46f8abf109807c221a87526b21bb5bbdf8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-10-31 (Thu, 31 Oct 2019)

  Changed paths:
    M flang/documentation/C++style.md
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/type.cc
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/prescan.cc

  Log Message:
  -----------
  [flang] Use c_str() rather than data() where NUL termination is assumed

Original-commit: flang-compiler/f18 at 5baed3c856bcffdb2024e6b20f0f20411b0a15f7
Reviewed-on: https://github.com/flang-compiler/f18/pull/804


  Commit: e91e7e4d9548ea42c2d8221830a509179ab70cd1
      https://github.com/llvm/llvm-project/commit/e91e7e4d9548ea42c2d8221830a509179ab70cd1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-10-31 (Thu, 31 Oct 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#804 from flang-compiler/pmk-c_str

Use c_str() rather than data() where NUL termination is assumed

Original-commit: flang-compiler/f18 at 97a0a0f78f6b51dfecb5ce3302496a4982394ab7
Reviewed-on: https://github.com/flang-compiler/f18/pull/804


  Commit: c14c2b9573a3771ed473fc23c43f6f93bfd17168
      https://github.com/llvm/llvm-project/commit/c14c2b9573a3771ed473fc23c43f6f93bfd17168
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-02 (Sat, 02 Nov 2019)

  Changed paths:
    M flang/lib/common/indirection.h
    M flang/lib/common/restorer.h
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traverse.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call07.f90
    M flang/test/semantics/null01.f90

  Log Message:
  -----------
  [flang] Enable and pass test call07.f90

Remove a std::move()

Final tweaks after testing and review

Original-commit: flang-compiler/f18 at b3fe97b1a0cd21b238d8511b44be3feb01823fc4
Reviewed-on: https://github.com/flang-compiler/f18/pull/806


  Commit: 41aa3bf7a4bca781152a3ef82992b44673ae83a1
      https://github.com/llvm/llvm-project/commit/41aa3bf7a4bca781152a3ef82992b44673ae83a1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-02 (Sat, 02 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#806 from flang-compiler/pmk-calls

Enable and pass test call07.f90

Original-commit: flang-compiler/f18 at ac3c69f29c4a8c75ac700052ef95debba8808221
Reviewed-on: https://github.com/flang-compiler/f18/pull/806


  Commit: dce7f0aca07a17cf2ded5a04c642aa94597cb95e
      https://github.com/llvm/llvm-project/commit/dce7f0aca07a17cf2ded5a04c642aa94597cb95e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-04 (Mon, 04 Nov 2019)

  Changed paths:
    M flang/lib/common/CMakeLists.txt
    A flang/lib/common/Fortran.cc
    M flang/lib/common/Fortran.h
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/modfile33.f90
    A flang/test/semantics/resolve63.f90

  Log Message:
  -----------
  [flang] Resolve extended intrinsic operators

Enhance `ArgumentAnalyzer` to do most of the work for this.
For each kind of operator that might have a user-defined form we follow
this process:
- analyze the arguments
- if the types and shapes match the intrinsic operator do the usual
  processing
- otherwise attempt to interpret it as a user-defined operator with
  `TryDefinedOp`

When we fail to resolve an operator, produce different errors depending
on whether there is a user-defined operator available or not.
If there is, report that neither user-defined nor intrinsic operator
worked. If there is not, describe the rules for the intrinsic operator.
In either case, include the type(s) of the operand(s).

Most of the uses of `ArgumentAnalyzer` are in helper functions that
apply to classes of operators.
For consistency, rename `BinaryOperationHelper` to `NumericBinaryOperator`
and `LogicalHelper` to `LogicalBinaryHelper` and introduce `NumericUnaryHelper`
for unary `+` and `-`.  `.NOT.` and `//` are not implemented in helpers.

Replace `success_` with `fatalErrors_` in `ArgumentAnalyzer` for
consistency with `ExpressionAnalyzer`.

Add `NumericOperator` and `LogicalOperator` enums to `Fortran.h` to go
with `RelationalOperator`. Add `AddFortran` functions to each to convert
to a Fortran source string. `RelationalOperator` also has `AllFortranNames`
because there are multiple names for each operator. This replaces
`LogicalOperator` in `expression.h` and the string representation of
the operators in `formatting.cc`.

Original-commit: flang-compiler/f18 at 3bb9d664e86c931a67b3e78859d2108e53d23f80
Reviewed-on: https://github.com/flang-compiler/f18/pull/807


  Commit: eaa0a455875b548663dc822ee8dd0b254b15d3d9
      https://github.com/llvm/llvm-project/commit/eaa0a455875b548663dc822ee8dd0b254b15d3d9
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-04 (Mon, 04 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#807 from flang-compiler/tsk-defined-ops

Resolve extended intrinsic operators

Original-commit: flang-compiler/f18 at bcdf3fc6e58ae5dca72247df8793221175a885b0
Reviewed-on: https://github.com/flang-compiler/f18/pull/807


  Commit: cf9059ae98b1931803d10c0616d4e001724f80cd
      https://github.com/llvm/llvm-project/commit/cf9059ae98b1931803d10c0616d4e001724f80cd
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-04 (Mon, 04 Nov 2019)

  Changed paths:
    M flang/lib/common/Fortran.cc
    M flang/lib/common/Fortran.h
    M flang/test/semantics/resolve63.f90

  Log Message:
  -----------
  [flang] Fix build error using clang

Change `AllFortranNames()` to return a `std::vector` rather than a
`std::initialization_list`. The latter doesn't own its underlying
storage and so can't be returned as a value. clang detects this and
issues a warning.

Two tests in `resolve63.f90` behave differently with clang and require
further investigation.

Original-commit: flang-compiler/f18 at 1ed3a3cfee1d372b23afc4529d5867ecd46db681
Reviewed-on: https://github.com/flang-compiler/f18/pull/810


  Commit: 5d76a55b016b66d26b3d09a7bd3b601457f515ce
      https://github.com/llvm/llvm-project/commit/5d76a55b016b66d26b3d09a7bd3b601457f515ce
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-04 (Mon, 04 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#810 from flang-compiler/tsk-defined-ops

Fix build error using clang

Original-commit: flang-compiler/f18 at 0879810f8bf4f84bcce06a5b6feb7817609c1cdb
Reviewed-on: https://github.com/flang-compiler/f18/pull/810


  Commit: 2c89c31a5923346194ad0d8f721b8c6cfc6765a7
      https://github.com/llvm/llvm-project/commit/2c89c31a5923346194ad0d8f721b8c6cfc6765a7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-04 (Mon, 04 Nov 2019)

  Changed paths:
    M flang/lib/semantics/check-call.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call08.f90

  Log Message:
  -----------
  [flang] Enable and pass call08.f90

Refine a check

Original-commit: flang-compiler/f18 at bb96c195d4d6825041912d8ab0b5c5fb7f9418e2
Reviewed-on: https://github.com/flang-compiler/f18/pull/812


  Commit: f991c76521efe67c679afe3736a38af72537583c
      https://github.com/llvm/llvm-project/commit/f991c76521efe67c679afe3736a38af72537583c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-04 (Mon, 04 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#812 from flang-compiler/pmk-call08

Enable and pass call08.f90

Original-commit: flang-compiler/f18 at 997f59f4a352786a03ad5023b748af1a91b4e7c6
Reviewed-on: https://github.com/flang-compiler/f18/pull/812


  Commit: 572de7c7b01ca242b71ff4114c15d25015145bd3
      https://github.com/llvm/llvm-project/commit/572de7c7b01ca242b71ff4114c15d25015145bd3
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-11-05 (Tue, 05 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/character.h
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/variable.cc
    M flang/test/evaluate/folding01.f90

  Log Message:
  -----------
  [flang] Implement MIN and MAX folding

* Use Extremum<T> FoldOperation to fold MIN and MAX
* Fix Extremum<T> FolOperation
    * For character, the length is the one of the longest argument.
      Define and use `CharacterUtils<Kind>::Resize` helper to do this.
    * For array of all types, Extremum<T> with Ordering::Less was
      behaving like Ordering::Greater. This is because the default
      `ApplyElementwise` for `Operation` was selected and it then
       called the Extremum<T> constructor without the ordering
       argument (which was an optional defaulted to Greater).
      Define a specific handler for Extremum<T> and make the ordering
      argument mandatory to prevent this kind of bug to pass
      f18 compilation in the futur.
* Fix intrinsic.cc for MIN and MAX
    * When provided with two arguments, `Match` was adding an empty
      3rd optional actual argument. Later code working on min and
      max was not expecting this and failing. The fix prevent this
      empty argument to be created by changing the initial size of
      `actualForDummy` to actually be the number of dummies that do
      not have `Optionality::Repeats`

This commit fixes issue flang-compiler/f18#677.

Original-commit: flang-compiler/f18 at acb62f240b55d866797b9917f5a45dcd5ecc23e8
Reviewed-on: https://github.com/flang-compiler/f18/pull/803


  Commit: 9392f2a329e2abac8da0e59b73c82153679de503
      https://github.com/llvm/llvm-project/commit/9392f2a329e2abac8da0e59b73c82153679de503
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-11-05 (Tue, 05 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#803 from flang-compiler/jpr-extremums

Implement MIN and MAX folding

Original-commit: flang-compiler/f18 at b91bb504101bc80c458815035a058c8d1839d847
Reviewed-on: https://github.com/flang-compiler/f18/pull/803


  Commit: 65791b2d0bede3c775b55177ed0a291f459d8f1c
      https://github.com/llvm/llvm-project/commit/65791b2d0bede3c775b55177ed0a291f459d8f1c
  Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
  Date:   2019-11-05 (Tue, 05 Nov 2019)

  Changed paths:
    M flang/lib/common/format.h
    M flang/test/semantics/io07.f90
    M flang/test/semantics/io08.f90
    M flang/test/semantics/io10.f90

  Log Message:
  -----------
  [flang] Relax the implementation of constraint C1302. (flang-compiler/f18#805)

* Relax the implementation of constraint C1302.

When a list of format items can be unambiguously partitioned into individual items even though one or more otherwise required comma separators are omitted, generate a warning rather than an error.

Fixes flang-compiler/f18#703

Original-commit: flang-compiler/f18 at 79c0731137e1092c26c4dec7c12113c52a72effd
Reviewed-on: https://github.com/flang-compiler/f18/pull/805


  Commit: a717d170cc997629b6b11dfef9cf29ec6104df4c
      https://github.com/llvm/llvm-project/commit/a717d170cc997629b6b11dfef9cf29ec6104df4c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-05 (Tue, 05 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc

  Log Message:
  -----------
  [flang] Change more pointers into references

Remove unused interface

Respond to review comments

Original-commit: flang-compiler/f18 at 7fdfe7b4acb28578dddc23965ce9c890fbbd6c8a
Reviewed-on: https://github.com/flang-compiler/f18/pull/809


  Commit: e391c6f0d3e6333a67c528db243f611e0ceabd14
      https://github.com/llvm/llvm-project/commit/e391c6f0d3e6333a67c528db243f611e0ceabd14
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-05 (Tue, 05 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#809 from flang-compiler/pmk-symbol-refs

Convert more non-nullable pointers to Reference<>s

Original-commit: flang-compiler/f18 at 4a6d6f184bcf54de971f30df0bf6649e2768016f
Reviewed-on: https://github.com/flang-compiler/f18/pull/809


  Commit: cae50f01ff6ef5a13410c273f6838687aa66cc02
      https://github.com/llvm/llvm-project/commit/cae50f01ff6ef5a13410c273f6838687aa66cc02
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-06 (Wed, 06 Nov 2019)

  Changed paths:
    A flang/lib/common/features.h
    M flang/lib/parser/basic-parsers.h
    R flang/lib/parser/features.h
    M flang/lib/parser/parse-state.h
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/parsing.h
    M flang/lib/parser/prescan.cc
    M flang/lib/parser/prescan.h
    M flang/lib/parser/user-state.h
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-labels.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/tools/f18/f18-parse-demo.cc
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Move features.h from parser to common

Which features are enabled and disabled applies to more than just the
parser, so move that functionality to `common`.

Original-commit: flang-compiler/f18 at 98b3240efc25095b6bdfa43280513f2afcac99e1
Reviewed-on: https://github.com/flang-compiler/f18/pull/815
Tree-same-pre-rewrite: false


  Commit: 9b31cbe7dbdfe462ed371b92ceab2c915c21398f
      https://github.com/llvm/llvm-project/commit/9b31cbe7dbdfe462ed371b92ceab2c915c21398f
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-07 (Thu, 07 Nov 2019)

  Changed paths:
    M flang/lib/common/CMakeLists.txt
    M flang/lib/common/Fortran.cc
    M flang/lib/common/Fortran.h
    A flang/lib/common/features.cc
    M flang/lib/common/features.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/grammar.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names-utils.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/semantics.h
    M flang/lib/semantics/symbol.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/modfile33.f90
    M flang/test/semantics/resolve63.f90
    A flang/test/semantics/resolve64.f90
    M flang/test/semantics/test_modfile.sh
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Add support for logical abbreviations and .XOR.

Update the grammar to handle logical abbreviations (e.g. `.A.` for `.AND.`)
when the feature is enabled. Only support `.X.` when both XOR and
logical abbreviations are enabled.

Fix the driver to enable logical abbreviations with the
`-flogical-abbreviations` option. This was already documented in
`documentation/Extensions.md`.

Remove `parser::Expr::XOR` from the parse tree and immediately map
`.XOR.` to `.NEQV.` if that feature is enabled. This was already being
done during expression analysis anyway.

Add `LanguageFeatureControl::GetNames` to return all of the names of
a logical or relational operator, depending on which features are
enabled. Use these in both name resolution and expression analysis.
Add `Not` to `LogicalOperator` to help in those cases.

Fix handling of BOZ literals: A numeric operation with one real or
integer operand and the other a BOZ literal is intrinsic.
Also, unary plus with a BOZ literal operand is also intrinsic.

Original-commit: flang-compiler/f18 at 956bd50bc7c93a31bb3ac39841d7b5ba15ff04a3
Reviewed-on: https://github.com/flang-compiler/f18/pull/815


  Commit: ab024b73976a2ccef1fb04fde15bfe5a2c2ee828
      https://github.com/llvm/llvm-project/commit/ab024b73976a2ccef1fb04fde15bfe5a2c2ee828
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-07 (Thu, 07 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#815 from flang-compiler/tsk-defined-ops

Add support for logical abbreviations and .XOR.

Original-commit: flang-compiler/f18 at a7a581526e21d2f2659192bc81ecff321a272e66
Reviewed-on: https://github.com/flang-compiler/f18/pull/815


  Commit: e2166e1ca0220957317f3770941a75e14a37c9f0
      https://github.com/llvm/llvm-project/commit/e2166e1ca0220957317f3770941a75e14a37c9f0
  Author: sameeranjoshi17 <joshisameeran17 at gmail.com>
  Date:   2019-11-03 (Sun, 03 Nov 2019)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cc

  Log Message:
  -----------
  [flang] semantic checks for Master construct

Original-commit: flang-compiler/f18 at b052a710629cc08cda27de579651dd5328e24b9f
Reviewed-on: https://github.com/flang-compiler/f18/pull/808
Tree-same-pre-rewrite: false


  Commit: 4aac676c54e926e69be113f42a79481bd8da7d8c
      https://github.com/llvm/llvm-project/commit/4aac676c54e926e69be113f42a79481bd8da7d8c
  Author: sameeranjoshi17 <joshisameeran17 at gmail.com>
  Date:   2019-11-06 (Wed, 06 Nov 2019)

  Changed paths:
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] Added test case for semantic check of OpenMP Master construct

Original-commit: flang-compiler/f18 at 22f3088c76517b32996962da4ab4687b376ef878
Reviewed-on: https://github.com/flang-compiler/f18/pull/808
Tree-same-pre-rewrite: false


  Commit: 8d216b40c894d28d1c5c33b291345c1dbf916fe4
      https://github.com/llvm/llvm-project/commit/8d216b40c894d28d1c5c33b291345c1dbf916fe4
  Author: sameeranjoshi17 <joshisameeran17 at gmail.com>
  Date:   2019-11-06 (Wed, 06 Nov 2019)

  Changed paths:
    M flang/test/semantics/omp-clause-validity01.f90

  Log Message:
  -----------
  [flang] Added passing test case

Original-commit: flang-compiler/f18 at 752142055b0d029a0e483e6b8a74cc507f0f49ab
Reviewed-on: https://github.com/flang-compiler/f18/pull/808


  Commit: f638549d8cacf0c75aeeede569a124616777d4cf
      https://github.com/llvm/llvm-project/commit/f638549d8cacf0c75aeeede569a124616777d4cf
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-07 (Thu, 07 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#808 from Sameeranjoshi/master

[OpenMP] Semantic check for Master construct

Original-commit: flang-compiler/f18 at d8b6e8e4feaa59c4ffe57a56e9535f201f06d6d9
Reviewed-on: https://github.com/flang-compiler/f18/pull/808


  Commit: 6c9b8845e9ba7cbce06de5efec02ce391decebfc
      https://github.com/llvm/llvm-project/commit/6c9b8845e9ba7cbce06de5efec02ce391decebfc
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-09 (Sat, 09 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/integer.h
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/parser/grammar.h
    M flang/lib/parser/type-parsers.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call02.f90
    M flang/test/semantics/call09.f90
    M flang/test/semantics/expr-errors02.f90

  Log Message:
  -----------
  [flang] checkpoint, all tests pass

Fix name resolution for undeclared intrinsic actual arguments

Original-commit: flang-compiler/f18 at 12470f06bcc09eb4858af9c3e412752d7ba71aee
Reviewed-on: https://github.com/flang-compiler/f18/pull/818


  Commit: e2437596a4025d1e943e0b24ca5bcb7d5c71bc60
      https://github.com/llvm/llvm-project/commit/e2437596a4025d1e943e0b24ca5bcb7d5c71bc60
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-09 (Sat, 09 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#818 from flang-compiler/pmk-call09

Check semantics for actual arguments associated with dummy procedures

Original-commit: flang-compiler/f18 at 5de75d9118e6b0f596599a126fc69383eeaef208
Reviewed-on: https://github.com/flang-compiler/f18/pull/818


  Commit: 18f5ce59649a7715279b9cf4c4e076fa4b515866
      https://github.com/llvm/llvm-project/commit/18f5ce59649a7715279b9cf4c4e076fa4b515866
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-11 (Mon, 11 Nov 2019)

  Changed paths:
    M flang/documentation/C++style.md
    M flang/lib/common/idioms.h
    M flang/lib/common/template.h
    M flang/lib/common/unwrap.h
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/fold.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/formatting.h
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/real.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traverse.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/evaluate/variable.cc
    M flang/lib/parser/basic-parsers.h
    M flang/lib/parser/message.cc
    M flang/lib/parser/parse-state.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.cc
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/preprocessor.cc
    M flang/lib/parser/prescan.cc
    M flang/lib/parser/prescan.h
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/source.cc
    M flang/lib/parser/token-parsers.h
    M flang/lib/parser/tools.h
    M flang/lib/parser/unparse.cc
    M flang/lib/parser/user-state.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/canonicalize-do.cc
    M flang/lib/semantics/canonicalize-omp.cc
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-arithmeticif.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-labels.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/rewrite-parse-tree.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/semantics.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/runtime/ISO_Fortran_binding.cc
    M flang/runtime/derived-type.h
    M flang/runtime/descriptor.cc
    M flang/runtime/descriptor.h
    M flang/runtime/transformational.cc
    M flang/tools/f18/f18-parse-demo.cc
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Remove most comparisons to nullptr

Remove needless usage of has_value()

Original-commit: flang-compiler/f18 at 1da7fcf7a54066b18e521620ecedb79c7cd2eb97
Reviewed-on: https://github.com/flang-compiler/f18/pull/822


  Commit: 3efb332af2a6b0ded9ff8c318cf9f845c5ffaefc
      https://github.com/llvm/llvm-project/commit/3efb332af2a6b0ded9ff8c318cf9f845c5ffaefc
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-11 (Mon, 11 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#822 from flang-compiler/pmk-nullptr

Remove explicit comparisons to `nullptr` and most usage of `has_value()`

Original-commit: flang-compiler/f18 at fdb351ca2afb0d71028785da4687113343e11f54
Reviewed-on: https://github.com/flang-compiler/f18/pull/822


  Commit: b5c7193769cc2eaef6f0084e95624583806513d2
      https://github.com/llvm/llvm-project/commit/b5c7193769cc2eaef6f0084e95624583806513d2
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M flang/lib/semantics/canonicalize-omp.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix crashes in ResolveOmpObject and RewriteOpenMPLoopConstruct

Using debug build of f18, `omp-resolve01.f90` sometimes crashed in
`OmpVisitor::ResolveOmpObject`. This was because when the designator was
analyzed it could be rewritten from an `ArrayElement` to a `Substring`.
That made the reference to the `Name` inside the designator no longer
valid so the crash happened when it was referenced later. The fix is to
return when the substring is detected so the name is not referenced.

Also, the name returned from `ResolveDesignator` can but null so it must
be checked.

The crash in `RewriteOpenMPLoopConstruct` happened intermittently on
`omp-loop-association.f90`. It happened when the DO construct was the
last element of the block. In that case `block.erase()` returns an
iterator pointing to `block.end()` which must not be dereferenced.

Original-commit: flang-compiler/f18 at 3299972d047696aca28212131ab4644a3966fc8b
Reviewed-on: https://github.com/flang-compiler/f18/pull/824


  Commit: 751add0045ad5ac3d524dbc3b3a6dda17d56f6fb
      https://github.com/llvm/llvm-project/commit/751add0045ad5ac3d524dbc3b3a6dda17d56f6fb
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#824 from flang-compiler/tsk-omp-crash

Fix crashes in ResolveOmpObject and RewriteOpenMPLoopConstruct

Original-commit: flang-compiler/f18 at 283542ff5a04fa5de65a252891567001fbe24857
Reviewed-on: https://github.com/flang-compiler/f18/pull/824


  Commit: c1ca1b2b7f8c00920b0af23114bc34dde6c1b0fa
      https://github.com/llvm/llvm-project/commit/c1ca1b2b7f8c00920b0af23114bc34dde6c1b0fa
  Author: kiranktp <kirankumart.tp at amd.com>
  Date:   2019-11-07 (Thu, 07 Nov 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/separate_module_procs_1.f90
    A flang/test/semantics/separate_module_procs_2.f90

  Log Message:
  -----------
  [flang] Fix for flang-compiler/f18#694 - Unexpected error when compiling submodule

Change-Id: I03939bfc705cc5319a0b7da3305026b8403b8edc

Original-commit: flang-compiler/f18 at e1237939aa4b198119671096a05219ab9374b5c2
Reviewed-on: https://github.com/flang-compiler/f18/pull/817
Tree-same-pre-rewrite: false


  Commit: deffc7a55cd2d241bb2cf3b6464b9b874f07ce14
      https://github.com/llvm/llvm-project/commit/deffc7a55cd2d241bb2cf3b6464b9b874f07ce14
  Author: kiranktp <kirankumart.tp at amd.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/separate-module-procs.f90

  Log Message:
  -----------
  [flang] Fix for flang-compiler/f18#694 - Unexpected error when compiling submodule
Incorporated all review comments and updated the test case.

Change-Id: I03939bfc705cc5319a0b7da3305026b8403b8edc

Original-commit: flang-compiler/f18 at 010da4228e31e1fd75aca6410ee8057746fa9857
Reviewed-on: https://github.com/flang-compiler/f18/pull/817
Tree-same-pre-rewrite: false


  Commit: e572117f8b7c7c63769bc83475b348cd35b109fb
      https://github.com/llvm/llvm-project/commit/e572117f8b7c7c63769bc83475b348cd35b109fb
  Author: kiranktp <kirankumart.tp at amd.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    R flang/test/semantics/separate_module_procs_1.f90
    R flang/test/semantics/separate_module_procs_2.f90

  Log Message:
  -----------
  [flang] Fix for flang-compiler/f18#694 - Unexpected error when compiling submodule
Incorporated all review comments and updated the test case.

Change-Id: I03939bfc705cc5319a0b7da3305026b8403b8edc

Original-commit: flang-compiler/f18 at a52b0367ea1f34e0059b0043d1f370bec5896c74
Reviewed-on: https://github.com/flang-compiler/f18/pull/817
Tree-same-pre-rewrite: false


  Commit: 17332e283e257b4259a315ce21cf53784f3b6060
      https://github.com/llvm/llvm-project/commit/17332e283e257b4259a315ce21cf53784f3b6060
  Author: kiranktp <kirankumart.tp at amd.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/separate-module-procs.f90

  Log Message:
  -----------
  [flang] Fix for flang-compiler/f18#694 - Unexpected error when compiling submodule
Incorporated all review comments and updated the test case.

Change-Id: I03939bfc705cc5319a0b7da3305026b8403b8edc

Original-commit: flang-compiler/f18 at 5c602bfbc74a3cad1de6f35204bbfd64ac29bfa3
Reviewed-on: https://github.com/flang-compiler/f18/pull/817


  Commit: 80375b84aa92f68e3e741ea382b4272ed5548af2
      https://github.com/llvm/llvm-project/commit/80375b84aa92f68e3e741ea382b4272ed5548af2
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#817 from kiranktp/master

Fix for flang-compiler/f18#694 - Unexpected error when compiling submodule

Original-commit: flang-compiler/f18 at d7b1121189483489b5c5488b159fad3d73d05582
Reviewed-on: https://github.com/flang-compiler/f18/pull/817


  Commit: 877b26598da89de2df1cdcb8287062a257e0129b
      https://github.com/llvm/llvm-project/commit/877b26598da89de2df1cdcb8287062a257e0129b
  Author: David Truby <david.truby at arm.com>
  Date:   2019-11-13 (Wed, 13 Nov 2019)

  Changed paths:
    A flang/.drone.star

  Log Message:
  -----------
  [flang] Add CI file for cloud.drone.io

Original-commit: flang-compiler/f18 at 32252639abd07ed409fe5f48755d852b91b9ae11
Reviewed-on: https://github.com/flang-compiler/f18/pull/823
Tree-same-pre-rewrite: false


  Commit: 056f5f73b7dd0fe08468c6143a1dafb5bad8fe65
      https://github.com/llvm/llvm-project/commit/056f5f73b7dd0fe08468c6143a1dafb5bad8fe65
  Author: David Truby <david.truby at arm.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M flang/.drone.star

  Log Message:
  -----------
  [flang] Reduce number of threads used for building.

This is to avoid running out of memory on some builds.

Original-commit: flang-compiler/f18 at f8abe443cf3d12d47d08d61530f4da4b4b96c0c5
Reviewed-on: https://github.com/flang-compiler/f18/pull/823


  Commit: d61a8091f6eff2b5b5270efc255a9e005d001b5d
      https://github.com/llvm/llvm-project/commit/d61a8091f6eff2b5b5270efc255a9e005d001b5d
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#823 from DavidTruby/drone_ci

Add CI file for cloud.drone.io

Original-commit: flang-compiler/f18 at 14a4f166e9004683a15cddb0020a9b5dd140a810
Reviewed-on: https://github.com/flang-compiler/f18/pull/823


  Commit: 158f9e09fc9123bb2fd3f339f8d614668c2e2566
      https://github.com/llvm/llvm-project/commit/158f9e09fc9123bb2fd3f339f8d614668c2e2566
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M flang/lib/semantics/program-tree.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix bad deference in ProgramTree

We weren't handling MainProgram with no ProgramStmt correctly in
ProgramTree. When building it we were dereferencing an empty optional.
And in ResolveSpecificationParts we were dereferencing a null pointer.

Original-commit: flang-compiler/f18 at 1bda90d0051d7b67bf76f9aaa1f2963976a15d4a
Reviewed-on: https://github.com/flang-compiler/f18/pull/827


  Commit: f3ed0b59d40afde17f3af614ed66c224188d0bb4
      https://github.com/llvm/llvm-project/commit/f3ed0b59d40afde17f3af614ed66c224188d0bb4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-15 (Fri, 15 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#827 from flang-compiler/tsk-bad-deref

Fix bad deferences in ProgramTree

Original-commit: flang-compiler/f18 at 4190785904a7953d964b3ee41bf9b9183a4d07b7
Reviewed-on: https://github.com/flang-compiler/f18/pull/827


  Commit: 608ea6414dc964a5523b876be25badf7362621d3
      https://github.com/llvm/llvm-project/commit/608ea6414dc964a5523b876be25badf7362621d3
  Author: David Truby <david.truby at arm.com>
  Date:   2019-11-15 (Fri, 15 Nov 2019)

  Changed paths:
    M flang/.drone.star

  Log Message:
  -----------
  [flang] Disable arm64 gcc builds in CI until they can be fixed

Currently the arm64 gcc builds in CI are getting stuck,
so disable these to get CI working again until they're fixed.

Original-commit: flang-compiler/f18 at 49803e62ee3fdfc29ae0bdd6a712cc288e10bb26
Reviewed-on: https://github.com/flang-compiler/f18/pull/829


  Commit: 0f6eaa6269a98ae370776e893a699c00e01e600f
      https://github.com/llvm/llvm-project/commit/0f6eaa6269a98ae370776e893a699c00e01e600f
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-15 (Fri, 15 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#829 from DavidTruby/drone_ci

Disable arm64 gcc builds in CI until they can be fixed

Original-commit: flang-compiler/f18 at c8d226d181b222bc0e0d829922d166acdf26a601
Reviewed-on: https://github.com/flang-compiler/f18/pull/829


  Commit: ed1ed24ec2aa11d2e9dc97a120ce189e661486d8
      https://github.com/llvm/llvm-project/commit/ed1ed24ec2aa11d2e9dc97a120ce189e661486d8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-15 (Fri, 15 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/CMakeLists.txt
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-call.h
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-io.h
    A flang/lib/semantics/check-purity.cc
    A flang/lib/semantics/check-purity.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call02.f90
    M flang/test/semantics/call10.f90
    M flang/test/semantics/expr-errors02.f90
    M flang/test/semantics/modfile03.f90
    M flang/test/semantics/resolve04.f90
    M flang/test/semantics/resolve62.f90
    M flang/test/semantics/structconst03.f90
    M flang/test/semantics/structconst04.f90

  Log Message:
  -----------
  [flang] Semantic checks for PURE subprograms (test call10.f90)

Fix bug found in testing

Original-commit: flang-compiler/f18 at ccdd7326ba56c5a3cf8bc944516e3d1b93b25848
Reviewed-on: https://github.com/flang-compiler/f18/pull/825


  Commit: 22d5da94729aa86f7be69272984ab6dc99b55c35
      https://github.com/llvm/llvm-project/commit/22d5da94729aa86f7be69272984ab6dc99b55c35
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-15 (Fri, 15 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#825 from flang-compiler/pmk-call10

Extend, enable, and pass test call10.f90 (restrictions on PURE subprograms)

Original-commit: flang-compiler/f18 at bf1cc4a9bb821aa1cc12c189c2c3a05b7bf11619
Reviewed-on: https://github.com/flang-compiler/f18/pull/825


  Commit: ccee728e5a3069d1e01cbe48a70bb05cf14ee30f
      https://github.com/llvm/llvm-project/commit/ccee728e5a3069d1e01cbe48a70bb05cf14ee30f
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M flang/lib/common/CMakeLists.txt
    R flang/lib/common/features.cc
    R flang/lib/common/features.h
    A flang/lib/common/flang-features.cc
    A flang/lib/common/flang-features.h
    M flang/lib/parser/basic-parsers.h
    M flang/lib/parser/parse-state.h
    M flang/lib/parser/parsing.h
    M flang/lib/parser/prescan.h
    M flang/lib/parser/user-state.h
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/semantics.h
    M flang/tools/f18/f18-parse-demo.cc
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Rename features.h because many linux systems have an include file called features.h which can complicate makefiles that use a search path.

Original-commit: flang-compiler/f18 at fc34d0ddf355e4f978e2cb984486191041c24ea9
Reviewed-on: https://github.com/flang-compiler/f18/pull/826
Tree-same-pre-rewrite: false


  Commit: 33dad7318701abb8b51bd6ba86e2a73c24fe48b4
      https://github.com/llvm/llvm-project/commit/33dad7318701abb8b51bd6ba86e2a73c24fe48b4
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M flang/lib/common/CMakeLists.txt
    A flang/lib/common/Fortran-features.cc
    A flang/lib/common/Fortran-features.h
    R flang/lib/common/flang-features.cc
    R flang/lib/common/flang-features.h
    M flang/lib/parser/basic-parsers.h
    M flang/lib/parser/parse-state.h
    M flang/lib/parser/parsing.h
    M flang/lib/parser/prescan.h
    M flang/lib/parser/user-state.h
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/semantics.h
    M flang/tools/f18/f18-parse-demo.cc
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Rename flang-features to Fortran-features; update the guard macro.

Original-commit: flang-compiler/f18 at 1a7f5596ecab5eb954130713c5b9e4f6a16c5ab7
Reviewed-on: https://github.com/flang-compiler/f18/pull/826


  Commit: ca2b6589886f74bcf855ea8bc9c9594cc677c77f
      https://github.com/llvm/llvm-project/commit/ca2b6589886f74bcf855ea8bc9c9594cc677c77f
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-16 (Sat, 16 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#826 from flang-compiler/sjs-feature-rename

Rename features.h

Original-commit: flang-compiler/f18 at 6cf3196dbf3b857c5f308101709b473a5578743a
Reviewed-on: https://github.com/flang-compiler/f18/pull/826


  Commit: e5b754e8102f37169e05e6076c8c9451c7fd5ee1
      https://github.com/llvm/llvm-project/commit/e5b754e8102f37169e05e6076c8c9451c7fd5ee1
  Author: David Truby <david.truby at arm.com>
  Date:   2019-11-18 (Mon, 18 Nov 2019)

  Changed paths:
    M flang/.drone.star

  Log Message:
  -----------
  [flang] Change images used for CI to solve build issues

Original-commit: flang-compiler/f18 at 325b26b3a4025d4c54725db6b557276025f706fa
Reviewed-on: https://github.com/flang-compiler/f18/pull/832
Tree-same-pre-rewrite: false


  Commit: f3cab5281d0557bf3f1d638f6571bc128f9976d6
      https://github.com/llvm/llvm-project/commit/f3cab5281d0557bf3f1d638f6571bc128f9976d6
  Author: David Truby <david.truby at arm.com>
  Date:   2019-11-18 (Mon, 18 Nov 2019)

  Changed paths:
    M flang/.drone.star

  Log Message:
  -----------
  [flang] Another atempt to lower core count

Original-commit: flang-compiler/f18 at 60eeb446b160826d587adeea939cc99416c03df5
Reviewed-on: https://github.com/flang-compiler/f18/pull/832


  Commit: 3b001e8cff45415c8f35b367857f1539000d614a
      https://github.com/llvm/llvm-project/commit/3b001e8cff45415c8f35b367857f1539000d614a
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-11-18 (Mon, 18 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#832 from DavidTruby/drone_ci

Change images used for CI to solve build issues

Original-commit: flang-compiler/f18 at 369327a6d0c512973359f57a90b5482f45b2b6f2
Reviewed-on: https://github.com/flang-compiler/f18/pull/832


  Commit: fc94aa6d32c0ee9f13f15ca1733a7cfd2230bdb5
      https://github.com/llvm/llvm-project/commit/fc94aa6d32c0ee9f13f15ca1733a7cfd2230bdb5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-19 (Tue, 19 Nov 2019)

  Changed paths:
    M flang/module/iso_fortran_env.f90
    A flang/runtime/entry-names.h
    A flang/runtime/io-api.h
    A flang/runtime/magic-numbers.h

  Log Message:
  -----------
  [flang] Define runtime I/O library interface to be used by generated code.

Original-commit: flang-compiler/f18 at 82cb9b0c8794e253d6bec4fd01be1b6b5428fc56
Reviewed-on: https://github.com/flang-compiler/f18/pull/802


  Commit: 841561b4322caa49bf7b9b1d37a948b7ab9704d8
      https://github.com/llvm/llvm-project/commit/841561b4322caa49bf7b9b1d37a948b7ab9704d8
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-19 (Tue, 19 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#802 from flang-compiler/pmk-io-header

API for generated code to use to implement I/O data transfer statements

Original-commit: flang-compiler/f18 at 696bce96856a00b5912afb71bb21269698660eed
Reviewed-on: https://github.com/flang-compiler/f18/pull/802


  Commit: ff765f8500361834d6b2b29947e171a325d689a9
      https://github.com/llvm/llvm-project/commit/ff765f8500361834d6b2b29947e171a325d689a9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-19 (Tue, 19 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/variable.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/bindings01.f90
    M flang/test/semantics/call10.f90
    M flang/test/semantics/call11.f90
    M flang/test/semantics/modfile10.f90
    M flang/test/semantics/resolve31.f90
    M flang/test/semantics/resolve32.f90
    M flang/test/semantics/resolve52.f90

  Log Message:
  -----------
  [flang] For call11.f90: more checks on PURE subprograms and TBP bindings

Original-commit: flang-compiler/f18 at 7aa47f0b9e4ad5a7496d3142953092a404f621a2
Reviewed-on: https://github.com/flang-compiler/f18/pull/833


  Commit: 96a6b8c8d0a1fab42fab89dc3eb8498274720e30
      https://github.com/llvm/llvm-project/commit/96a6b8c8d0a1fab42fab89dc3eb8498274720e30
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-19 (Tue, 19 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#833 from flang-compiler/pmk-call11

For call11.f90: more checks on PURE subprograms and TBP bindings

Original-commit: flang-compiler/f18 at 1122b381d65add5d33ee5b39ac39b6d07e110955
Reviewed-on: https://github.com/flang-compiler/f18/pull/833


  Commit: fd76cc47c54fad4e29105fca58f00095d5d00788
      https://github.com/llvm/llvm-project/commit/fd76cc47c54fad4e29105fca58f00095d5d00788
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/semantics.h
    M flang/lib/semantics/tools.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/doconcurrent08.f90
    M flang/test/semantics/dosemantics05.f90

  Log Message:
  -----------
  [flang] Changes to check for constraint C1140
This constraint prohibits deallocation of polymorphic entities in a DO
CONCURRENT.

Section 9.7.3.2 specifies the situations that might cause deallocation
of a polymorphic entity. The ones that are applicable to a DO CONCURRENT
are exiting from a block that declares such variables, intrinsic
assignment, and an actual DEALLOCATE statement. This section also
specifies (paragraph 8) that deallocation of a derived type causes
deallocation of all of its allocatable subobjects.

Section 10.2.1.3 specifies what happens during intrinsic assignment.
Paragraph 3 states If the variable is an allocated allocatable variable,
it is deallocated if expr is an array of different shape, any
corresponding length type parameter values of the variable and expr
differ, or the variable is polymorphic and the dynamic type or any
corresponding kind type parameter values of the variable and expr
differ." Thus, an allocatable polymorphic variable on the left hand side
of an assignment statement gets deallocated. Paragraph 13 states that
  "For a noncoarray allocatable component the following sequence of
   operations is applied.
      (1) If the component of the variable is allocated, it is deallocated."

Thus, a variable on the left-hand side of an assignment statement might have noncorray allocatable components. Such components will be deallocated.
Deallocation can be caused by exiting from a block where the entity is
declared, from an assignment, and from direct deallocation.

Original-commit: flang-compiler/f18 at 7d1932d344308d8266503268a7534532cebe6087
Reviewed-on: https://github.com/flang-compiler/f18/pull/814


  Commit: c7462536ef643527f6d5a9d406c5052e75d90104
      https://github.com/llvm/llvm-project/commit/c7462536ef643527f6d5a9d406c5052e75d90104
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#814 from flang-compiler/ps-c1140

Changes to check for constraint C1140 --  deallocation of polymorphic entities

Original-commit: flang-compiler/f18 at 794b75155abfca6a938b5baa9bff0bc2cf2c4b67
Reviewed-on: https://github.com/flang-compiler/f18/pull/814


  Commit: 11ce9b08234ca8652c8fd944c347ac7f004cfdf7
      https://github.com/llvm/llvm-project/commit/11ce9b08234ca8652c8fd944c347ac7f004cfdf7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/variable.cc
    M flang/lib/evaluate/variable.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-nullify.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call12.f90
    M flang/test/semantics/structconst03.f90
    M flang/test/semantics/structconst04.f90

  Log Message:
  -----------
  [flang] Revert Symbol::operator=() changes

Rearrange "if" nest for clarity

Pass call12.f90 test.

Original-commit: flang-compiler/f18 at 69a1a2b796f64c13b37f417dc03ff6a416384b94
Reviewed-on: https://github.com/flang-compiler/f18/pull/835
Tree-same-pre-rewrite: false


  Commit: 4d372b6dc174d54e6cb276af4737d8faca06df3e
      https://github.com/llvm/llvm-project/commit/4d372b6dc174d54e6cb276af4737d8faca06df3e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/variable.cc
    M flang/lib/semantics/semantics.h
    M flang/lib/semantics/tools.cc

  Log Message:
  -----------
  [flang] Reformat all C++ in lib/*

Original-commit: flang-compiler/f18 at 232bcedb6647592e63dc0dec6c6bd83fd41082b4
Reviewed-on: https://github.com/flang-compiler/f18/pull/835
Tree-same-pre-rewrite: false


  Commit: 223499ec99c7011b06cb4ca124961cdd3a5d86b5
      https://github.com/llvm/llvm-project/commit/223499ec99c7011b06cb4ca124961cdd3a5d86b5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/variable.h
    M flang/lib/semantics/assignment.cc

  Log Message:
  -----------
  [flang] Address review comments

Original-commit: flang-compiler/f18 at 0ce592c7c550027b8d4516af2cda8330b2ddc08a
Reviewed-on: https://github.com/flang-compiler/f18/pull/835


  Commit: bc98aaad7e70bee666ca61fd29a8bae96a8f38f4
      https://github.com/llvm/llvm-project/commit/bc98aaad7e70bee666ca61fd29a8bae96a8f38f4
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-21 (Thu, 21 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#835 from flang-compiler/pmk-call12

Enable, extend, and pass call12.f90 test; revert some recent changes

Original-commit: flang-compiler/f18 at 3feacd8a637f150b8433bbc46d10c53cc054957a
Reviewed-on: https://github.com/flang-compiler/f18/pull/835


  Commit: fe7e36d46c865003a9cb67c215182459f5d59dfd
      https://github.com/llvm/llvm-project/commit/fe7e36d46c865003a9cb67c215182459f5d59dfd
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2019-11-22 (Fri, 22 Nov 2019)

  Changed paths:
    M flang/lib/common/interval.h

  Log Message:
  -----------
  [flang] Need algorithm for std::min (flang-compiler/f18#837)

Original-commit: flang-compiler/f18 at d20a79cdd952e5013c741f052157e50ecb391d34
Reviewed-on: https://github.com/flang-compiler/f18/pull/837


  Commit: e46cd9ee18d5d809123f4984fa23df9648f2fa8e
      https://github.com/llvm/llvm-project/commit/e46cd9ee18d5d809123f4984fa23df9648f2fa8e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-11-22 (Fri, 22 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/semantics/expression.cc
    M flang/module/iso_fortran_env.f90

  Log Message:
  -----------
  [flang] Fold MERGE, use it in ISO_FORTRAN_ENV

Reduce use of intrinsic type KIND codes in ISO_FORTRAN_ENV

Use COUNT([x]) rather than MERGE(1,0,x)

Fix problems in array constructor expression analysis

Original-commit: flang-compiler/f18 at 79018f7126a55a4b8a907f121cc099d5f4f9666a
Reviewed-on: https://github.com/flang-compiler/f18/pull/836


  Commit: 4d7b6cf3c1e63187707d4254e291f6298792675c
      https://github.com/llvm/llvm-project/commit/4d7b6cf3c1e63187707d4254e291f6298792675c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-11-22 (Fri, 22 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#836 from flang-compiler/pmk-kinds

Fold MERGE, use it in ISO_FORTRAN_ENV

Original-commit: flang-compiler/f18 at 34e04649fe6515a84cc5288b8ecfb133bd618e5a
Reviewed-on: https://github.com/flang-compiler/f18/pull/836


  Commit: 701a9bd0e5910c3767c41dfa2c4ecef7db8f060e
      https://github.com/llvm/llvm-project/commit/701a9bd0e5910c3767c41dfa2c4ecef7db8f060e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc

  Log Message:
  -----------
  [flang] Refactor GenericKind

Change GenericKind from an enum class to a variant that includes the
`NumericOperator`, `LogicalOperator`, and `RelationalOperator` from `common`.
This allows for better tests like `IsIntrinsicOperator` (which used to
check for being in a range of the `GenericKind` enumeration) and
simplifies mapping the kind to a string representation.

Original-commit: flang-compiler/f18 at c74327c393649ff95355f00333ffd2352b148f72
Reviewed-on: https://github.com/flang-compiler/f18/pull/841
Tree-same-pre-rewrite: false


  Commit: e2b939e5f349bd2a9b42dc6daecd64b069cc1fee
      https://github.com/llvm/llvm-project/commit/e2b939e5f349bd2a9b42dc6daecd64b069cc1fee
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h

  Log Message:
  -----------
  [flang] Combine GenericDetails and GenericBindingDetails

`GenericDetails` and `GenericBindingDetails` were almost identical:
the former has optional data members to handle the case when a specific
procedure or derived type has the same name as the generic symbol.

Most places they are handled the same way so it simplifies things to
have only one type. In the case where we want to know if it is a generic
binding (e.g. in `mod-file.cc`) we can check the kind of scope that owns
the symbol.

Save name from the generic binding for better location of error messages.

Original-commit: flang-compiler/f18 at f65a9edca232098be1412607e59b6ed1d5803ad7
Reviewed-on: https://github.com/flang-compiler/f18/pull/841
Tree-same-pre-rewrite: false


  Commit: abc99c63ff1bfa0de59429ecf6ba99d2b76d3656
      https://github.com/llvm/llvm-project/commit/abc99c63ff1bfa0de59429ecf6ba99d2b76d3656
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/semantics.h

  Log Message:
  -----------
  [flang] Change AttachDeclaration to take reference instead of pointer

AttachDeclaration (and so also SayWithDeclaration) don't do anything
when passed a null pointer for the symbol and in all but one place they
are called the symbol can't be null. So change both function to take
`const Symbol &` rather than `const Symbol *`. Change it to handle
procedure bindings as well.

Add `SayWithDeclaration` to `CheckHelper` to simplify calling the one in
`evaluate` and prevent attaching the declaration when it would point at
the same line.

Original-commit: flang-compiler/f18 at 5f1c2ff6638da837616fa7ae6e3e121544c89bb7
Reviewed-on: https://github.com/flang-compiler/f18/pull/841
Tree-same-pre-rewrite: false


  Commit: 67c548376d3360f79bc201ac524153e6b5d2420d
      https://github.com/llvm/llvm-project/commit/67c548376d3360f79bc201ac524153e6b5d2420d
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Move distinguishability check to check-declarations.cc

The check that specific procedures of a generic are distinguishable
doesn't need to be done in `resolve-names.cc`. It can be deferred until
`check-declarations.cc` because it only depends on the symbol table.
Make use of `AttachDeclaration` when reporting errors

Refactor checks for different symbol details into separate functions
as they are getting more numerous.

Original-commit: flang-compiler/f18 at cd0d6930bba3ae92f2526d7ce1fbf5e39afe2f38
Reviewed-on: https://github.com/flang-compiler/f18/pull/841
Tree-same-pre-rewrite: false


  Commit: b51673cab9b11e4b6d987f47a99e88851cde6199
      https://github.com/llvm/llvm-project/commit/b51673cab9b11e4b6d987f47a99e88851cde6199
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/resolve15.f90
    M flang/test/semantics/resolve53.f90
    A flang/test/semantics/resolve65.f90

  Log Message:
  -----------
  [flang] Add checks for valid defined assignment procedures

Perform the checks from 15.4.3.4.3 to determine what procedures are
valid to implement defined assignment. This requires characterizing
procedures, so share the result of that with
`CheckSpecificsAreDistinguishable`.

Original-commit: flang-compiler/f18 at 9e0d79f1735cf99b43f9ff7f6d712d7aa862dead
Reviewed-on: https://github.com/flang-compiler/f18/pull/841
Tree-same-pre-rewrite: false


  Commit: e67f6a775ec2fb0e1f2878b3eaff6e507e8f47e8
      https://github.com/llvm/llvm-project/commit/e67f6a775ec2fb0e1f2878b3eaff6e507e8f47e8
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Extract Parenthesize function

Move the code to parenthesize an expression from `ExpressionAnalyzer`
into `evaluate/tools.h` so that it can be used to parenthesize an
`ActualArgument`. This will be needed for defined assignment calls.

Original-commit: flang-compiler/f18 at 6180d1fb9bd8dbbf26697353b271deb59aa466fa
Reviewed-on: https://github.com/flang-compiler/f18/pull/841
Tree-same-pre-rewrite: false


  Commit: ddb4f259f6c766eb692ead85a1302b214448b8a0
      https://github.com/llvm/llvm-project/commit/ddb4f259f6c766eb692ead85a1302b214448b8a0
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/parser/parse-tree.cc
    M flang/lib/parser/parse-tree.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/tools/f18/stub-evaluate.cc

  Log Message:
  -----------
  [flang] Add analyzed assignment to parse tree

Add `typedAssignment` to the `AssignmentStmt` node, analagous to
`typedExpr` in `Expr`. This represents the analyzed form of an assignment.
It may be a subroutine call in the case of a user-defined assignment.
Add `GetAssignment` function to get it from the parse tree node if present.

Original-commit: flang-compiler/f18 at 675b0b9bb7617231e8e4bfa0c7a63423c74d79a4
Reviewed-on: https://github.com/flang-compiler/f18/pull/841
Tree-same-pre-rewrite: false


  Commit: 18f3a2beef2ed24fc7fe1c1f226ab49af62dc098
      https://github.com/llvm/llvm-project/commit/18f3a2beef2ed24fc7fe1c1f226ab49af62dc098
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/call10.f90
    M flang/test/semantics/resolve62.f90
    M flang/test/semantics/resolve63.f90
    M flang/test/semantics/resolve64.f90
    A flang/test/semantics/resolve66.f90

  Log Message:
  -----------
  [flang] Analyze intrinsic and user-defined assignments

Change expression analysis to do assignment statements as it currently
does call statements. Check there for defined assignment and set
`typedAssignment` in the `AssignmentStmt` node to contain the analyzed
assignment, either intrinsic or user-defined.
When `var = expr` is implemented by subroutine `sub`, the analyzed
assignment contains a procedure reference to `sub(var, (expr))`.

Add `IsDefinedAssignment` to decide based on types and ranks of lhs
and rhs whether is can be a defined assignment. The result is
tri-state because when they are both the same derived type it can
be either intrinsic or defined. Use this where a similar decision
is made in `check-declarations.cc`.

Change "Procedure referenced in PURE subprogram" error message to
contain the name of the procedure. If the reference is from a defined
assignment that name won't appear on the highlighted source line.

Original-commit: flang-compiler/f18 at 5c87071210ec74e9395805dd547c107e7d3bf7b6
Reviewed-on: https://github.com/flang-compiler/f18/pull/841


  Commit: 477bd3c67e343cc2b8715841e0cb1189a15d5dc5
      https://github.com/llvm/llvm-project/commit/477bd3c67e343cc2b8715841e0cb1189a15d5dc5
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#841 from flang-compiler/tsk-assignment3

Analyze defined assignments

Original-commit: flang-compiler/f18 at 706a166476f4c275e67adde14669f2b844f0ea39
Reviewed-on: https://github.com/flang-compiler/f18/pull/841


  Commit: 201119217fd8d3eac9e19d79cddc5e00d4c72500
      https://github.com/llvm/llvm-project/commit/201119217fd8d3eac9e19d79cddc5e00d4c72500
  Author: kiranchandramohan <kiranchandramohan at gmail.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/test/evaluate/folding06.f90

  Log Message:
  -----------
  [flang] Minor fix in folding of reshape intrinsic (flang-compiler/f18#842)

The standard permits source to have more elements than the
result (as specified by the SHAPE arg). While copying, ensure
that we do not copy more than the number of elements of the
result.

Original-commit: flang-compiler/f18 at 6b8284f4f2cff32fcf5483ea93d1d239ecdacd33
Reviewed-on: https://github.com/flang-compiler/f18/pull/842


  Commit: b0823c7b69dcad4b0539d903b61c8687753fe343
      https://github.com/llvm/llvm-project/commit/b0823c7b69dcad4b0539d903b61c8687753fe343
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-02 (Mon, 02 Dec 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/resolve11.f90
    M flang/test/semantics/resolve13.f90
    M flang/test/semantics/resolve25.f90
    M flang/test/semantics/resolve53.f90
    M flang/test/semantics/resolve63.f90
    A flang/test/semantics/resolve67.f90

  Log Message:
  -----------
  [flang] Check functions that implement defined operators (flang-compiler/f18#846)

Section 15.4.3.4.2 specifies restrictions on functions that may be used
to implement an "extended-intrinsic-op". These checkw are implemented in
`CheckHelper::CheckDefinedOperator`.

Move `IsIntrinsicRelational` et al. to `semantics/tools.h` so that
the same logic is used to check both dummy and actual arguments.

Fix up tests that had errors that are now detected.

Original-commit: flang-compiler/f18 at b900762eed5883bfbc31349847381098de1e7b6a
Reviewed-on: https://github.com/flang-compiler/f18/pull/846


  Commit: 7139a04e31c33ffca564dae763e97173cf69271f
      https://github.com/llvm/llvm-project/commit/7139a04e31c33ffca564dae763e97173cf69271f
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-12-02 (Mon, 02 Dec 2019)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/dosemantics02.f90
    M flang/test/semantics/dosemantics05.f90

  Log Message:
  -----------
  [flang] Add a check for DO step expressions being zero
This is prohibited by Section 11.1.7.4.1, paragraph 1.

Note also that we allow for REAL step expressions.  But the check I
added only works for INTEGER step expressions.

I added a function to tools.cc to test to see if an expression is zero,
and I added calls to check-do.cc for regular and CONCURRENT DO
statements to this function.  I made the regular DO a warning and the DO
CONCURRENT message an error.  I added tests for the DO CONCURRENT case,
including a test that uses an integer constant.

Original-commit: flang-compiler/f18 at 8c4fadfe00fec25f9c814a14aa1e4d31c21df3be
Reviewed-on: https://github.com/flang-compiler/f18/pull/834


  Commit: e373ddf6cd229f3edce404c05335fcb7cf56af53
      https://github.com/llvm/llvm-project/commit/e373ddf6cd229f3edce404c05335fcb7cf56af53
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-12-02 (Mon, 02 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#834 from flang-compiler/ps-zerodo

Add a check for DO step expressions being zero

Original-commit: flang-compiler/f18 at a5a55d5f3fb71109afd5d94ba3fdd0051778a19c
Reviewed-on: https://github.com/flang-compiler/f18/pull/834


  Commit: 780c2aea65bb30356a4f0cdf8c122f4791f7104c
      https://github.com/llvm/llvm-project/commit/780c2aea65bb30356a4f0cdf8c122f4791f7104c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-02 (Mon, 02 Dec 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/bad-forward-type.f90
    A flang/test/semantics/symbol17.f90

  Log Message:
  -----------
  [flang] Implement forward references to derived types (fix flang-compiler/f18#573)

Restructuring PDT instantiation in preparation for forward references

Complete tests, pass them

Address review comments

Original-commit: flang-compiler/f18 at b66ba55a73c8e4b94ffd4164b8428a848e593b3f
Reviewed-on: https://github.com/flang-compiler/f18/pull/847


  Commit: 29a890e631119989badefc11fea7a9be3604c26f
      https://github.com/llvm/llvm-project/commit/29a890e631119989badefc11fea7a9be3604c26f
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-02 (Mon, 02 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#847 from flang-compiler/pmk-forward-type-ref

Forward references to derived types

Original-commit: flang-compiler/f18 at 5928825790958a89d5b29f7def7b1d31596a5a06
Reviewed-on: https://github.com/flang-compiler/f18/pull/847


  Commit: b1e7ec6620be0cb1ca1b1a59f9264ee448334c1a
      https://github.com/llvm/llvm-project/commit/b1e7ec6620be0cb1ca1b1a59f9264ee448334c1a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-02 (Mon, 02 Dec 2019)

  Changed paths:
    M flang/lib/semantics/symbol.cc

  Log Message:
  -----------
  [flang] Dodge GCC 7.2 bug

Original-commit: flang-compiler/f18 at bde158343aa254d529cac85657c4102194999b6f
Reviewed-on: https://github.com/flang-compiler/f18/pull/848


  Commit: 293c7c28a8636d0fc63aebc68cb83fc5dfee31b1
      https://github.com/llvm/llvm-project/commit/293c7c28a8636d0fc63aebc68cb83fc5dfee31b1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#848 from flang-compiler/pmk-fix-gcc-7.2-build

Dodge GCC 7.2 bug

Original-commit: flang-compiler/f18 at 567a1642f45d9831dea16bcab7e66ed9f2729e9f
Reviewed-on: https://github.com/flang-compiler/f18/pull/848


  Commit: 203627d3a5b45c95a2e845e242c97f6baf11bd7f
      https://github.com/llvm/llvm-project/commit/203627d3a5b45c95a2e845e242c97f6baf11bd7f
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/semantics/tools.cc
    M flang/test/semantics/call11.f90

  Log Message:
  -----------
  [flang] Fix PURE check on procedure binding

A symbol that represents a procedure binding is PURE if the procedure
it is bound to is PURE. Fix `IsPureProcedure` to check that.

Make use of `IsPureProcedure` in `CheckSpecificationExprHelper`.

Original-commit: flang-compiler/f18 at c95f2eb4fb25d464977690ba03260be2451911d7
Reviewed-on: https://github.com/flang-compiler/f18/pull/849


  Commit: 1564d2735c94649a0d39e2cda1e11c396031efbf
      https://github.com/llvm/llvm-project/commit/1564d2735c94649a0d39e2cda1e11c396031efbf
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#849 from flang-compiler/tsk-pure

Fix PURE check on procedure binding

Original-commit: flang-compiler/f18 at 58f036ec01c0abd8c186914711f565388e67ae52
Reviewed-on: https://github.com/flang-compiler/f18/pull/849


  Commit: 64ea224aceb6cd4b1b83f7fc1cad23ecce2c5cf5
      https://github.com/llvm/llvm-project/commit/64ea224aceb6cd4b1b83f7fc1cad23ecce2c5cf5
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/provenance.cc
    M flang/lib/semantics/mod-file.cc

  Log Message:
  -----------
  [flang] Fix bug flang-compiler/f18#843, bad recovery from failed opens of source files

Original-commit: flang-compiler/f18 at 27d9db610fc7302b8da33e19a70c441a0ead6c7c
Reviewed-on: https://github.com/flang-compiler/f18/pull/850


  Commit: 31624ae53f14a11a1cb2e2cd1ec03fc94eca69bf
      https://github.com/llvm/llvm-project/commit/31624ae53f14a11a1cb2e2cd1ec03fc94eca69bf
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#850 from flang-compiler/pmk-853

Fix bug flang-compiler/f18#843, bad recovery from failed opens of source files

Original-commit: flang-compiler/f18 at db7214e2e6fd8f2ae5f9224748a61c749e35a1c0
Reviewed-on: https://github.com/flang-compiler/f18/pull/850


  Commit: 9cf3c638ecdf3cb749977e44546bf98a686dc459
      https://github.com/llvm/llvm-project/commit/9cf3c638ecdf3cb749977e44546bf98a686dc459
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/symbol17.f90

  Log Message:
  -----------
  [flang] Fix forward ref to derived type when symbol exists

Fix some comments

Original-commit: flang-compiler/f18 at 3274ed95459865057a2e77966863e6b01b5f6d35
Reviewed-on: https://github.com/flang-compiler/f18/pull/852


  Commit: c559c42c14520afbdc09627ce3473aa2098aabc5
      https://github.com/llvm/llvm-project/commit/c559c42c14520afbdc09627ce3473aa2098aabc5
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#852 from flang-compiler/pmk-forward-private

Fix forward ref to derived type when symbol exists

Original-commit: flang-compiler/f18 at 7471db2be0fc1b3e66de48acb8d573e9f31cf815
Reviewed-on: https://github.com/flang-compiler/f18/pull/852


  Commit: b0371c2fd576e7887a1939916010819ccb772307
      https://github.com/llvm/llvm-project/commit/b0371c2fd576e7887a1939916010819ccb772307
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-12-03 (Tue, 03 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/real.cc
    M flang/test/semantics/modfile20.f90

  Log Message:
  -----------
  [flang] Complex expression dump fixes

1. Dump negative parts in complex constants without parentheses

(-1., 0.) was dumped as ((-1.), 0.) from f18 expression format.
The latter format is only valid with the complex constructor extension
that is not supported by all compilers.
This commit ensure the former fromat is used in dumps so that dumps can
be used by all fortran compilers. It turns out the parenthesis added
by REAL::AsFortran are not required because operation lowering is
already taking care of this.

2. Dump evaluate::ComplexComponent with REAL/IMAG instead of %RE/%IM

f18 was failing to reparse its own dump in some cases involving
complex expressions like `-z**i`.
The reason was %RE and %IM were used to dump ComplexComponents.
%RE and %IM can only be used on designators but ComplexComponent can
contain arbitrary complex expressions.
Hence, %RE and %IM cannot be used to dump ComplexComponent.
This commit replace them with call to intrinsic function
REAL/IMAG.
Note that this may unfortunatly be unsafe if the user
shadowed REAL or IMAG but I do not see an easy way to solve
this... The current dump is not correct.

Original-commit: flang-compiler/f18 at 4550a23d0bdce4ffa8d8765a1da4b35151eebe50
Reviewed-on: https://github.com/flang-compiler/f18/pull/851


  Commit: 0aa8f5f643b670837f86bb273b534ffadce2c693
      https://github.com/llvm/llvm-project/commit/0aa8f5f643b670837f86bb273b534ffadce2c693
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-12-04 (Wed, 04 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#851 from flang-compiler/jpr-complex-literal-dump-2

Complex expression dump fixes

Original-commit: flang-compiler/f18 at 84c57b8e011e0701cb582522faaacbf06479d88a
Reviewed-on: https://github.com/flang-compiler/f18/pull/851


  Commit: f439356f61f1bb3be36a0cb7668f8e6969dcdd8f
      https://github.com/llvm/llvm-project/commit/f439356f61f1bb3be36a0cb7668f8e6969dcdd8f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-05 (Thu, 05 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/test/evaluate/intrinsics.cc
    M flang/test/semantics/call11.f90
    M flang/test/semantics/modfile08.f90
    M flang/test/semantics/modfile10.f90
    M flang/test/semantics/modfile14.f90
    M flang/test/semantics/modfile15.f90

  Log Message:
  -----------
  [flang] Fix problems with passed-object arguments by deferring the
identification of their index in the dummy argument list,
simplifying their representation, completing the representation
of their actual arguments, and (while I'm here) resolving
calls to type-bound procedures whose bindings are known at
compilation time.

Button up class ActualArgument by making remaining data
members private and adding accessors & mutators.

Original-commit: flang-compiler/f18 at 5eb60ec41912b0963e41bbc1a3141164efcb7fbf
Reviewed-on: https://github.com/flang-compiler/f18/pull/855


  Commit: 371399b8e1707a39e1262aed5d46536df5e97655
      https://github.com/llvm/llvm-project/commit/371399b8e1707a39e1262aed5d46536df5e97655
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-05 (Thu, 05 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#855 from flang-compiler/pmk-fix

Fix problems with passed-object arguments...

Original-commit: flang-compiler/f18 at 882d20d4fb676535d0b96e2960d3874ce1a2a09a
Reviewed-on: https://github.com/flang-compiler/f18/pull/855


  Commit: 00c3c274de3b4f954ff727676354cba5ba6a197d
      https://github.com/llvm/llvm-project/commit/00c3c274de3b4f954ff727676354cba5ba6a197d
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-06 (Fri, 06 Dec 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/common/Fortran-features.h
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Allow assignment between INTEGER and LOGICAL as extension

Extend documentation

Original-commit: flang-compiler/f18 at 7a719198fc7dc09f50cd1e4129d87f2ace711c4b
Reviewed-on: https://github.com/flang-compiler/f18/pull/856


  Commit: 47575727f7e285a1aa719c78e407fc41e175da35
      https://github.com/llvm/llvm-project/commit/47575727f7e285a1aa719c78e407fc41e175da35
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-06 (Fri, 06 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#856 from flang-compiler/pmk-legacy-assignments

Allow assignment between INTEGER and LOGICAL as extension

Original-commit: flang-compiler/f18 at 169f380eafa87f2164e4529a314701feaee55ad6
Reviewed-on: https://github.com/flang-compiler/f18/pull/856


  Commit: 6c390a780b4195a0498802f0a2e8658e934cc4ad
      https://github.com/llvm/llvm-project/commit/6c390a780b4195a0498802f0a2e8658e934cc4ad
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-06 (Fri, 06 Dec 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/common/Fortran-features.h
    M flang/lib/parser/grammar.h
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/parser/source.cc

  Log Message:
  -----------
  [flang] Accept source files with no program units (flang-compiler/f18#658)

update documentation

Original-commit: flang-compiler/f18 at 3dfb8314991035a428c514cf0ad46af446d64a4e
Reviewed-on: https://github.com/flang-compiler/f18/pull/859


  Commit: f8ae66dd11dfeb2b9f163ed80e503c00f08cb7c8
      https://github.com/llvm/llvm-project/commit/f8ae66dd11dfeb2b9f163ed80e503c00f08cb7c8
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-06 (Fri, 06 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#859 from flang-compiler/pmk-empty

Accept source files with no program units (flang-compiler/f18#658)

Original-commit: flang-compiler/f18 at 2ebb75529c80a21658250dafffbf49ebdc27847e
Reviewed-on: https://github.com/flang-compiler/f18/pull/859


  Commit: ce1bd441983eb80361a86866e3be595944a0a6f1
      https://github.com/llvm/llvm-project/commit/ce1bd441983eb80361a86866e3be595944a0a6f1
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-12-09 (Mon, 09 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc
    M flang/test/evaluate/folding01.f90

  Log Message:
  -----------
  [flang] Fix COMPLEX/REAL `/` and `**` operand promotion
The real operand was always converted to the complex operand type.
The highest precison should be used instead. This fix converts the
real to a complex of the same kind before applying the promotion
rules for complex operands.
Reference to Fortran 2018 standard 10.9.1.3 that rules this added
in comments.

Original-commit: flang-compiler/f18 at 0d6b9c33aae59d80ff1b77f3561a6acb1db98645
Reviewed-on: https://github.com/flang-compiler/f18/pull/858


  Commit: ed37b52fef86ec1638d44d514658b19d17e6d08d
      https://github.com/llvm/llvm-project/commit/ed37b52fef86ec1638d44d514658b19d17e6d08d
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-12-09 (Mon, 09 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#858 from flang-compiler/jpr-complex-power-promote-fix

Fix COMPLEX-REAL `/` and `**` operand promotion

Original-commit: flang-compiler/f18 at 722caa61f217625aed4d4654e5f03627777d2323
Reviewed-on: https://github.com/flang-compiler/f18/pull/858


  Commit: ef68ed381d2e07293fa9cbf96d34fdd658c6d142
      https://github.com/llvm/llvm-project/commit/ef68ed381d2e07293fa9cbf96d34fdd658c6d142
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-09 (Mon, 09 Dec 2019)

  Changed paths:
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/modfile34.f90
    A flang/test/semantics/resolve68.f90

  Log Message:
  -----------
  [flang] Resolve calls to type-bound generic names

Extend `ResolveGeneric` to handle calls to procedure components by
passing in the data-ref that is used as the passed-object argument.

`AddPassArg` takes care of adding a placeholder for the passed object.
This is shared by the generic and non-generic cases of calls to
procedure components.

Original-commit: flang-compiler/f18 at be83590183f7abf32c0cc111c812fd484af36f2b
Reviewed-on: https://github.com/flang-compiler/f18/pull/863


  Commit: a27ed74672655716ff21910cc834abd733475914
      https://github.com/llvm/llvm-project/commit/a27ed74672655716ff21910cc834abd733475914
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-09 (Mon, 09 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#863 from flang-compiler/tsk-defined-op2

Resolve calls to type-bound generic names

Original-commit: flang-compiler/f18 at b3bb698086ab9a79c285f90b956036d8411f4520
Reviewed-on: https://github.com/flang-compiler/f18/pull/863


  Commit: e693198c5c127aa9592a9d33a64f35981cf9b695
      https://github.com/llvm/llvm-project/commit/e693198c5c127aa9592a9d33a64f35981cf9b695
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/expression.cc
    M flang/test/semantics/modfile34.f90

  Log Message:
  -----------
  [flang] Revert recent addition of ActualArgument::PassedObject

reformatting

Complete merging with current master

implement extension of inherited type-bound generics

Original-commit: flang-compiler/f18 at e58c4e53c2fcf6559e7254ce0fd1e4b96d158c73
Reviewed-on: https://github.com/flang-compiler/f18/pull/864


  Commit: 84c0faa5b6c280bc7e7fcf805d8352d1b6b441c2
      https://github.com/llvm/llvm-project/commit/84c0faa5b6c280bc7e7fcf805d8352d1b6b441c2
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#864 from flang-compiler/pmk-fix

Revert recent addition of ActualArgument::PassedObject

Original-commit: flang-compiler/f18 at d1b6e3cd2c4ef79df6804edd85d7b1e1d398e255
Reviewed-on: https://github.com/flang-compiler/f18/pull/864


  Commit: 562b067439e70d3bf1be0534c4ae404a052b352a
      https://github.com/llvm/llvm-project/commit/562b067439e70d3bf1be0534c4ae404a052b352a
  Author: arjunsuresh1987 <58212614+arjunsuresh1987 at users.noreply.github.com>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:
    M flang/CMakeLists.txt

  Log Message:
  -----------
  [flang] Fix file path in cmake (flang-compiler/f18#844)

Original-commit: flang-compiler/f18 at 4771f8cb7895ebc1fa836e8cf3ceddfa7a705eba
Reviewed-on: https://github.com/flang-compiler/f18/pull/844


  Commit: cdf4ef496288600a11e62c00992fe53fe1eea527
      https://github.com/llvm/llvm-project/commit/cdf4ef496288600a11e62c00992fe53fe1eea527
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/tools.cc

  Log Message:
  -----------
  [flang] Fix INTGER**COMPLEX regression introduced by PR 858
Fix bad copy past that had introduced an unitialized value use.

Original-commit: flang-compiler/f18 at 9a84bcb9ac3a06800e9c0f0941a6a82d8416a9fe
Reviewed-on: https://github.com/flang-compiler/f18/pull/865


  Commit: a66086749bbebb90fce95361b945a0d70caa941d
      https://github.com/llvm/llvm-project/commit/a66086749bbebb90fce95361b945a0d70caa941d
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#865 from flang-compiler/jpr-fix-cplx-power

Fix INTGER**COMPLEX regression introduced by PR 858

Original-commit: flang-compiler/f18 at 53545d7436c452e2329615326ab95799083dbcd3
Reviewed-on: https://github.com/flang-compiler/f18/pull/865


  Commit: b96a26c1fcce8060c0ee957f4d1ea86b6525c666
      https://github.com/llvm/llvm-project/commit/b96a26c1fcce8060c0ee957f4d1ea86b6525c666
  Author: Kiran Kumar T P <50909805+kiranktp at users.noreply.github.com>
  Date:   2019-12-11 (Wed, 11 Dec 2019)

  Changed paths:
    M flang/test/semantics/call10.f90

  Log Message:
  -----------
  [flang] Updated call10.f90 with more test for flang-compiler/f18#794-Check for PURE procedures containing image control statements (flang-compiler/f18#857)

Original-commit: flang-compiler/f18 at ae4868e572c90e0ec2c618f4235c9de1ea8cade5
Reviewed-on: https://github.com/flang-compiler/f18/pull/857


  Commit: 3e656068370d2ce0f1728bb30516737d57d829ca
      https://github.com/llvm/llvm-project/commit/3e656068370d2ce0f1728bb30516737d57d829ca
  Author: Gary Klimowicz <gklimowicz at pobox.com>
  Date:   2019-12-11 (Wed, 11 Dec 2019)

  Changed paths:
    M flang/LICENSE
    M flang/runtime/magic-numbers.h

  Log Message:
  -----------
  [flang] Flang relicense: LICENSE file and one change (flang-compiler/f18#867)

Add new license text to runtime/magic-numbers.h, which is unusual
in that it is the only .h file in flang that is intended to be
included in either C or Fortran files. This requires special
handling of the license text.

Original-commit: flang-compiler/f18 at 61bb9db531ad4fbe8fda9978a6b7754cb86323c2
Reviewed-on: https://github.com/flang-compiler/f18/pull/867


  Commit: abf50fc3a7eba734d6e29d5e502968e0a6471529
      https://github.com/llvm/llvm-project/commit/abf50fc3a7eba734d6e29d5e502968e0a6471529
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-12-11 (Wed, 11 Dec 2019)

  Changed paths:
    M flang/lib/CMakeLists.txt
    R flang/lib/burnside/CMakeLists.txt
    R flang/lib/burnside/builder.h
    R flang/lib/burnside/flattened.cc
    R flang/lib/burnside/flattened.h
    R flang/lib/burnside/mixin.h

  Log Message:
  -----------
  [flang] remove some old files

Original-commit: flang-compiler/f18 at d7554c7605079c8a2f8d3d2d6d584241d3112ecd
Reviewed-on: https://github.com/flang-compiler/f18/pull/868


  Commit: 5c5880db2f1770875c7b7186aeeec87702803a4a
      https://github.com/llvm/llvm-project/commit/5c5880db2f1770875c7b7186aeeec87702803a4a
  Author: Eric Schweitz <eric.schweitz at pgroup.com>
  Date:   2019-12-11 (Wed, 11 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#868 from schweitzpgi/remove-flatten

remove some old files

Original-commit: flang-compiler/f18 at 3d05d39e3636fecab2bc1b7540cec9d672f72944
Reviewed-on: https://github.com/flang-compiler/f18/pull/868


  Commit: f90350021a0cb7942af6a1712fd64ef074f635b5
      https://github.com/llvm/llvm-project/commit/f90350021a0cb7942af6a1712fd64ef074f635b5
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-12-13 (Fri, 13 Dec 2019)

  Changed paths:
    R flang/include/fir/Analysis/IteratedDominanceFrontier.h
    R flang/include/fir/Attribute.h
    R flang/include/fir/CMakeLists.txt
    R flang/include/fir/Dialect.h
    R flang/include/fir/FIROps.h
    R flang/include/fir/FIROps.td
    R flang/include/fir/Transforms/MemToReg.h
    R flang/include/fir/Type.h

  Log Message:
  -----------
  [flang] remove stale optimizer files

Original-commit: flang-compiler/f18 at c497c135f6f277f2dee0c1c3c82319577448438c
Reviewed-on: https://github.com/flang-compiler/f18/pull/869


  Commit: f061d345094baa161355c8e2e3d3ab50d045ec6e
      https://github.com/llvm/llvm-project/commit/f061d345094baa161355c8e2e3d3ab50d045ec6e
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#869 from schweitzpgi/master

remove stale optimizer files

Original-commit: flang-compiler/f18 at 6a8dec4991ecb219f0d42a865d799c93e675612f
Reviewed-on: https://github.com/flang-compiler/f18/pull/869


  Commit: d08b0104081d237dfec91b15c386852f07635639
      https://github.com/llvm/llvm-project/commit/d08b0104081d237dfec91b15c386852f07635639
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/intrinsics.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/evaluate/variable.cc
    M flang/lib/evaluate/variable.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/rewrite-parse-tree.cc
    M flang/lib/semantics/symbol.h
    M flang/test/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Apply implicit typing to names in COMMON that appear in specification expressions

Extend semantic analysis of expressions to catch missing cases

Fix statement function semantics, add degree trig intrinsics

Add GetUltimate to rewrite of bare namelist

Address review comments

Original-commit: flang-compiler/f18 at 52ff319de2e750733660d8e7e938e09159a3c11c
Reviewed-on: https://github.com/flang-compiler/f18/pull/871


  Commit: 968eabbd9dc0f7230cce9892792e6bf85c181726
      https://github.com/llvm/llvm-project/commit/968eabbd9dc0f7230cce9892792e6bf85c181726
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#871 from flang-compiler/pmk-fixes

Fix remaining failures in expression semantics

Original-commit: flang-compiler/f18 at 7473f0bcd76a055fffea9d3f47567a64fceb5ccf
Reviewed-on: https://github.com/flang-compiler/f18/pull/871


  Commit: e567bf9f5e7200df6f94c489d43b06bb764f0e15
      https://github.com/llvm/llvm-project/commit/e567bf9f5e7200df6f94c489d43b06bb764f0e15
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:
    M flang/lib/parser/message.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/modfile35.f90
    M flang/test/semantics/resolve63.f90

  Log Message:
  -----------
  [flang] Support for type-bound operators and assignment

Add `ArgumentAnalyzer::FindBoundOp` to look for an operator or
assignment definition in the type of each operand. Then `TryBoundOp`
checks if it is actually applicable.

Change ResolveGeneric to handle type-bound operators: the `adjustActuals`
function passed in handles the difference between these and normal
type-bound procedures. For operators, either operand may be the passed-
object argument. For procedures we know which one it is.

Extract `GetDerivedTypeSpec`, `GetBindingResolution`, and
`OkLogicalIntegerAssignment` into separate functions to simplify the
logic of the calling functions.

Original-commit: flang-compiler/f18 at 1f7ff22145ef61c4c168c466f4de4fab11e0f611
Reviewed-on: https://github.com/flang-compiler/f18/pull/872
Tree-same-pre-rewrite: false


  Commit: 6e2e78a09e5a4474702f7ceb74b59dc449a930dd
      https://github.com/llvm/llvm-project/commit/6e2e78a09e5a4474702f7ceb74b59dc449a930dd
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/test/semantics/resolve63.f90
    M flang/test/semantics/resolve65.f90

  Log Message:
  -----------
  [flang] C774: Defined operator/assignment may not have NOPASS

Original-commit: flang-compiler/f18 at 6bfa3d3568b6dc373d62d691db2fd5e8859fff47
Reviewed-on: https://github.com/flang-compiler/f18/pull/872
Tree-same-pre-rewrite: false


  Commit: ea00274e6d016115f795084e6d60902c8ab4197b
      https://github.com/llvm/llvm-project/commit/ea00274e6d016115f795084e6d60902c8ab4197b
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-coarray.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/tools.cc

  Log Message:
  -----------
  [flang] Add evaluate::GetDerivedTypeSpec(DynamicType)

It gets the semantics::DerivedTypeSpec of a DynamicType if it has one.
Make use of it where it simplifies the code.

Original-commit: flang-compiler/f18 at 9ad12e7c131459a8beab2b9ffa204966a85f405a
Reviewed-on: https://github.com/flang-compiler/f18/pull/872


  Commit: b738d4ad3809cb6e9e6ca72c9e6ae7516d18cd0b
      https://github.com/llvm/llvm-project/commit/b738d4ad3809cb6e9e6ca72c9e6ae7516d18cd0b
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#872 from flang-compiler/tsk-defined-op2

Support for type-bound operators and assignment

Original-commit: flang-compiler/f18 at 9862c9406144ccb39f97453909fc476d8c380f4b
Reviewed-on: https://github.com/flang-compiler/f18/pull/872


  Commit: 40f0e01d2d88f337b33ef49cd2209e5533b80c75
      https://github.com/llvm/llvm-project/commit/40f0e01d2d88f337b33ef49cd2209e5533b80c75
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:
    M flang/lib/parser/CMakeLists.txt
    A flang/lib/parser/Fortran-parsers.cc
    A flang/lib/parser/executable-parsers.cc
    A flang/lib/parser/expr-parsers.cc
    A flang/lib/parser/expr-parsers.h
    R flang/lib/parser/grammar.h
    A flang/lib/parser/io-parsers.cc
    A flang/lib/parser/misc-parsers.h
    R flang/lib/parser/openmp-grammar.h
    A flang/lib/parser/openmp-parsers.cc
    M flang/lib/parser/parsing.cc
    A flang/lib/parser/program-parsers.cc
    M flang/lib/parser/token-parsers.h
    A flang/lib/parser/type-parser-implementation.h
    M flang/lib/parser/type-parsers.h
    M flang/lib/parser/user-state.cc

  Log Message:
  -----------
  [flang] Outline per-type parsers to reduce f18 build-time
CPU & memory requirements

Original-commit: flang-compiler/f18 at f48fe07dfac52b4c2f031e34d27404f37a0a7cd7
Reviewed-on: https://github.com/flang-compiler/f18/pull/862
Tree-same-pre-rewrite: false


  Commit: 828eed971b2993987cec39a7618fdfa28c1bc16e
      https://github.com/llvm/llvm-project/commit/828eed971b2993987cec39a7618fdfa28c1bc16e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:
    M flang/lib/parser/Fortran-parsers.cc
    M flang/lib/parser/executable-parsers.cc
    M flang/lib/parser/expr-parsers.cc
    M flang/lib/parser/io-parsers.cc
    M flang/lib/parser/program-parsers.cc

  Log Message:
  -----------
  [flang] Improve commentary

Original-commit: flang-compiler/f18 at 364ac83bfc39e7f866536f4d1fd1c19c271469c1
Reviewed-on: https://github.com/flang-compiler/f18/pull/862


  Commit: a318aee272e46699928f6d2e4878e2880a403d7f
      https://github.com/llvm/llvm-project/commit/a318aee272e46699928f6d2e4878e2880a403d7f
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#862 from flang-compiler/pmk-grammar

Outline parsers for types (reduce f18 build memory requirements)

Original-commit: flang-compiler/f18 at 8d2b296fe1ecc6e4b92789b8dffaf22b3930a89e
Reviewed-on: https://github.com/flang-compiler/f18/pull/862


  Commit: cd1d3881f153340517ee2eb4b251e1af49dfa5cf
      https://github.com/llvm/llvm-project/commit/cd1d3881f153340517ee2eb4b251e1af49dfa5cf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-17 (Tue, 17 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/expression.cc
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/parser/unparse.h
    M flang/lib/semantics/expression.cc
    M flang/tools/f18/f18.cc
    M flang/tools/f18/stub-evaluate.cc

  Log Message:
  -----------
  [flang] Save analyzed CALL statements in the parse tree

Original-commit: flang-compiler/f18 at bd618f179c82ca613efd8db71548ceb5b1143e70
Reviewed-on: https://github.com/flang-compiler/f18/pull/873
Tree-same-pre-rewrite: false


  Commit: cfe146bfdeb74984c584b5b87071e1cfcc287d7b
      https://github.com/llvm/llvm-project/commit/cfe146bfdeb74984c584b5b87071e1cfcc287d7b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-17 (Tue, 17 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Back some changes out

Original-commit: flang-compiler/f18 at 7f6345ac627e5f5b8ed8daeb7290b2a7712b0e5d
Reviewed-on: https://github.com/flang-compiler/f18/pull/873


  Commit: 37568d4d647d945c788f75dac69f146ab7504dc3
      https://github.com/llvm/llvm-project/commit/37568d4d647d945c788f75dac69f146ab7504dc3
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-17 (Tue, 17 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#873 from flang-compiler/pmk-call

Save analyzed ProcedureRef in parse tree node for CALL statement

Original-commit: flang-compiler/f18 at 80c27052055fccd20b18130b510169549ff38fea
Reviewed-on: https://github.com/flang-compiler/f18/pull/873


  Commit: e668139fdcd3d4acc8ba7963e507ce2b63ea5f2f
      https://github.com/llvm/llvm-project/commit/e668139fdcd3d4acc8ba7963e507ce2b63ea5f2f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-18 (Wed, 18 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Fix unparsing of assignment representation and excess parentheses

More fixes, and move prefix/infix/suffix strings into formatting.cc

Original-commit: flang-compiler/f18 at 49d68700e0ab105459fb1e05bf60f8ec352a8aac
Reviewed-on: https://github.com/flang-compiler/f18/pull/874


  Commit: 47f6ebda6135602d4bda7653370104847c553593
      https://github.com/llvm/llvm-project/commit/47f6ebda6135602d4bda7653370104847c553593
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-18 (Wed, 18 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#874 from flang-compiler/pmk-fixes

Fix unparsing of assignment representation and excess parentheses

Original-commit: flang-compiler/f18 at 3e7e95fff203bb33834f9b91e2a3ec5a3885b73b
Reviewed-on: https://github.com/flang-compiler/f18/pull/874


  Commit: 37de6803e3e07d8ca352e77a484ed2627906af8b
      https://github.com/llvm/llvm-project/commit/37de6803e3e07d8ca352e77a484ed2627906af8b
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-18 (Wed, 18 Dec 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Include analyzed exprs in parse tree dump

When dumping the parse tree, if there are analyzed expressions,
assignments, or call statements, include the Fortran form of those
in the dump.

This uses the same `AnalyzedObjectsAsFortran` object that unparsing
does so it applies to the same nodes.

We already do something like this for `Name` nodes as well as some
predefined types, so abstract it into an `AsFortran` function which
returns the Fortran source for a node that is to be included in the
dump.

Original-commit: flang-compiler/f18 at 823b044d2a009f43fe5ce15755a8ae23f70dfed8
Reviewed-on: https://github.com/flang-compiler/f18/pull/878
Tree-same-pre-rewrite: false


  Commit: c6aaa9875d8fd1d416ffd1ef34deff6fcbfb8f55
      https://github.com/llvm/llvm-project/commit/c6aaa9875d8fd1d416ffd1ef34deff6fcbfb8f55
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-18 (Wed, 18 Dec 2019)

  Changed paths:
    M flang/lib/parser/dump-parse-tree.h

  Log Message:
  -----------
  [flang] Remove extraneous occurences of parser::

This file is in `Fortran::parser` so we don't need to qualify names
with `parser::`.

Original-commit: flang-compiler/f18 at e8e7ffcae88c3be8fecf4188896736790217578c
Reviewed-on: https://github.com/flang-compiler/f18/pull/878


  Commit: b200b244f607404aabd4eca05182c6276c0640b3
      https://github.com/llvm/llvm-project/commit/b200b244f607404aabd4eca05182c6276c0640b3
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-18 (Wed, 18 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#878 from flang-compiler/tsk-dump-parse-expr

Include analyzed exprs in parse tree dump

Original-commit: flang-compiler/f18 at 0855ba8baa5c6e9afc62f96fd4cba5d9a32d56d5
Reviewed-on: https://github.com/flang-compiler/f18/pull/878


  Commit: 2e9633125ea36faf3112fad205b2e08214b3d278
      https://github.com/llvm/llvm-project/commit/2e9633125ea36faf3112fad205b2e08214b3d278
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-19 (Thu, 19 Dec 2019)

  Changed paths:
    M flang/lib/semantics/expression.cc

  Log Message:
  -----------
  [flang] Save CallStmt::typedCall (flang-compiler/f18#879)

When `ExpressionAnalyzer::AnalyzeCall` processed a subroutine it was
always returning std::nullopt. Change it to return a `ProcedureRef`
wrapped in an `Expr` so that it can be saved in `CallStmt::typedCall`.

Original-commit: flang-compiler/f18 at 2cc226f66ec51b38056c779494a7b6104557f9a8
Reviewed-on: https://github.com/flang-compiler/f18/pull/879


  Commit: 617a4cce50679d4da385bc20e8681bbe08d723b8
      https://github.com/llvm/llvm-project/commit/617a4cce50679d4da385bc20e8681bbe08d723b8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-19 (Thu, 19 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/type.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-io.h
    M flang/lib/semantics/check-nullify.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/type.cc
    M flang/test/semantics/call12.f90

  Log Message:
  -----------
  [flang] Roll up fixes for semantic analysis of SPEC CPU codes
- Add cases to IsDescriptor
- Fix NULLIFY in PURE checking
- Fix fotonik3d mutually-referencing derived type bug
- Fix spurious I/O error message on ALLOCATE

Original-commit: flang-compiler/f18 at 34b64db7da9e90109b1dfec5347b344eae7dd8ad
Reviewed-on: https://github.com/flang-compiler/f18/pull/883


  Commit: d98d029b021d3401a8c994c0a2de4e905a045325
      https://github.com/llvm/llvm-project/commit/d98d029b021d3401a8c994c0a2de4e905a045325
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-19 (Thu, 19 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#883 from flang-compiler/pmk-spec-fixes

Misc fixes from SPEC

Original-commit: flang-compiler/f18 at 9e91c635d7c706b78ed8f3776e7bfac1e20b559f
Reviewed-on: https://github.com/flang-compiler/f18/pull/883


  Commit: 3a725ca8d09c267ddab95b365e866e0e97e9dfc7
      https://github.com/llvm/llvm-project/commit/3a725ca8d09c267ddab95b365e866e0e97e9dfc7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-20 (Fri, 20 Dec 2019)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/check-call.cc

  Log Message:
  -----------
  [flang] Auto conversion of integer scalar actual argument exprs

Add documentation

Original-commit: flang-compiler/f18 at c1b200d23891cff4eca1991deec58c1adf65842e
Reviewed-on: https://github.com/flang-compiler/f18/pull/884


  Commit: 8db76ec77992afaae788d4b9dfef422668704058
      https://github.com/llvm/llvm-project/commit/8db76ec77992afaae788d4b9dfef422668704058
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-20 (Fri, 20 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#884 from flang-compiler/pmk-warn-size

Convert INTEGER scalar actual argument expressions to the kinds of dummies

Original-commit: flang-compiler/f18 at c88694b36eeb0ac0010127d8751627f000800000
Reviewed-on: https://github.com/flang-compiler/f18/pull/884


  Commit: d67fbce92b533087739d9b95152c7e0cd9cde3a8
      https://github.com/llvm/llvm-project/commit/d67fbce92b533087739d9b95152c7e0cd9cde3a8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-20 (Fri, 20 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Fix kind of REAL(complex) to be the same as the argument by default

Fixes for expression formatting

Original-commit: flang-compiler/f18 at 13e8909587f2284e0093cdfaab5ac8335b060ec9
Reviewed-on: https://github.com/flang-compiler/f18/pull/885


  Commit: c1ccbcf9139ac3368521fa52dd49ed024fe4307d
      https://github.com/llvm/llvm-project/commit/c1ccbcf9139ac3368521fa52dd49ed024fe4307d
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-20 (Fri, 20 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#885 from flang-compiler/pmk-fixes

Two small fixes

Original-commit: flang-compiler/f18 at 2d8a4815a338b3c21cc9882ebbb165fe1204ed93
Reviewed-on: https://github.com/flang-compiler/f18/pull/885


  Commit: 69d01593b4c5ab768aba45fafb3c46eff2b0f7fd
      https://github.com/llvm/llvm-project/commit/69d01593b4c5ab768aba45fafb3c46eff2b0f7fd
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2019-12-20 (Fri, 20 Dec 2019)

  Changed paths:
    M flang/module/ieee_exceptions.f90

  Log Message:
  -----------
  [flang] Mark ieee_get_flag and ieee_get_halting_mode as elemental

Original-commit: flang-compiler/f18 at d6237fa31112acc7bd864b9f732cb288014e6cf7
Reviewed-on: https://github.com/flang-compiler/f18/pull/886


  Commit: 317c3fa860304e86229312229badae6c606a98e1
      https://github.com/llvm/llvm-project/commit/317c3fa860304e86229312229badae6c606a98e1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-20 (Fri, 20 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#886 from kiranchandramohan/elemental

Mark ieee_get_flag and ieee_get_halting_mode as elemental

Original-commit: flang-compiler/f18 at a694b62c6d464ef2fc17046497a0aa0a0b14a756
Reviewed-on: https://github.com/flang-compiler/f18/pull/886


  Commit: 9e7548ab3114a5afc7fe639345d144d1a2dd1268
      https://github.com/llvm/llvm-project/commit/9e7548ab3114a5afc7fe639345d144d1a2dd1268
  Author: Gary Klimowicz <gklimowicz at pobox.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:
    M flang/CMakeLists.txt
    R flang/LICENSE
    A flang/LICENSE.txt
    M flang/README.md
    M flang/documentation/ArrayComposition.md
    M flang/documentation/C++17.md
    M flang/documentation/C++style.md
    M flang/documentation/Calls.md
    M flang/documentation/ControlFlowGraph.md
    M flang/documentation/Directives.md
    M flang/documentation/Extensions.md
    M flang/documentation/FortranForCProgrammers.md
    M flang/documentation/FortranIR.md
    M flang/documentation/Intrinsics.md
    M flang/documentation/Investigating-FIR-as-an-MLIR-dialect.md
    M flang/documentation/LabelResolution.md
    M flang/documentation/ModFiles.md
    M flang/documentation/OpenMP-4.5-grammar.txt
    M flang/documentation/OpenMP-semantics.md
    M flang/documentation/OptionComparison.md
    M flang/documentation/Overview.md
    M flang/documentation/ParserCombinators.md
    M flang/documentation/Parsing.md
    M flang/documentation/Preprocessing.md
    M flang/documentation/RuntimeDescriptor.md
    M flang/documentation/Semantics.md
    M flang/documentation/f2018-grammar.txt
    M flang/documentation/flang-c-style.el
    M flang/include/flang/CMakeLists.txt
    M flang/include/flang/Config/config.h.cmake
    M flang/include/flang/ISO_Fortran_binding.h
    M flang/lib/CMakeLists.txt
    M flang/lib/common/CMakeLists.txt
    M flang/lib/common/Fortran-features.cc
    M flang/lib/common/Fortran-features.h
    M flang/lib/common/Fortran.cc
    M flang/lib/common/Fortran.h
    M flang/lib/common/bit-population-count.h
    M flang/lib/common/constexpr-bitset.h
    M flang/lib/common/default-kinds.cc
    M flang/lib/common/default-kinds.h
    M flang/lib/common/enum-set.h
    M flang/lib/common/format.h
    M flang/lib/common/idioms.cc
    M flang/lib/common/idioms.h
    M flang/lib/common/indirection.h
    M flang/lib/common/interval.h
    M flang/lib/common/leading-zero-bit-count.h
    M flang/lib/common/reference-counted.h
    M flang/lib/common/reference.h
    M flang/lib/common/restorer.h
    M flang/lib/common/template.h
    M flang/lib/common/uint128.h
    M flang/lib/common/unsigned-const-division.h
    M flang/lib/common/unwrap.h
    M flang/lib/decimal/CMakeLists.txt
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/decimal.h
    M flang/lib/evaluate/CMakeLists.txt
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/character.h
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/check-expression.h
    M flang/lib/evaluate/common.cc
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/complex.cc
    M flang/lib/evaluate/complex.h
    M flang/lib/evaluate/constant.cc
    M flang/lib/evaluate/constant.h
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/fold.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/formatting.h
    M flang/lib/evaluate/host.cc
    M flang/lib/evaluate/host.h
    M flang/lib/evaluate/int-power.h
    M flang/lib/evaluate/integer.cc
    M flang/lib/evaluate/integer.h
    M flang/lib/evaluate/intrinsics-library-templates.h
    M flang/lib/evaluate/intrinsics-library.cc
    M flang/lib/evaluate/intrinsics-library.h
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/intrinsics.h
    M flang/lib/evaluate/logical.cc
    M flang/lib/evaluate/logical.h
    M flang/lib/evaluate/real.cc
    M flang/lib/evaluate/real.h
    M flang/lib/evaluate/rounding-bits.h
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/static-data.cc
    M flang/lib/evaluate/static-data.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traverse.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/evaluate/variable.cc
    M flang/lib/evaluate/variable.h
    M flang/lib/parser/CMakeLists.txt
    M flang/lib/parser/Fortran-parsers.cc
    M flang/lib/parser/basic-parsers.h
    M flang/lib/parser/char-block.h
    M flang/lib/parser/char-buffer.cc
    M flang/lib/parser/char-buffer.h
    M flang/lib/parser/char-set.cc
    M flang/lib/parser/char-set.h
    M flang/lib/parser/characters.cc
    M flang/lib/parser/characters.h
    M flang/lib/parser/debug-parser.cc
    M flang/lib/parser/debug-parser.h
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/executable-parsers.cc
    M flang/lib/parser/expr-parsers.cc
    M flang/lib/parser/expr-parsers.h
    M flang/lib/parser/format-specification.h
    M flang/lib/parser/instrumented-parser.cc
    M flang/lib/parser/instrumented-parser.h
    M flang/lib/parser/io-parsers.cc
    M flang/lib/parser/message.cc
    M flang/lib/parser/message.h
    M flang/lib/parser/misc-parsers.h
    M flang/lib/parser/openmp-parsers.cc
    M flang/lib/parser/parse-state.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.cc
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/parsing.h
    M flang/lib/parser/preprocessor.cc
    M flang/lib/parser/preprocessor.h
    M flang/lib/parser/prescan.cc
    M flang/lib/parser/prescan.h
    M flang/lib/parser/program-parsers.cc
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/parser/source.cc
    M flang/lib/parser/source.h
    M flang/lib/parser/stmt-parser.h
    M flang/lib/parser/token-parsers.h
    M flang/lib/parser/token-sequence.cc
    M flang/lib/parser/token-sequence.h
    M flang/lib/parser/tools.cc
    M flang/lib/parser/tools.h
    M flang/lib/parser/type-parser-implementation.h
    M flang/lib/parser/type-parsers.h
    M flang/lib/parser/unparse.cc
    M flang/lib/parser/unparse.h
    M flang/lib/parser/user-state.cc
    M flang/lib/parser/user-state.h
    M flang/lib/semantics/CMakeLists.txt
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/attr.cc
    M flang/lib/semantics/attr.h
    M flang/lib/semantics/canonicalize-do.cc
    M flang/lib/semantics/canonicalize-do.h
    M flang/lib/semantics/canonicalize-omp.cc
    M flang/lib/semantics/canonicalize-omp.h
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-allocate.h
    M flang/lib/semantics/check-arithmeticif.cc
    M flang/lib/semantics/check-arithmeticif.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-call.h
    M flang/lib/semantics/check-coarray.cc
    M flang/lib/semantics/check-coarray.h
    M flang/lib/semantics/check-deallocate.cc
    M flang/lib/semantics/check-deallocate.h
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-declarations.h
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/check-if-stmt.cc
    M flang/lib/semantics/check-if-stmt.h
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-io.h
    M flang/lib/semantics/check-nullify.cc
    M flang/lib/semantics/check-nullify.h
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/lib/semantics/check-purity.cc
    M flang/lib/semantics/check-purity.h
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/check-return.h
    M flang/lib/semantics/check-stop.cc
    M flang/lib/semantics/check-stop.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/mod-file.h
    M flang/lib/semantics/program-tree.cc
    M flang/lib/semantics/program-tree.h
    M flang/lib/semantics/resolve-labels.cc
    M flang/lib/semantics/resolve-labels.h
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names-utils.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/resolve-names.h
    M flang/lib/semantics/rewrite-parse-tree.cc
    M flang/lib/semantics/rewrite-parse-tree.h
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h
    M flang/lib/semantics/unparse-with-symbols.cc
    M flang/lib/semantics/unparse-with-symbols.h
    M flang/module/ieee_arithmetic.f90
    M flang/module/ieee_exceptions.f90
    M flang/module/ieee_features.f90
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90
    M flang/module/omp_lib.f90
    M flang/module/omp_lib.h
    M flang/runtime/CMakeLists.txt
    M flang/runtime/ISO_Fortran_binding.cc
    M flang/runtime/derived-type.cc
    M flang/runtime/derived-type.h
    M flang/runtime/descriptor.cc
    M flang/runtime/descriptor.h
    M flang/runtime/entry-names.h
    M flang/runtime/io-api.h
    M flang/runtime/magic-numbers.h
    M flang/runtime/transformational.cc
    M flang/runtime/transformational.h
    M flang/runtime/type-code.cc
    M flang/runtime/type-code.h
    M flang/test/CMakeLists.txt
    M flang/test/decimal/CMakeLists.txt
    M flang/test/decimal/quick-sanity-test.cc
    M flang/test/decimal/thorough-test.cc
    M flang/test/evaluate/CMakeLists.txt
    M flang/test/evaluate/ISO-Fortran-binding.cc
    M flang/test/evaluate/bit-population-count.cc
    M flang/test/evaluate/expression.cc
    M flang/test/evaluate/folding.cc
    M flang/test/evaluate/folding01.f90
    M flang/test/evaluate/folding02.f90
    M flang/test/evaluate/folding03.f90
    M flang/test/evaluate/folding04.f90
    M flang/test/evaluate/folding05.f90
    M flang/test/evaluate/folding06.f90
    M flang/test/evaluate/folding07.f90
    M flang/test/evaluate/folding08.f90
    M flang/test/evaluate/fp-testing.cc
    M flang/test/evaluate/fp-testing.h
    M flang/test/evaluate/integer.cc
    M flang/test/evaluate/intrinsics.cc
    M flang/test/evaluate/leading-zero-bit-count.cc
    M flang/test/evaluate/logical.cc
    M flang/test/evaluate/real.cc
    M flang/test/evaluate/reshape.cc
    M flang/test/evaluate/test_folding.sh
    M flang/test/evaluate/testing.cc
    M flang/test/evaluate/testing.h
    M flang/test/evaluate/uint128.cc
    M flang/test/preprocessing/pp001.F
    M flang/test/preprocessing/pp002.F
    M flang/test/preprocessing/pp003.F
    M flang/test/preprocessing/pp004.F
    M flang/test/preprocessing/pp005.F
    M flang/test/preprocessing/pp006.F
    M flang/test/preprocessing/pp007.F
    M flang/test/preprocessing/pp008.F
    M flang/test/preprocessing/pp009.F
    M flang/test/preprocessing/pp010.F
    M flang/test/preprocessing/pp011.F
    M flang/test/preprocessing/pp012.F
    M flang/test/preprocessing/pp013.F
    M flang/test/preprocessing/pp014.F
    M flang/test/preprocessing/pp015.F
    M flang/test/preprocessing/pp016.F
    M flang/test/preprocessing/pp017.F
    M flang/test/preprocessing/pp018.F
    M flang/test/preprocessing/pp019.F
    M flang/test/preprocessing/pp020.F
    M flang/test/preprocessing/pp021.F
    M flang/test/preprocessing/pp022.F
    M flang/test/preprocessing/pp023.F
    M flang/test/preprocessing/pp024.F
    M flang/test/preprocessing/pp025.F
    M flang/test/preprocessing/pp026.F
    M flang/test/preprocessing/pp027.F
    M flang/test/preprocessing/pp028.F
    M flang/test/preprocessing/pp029.F
    M flang/test/preprocessing/pp030.F
    M flang/test/preprocessing/pp031.F
    M flang/test/preprocessing/pp032.F
    M flang/test/preprocessing/pp033.F
    M flang/test/preprocessing/pp034.F
    M flang/test/preprocessing/pp035.F
    M flang/test/preprocessing/pp036.F
    M flang/test/preprocessing/pp037.F
    M flang/test/preprocessing/pp038.F
    M flang/test/preprocessing/pp039.F
    M flang/test/preprocessing/pp040.F
    M flang/test/preprocessing/pp041.F
    M flang/test/preprocessing/pp042.F
    M flang/test/preprocessing/pp043.F
    M flang/test/preprocessing/pp044.F
    M flang/test/preprocessing/pp101.F90
    M flang/test/preprocessing/pp102.F90
    M flang/test/preprocessing/pp103.F90
    M flang/test/preprocessing/pp104.F90
    M flang/test/preprocessing/pp105.F90
    M flang/test/preprocessing/pp106.F90
    M flang/test/preprocessing/pp107.F90
    M flang/test/preprocessing/pp108.F90
    M flang/test/preprocessing/pp109.F90
    M flang/test/preprocessing/pp110.F90
    M flang/test/preprocessing/pp111.F90
    M flang/test/preprocessing/pp112.F90
    M flang/test/preprocessing/pp113.F90
    M flang/test/preprocessing/pp114.F90
    M flang/test/preprocessing/pp115.F90
    M flang/test/preprocessing/pp116.F90
    M flang/test/preprocessing/pp117.F90
    M flang/test/preprocessing/pp118.F90
    M flang/test/preprocessing/pp119.F90
    M flang/test/preprocessing/pp120.F90
    M flang/test/preprocessing/pp121.F90
    M flang/test/preprocessing/pp122.F90
    M flang/test/preprocessing/pp123.F90
    M flang/test/preprocessing/pp124.F90
    M flang/test/preprocessing/pp125.F90
    M flang/test/preprocessing/pp126.F90
    M flang/test/preprocessing/pp127.F90
    M flang/test/preprocessing/pp128.F90
    M flang/test/preprocessing/pp129.F90
    M flang/test/preprocessing/pp130.F90
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/allocate01.f90
    M flang/test/semantics/allocate02.f90
    M flang/test/semantics/allocate03.f90
    M flang/test/semantics/allocate04.f90
    M flang/test/semantics/allocate05.f90
    M flang/test/semantics/allocate06.f90
    M flang/test/semantics/allocate07.f90
    M flang/test/semantics/allocate08.f90
    M flang/test/semantics/allocate09.f90
    M flang/test/semantics/allocate10.f90
    M flang/test/semantics/allocate11.f90
    M flang/test/semantics/allocate12.f90
    M flang/test/semantics/allocate13.f90
    M flang/test/semantics/altreturn01.f90
    M flang/test/semantics/altreturn02.f90
    M flang/test/semantics/altreturn03.f90
    M flang/test/semantics/altreturn04.f90
    M flang/test/semantics/assign01.f90
    M flang/test/semantics/bad-forward-type.f90
    M flang/test/semantics/bindings01.f90
    M flang/test/semantics/blockconstruct01.f90
    M flang/test/semantics/blockconstruct02.f90
    M flang/test/semantics/blockconstruct03.f90
    M flang/test/semantics/call01.f90
    M flang/test/semantics/call02.f90
    M flang/test/semantics/call03.f90
    M flang/test/semantics/call04.f90
    M flang/test/semantics/call05.f90
    M flang/test/semantics/call06.f90
    M flang/test/semantics/call07.f90
    M flang/test/semantics/call08.f90
    M flang/test/semantics/call09.f90
    M flang/test/semantics/call10.f90
    M flang/test/semantics/call11.f90
    M flang/test/semantics/call12.f90
    M flang/test/semantics/call13.f90
    M flang/test/semantics/call14.f90
    M flang/test/semantics/canondo01.f90
    M flang/test/semantics/canondo02.f90
    M flang/test/semantics/canondo03.f90
    M flang/test/semantics/canondo04.f90
    M flang/test/semantics/canondo05.f90
    M flang/test/semantics/canondo06.f90
    M flang/test/semantics/canondo07.f90
    M flang/test/semantics/canondo08.f90
    M flang/test/semantics/canondo09.f90
    M flang/test/semantics/canondo10.f90
    M flang/test/semantics/canondo11.f90
    M flang/test/semantics/canondo12.f90
    M flang/test/semantics/canondo13.f90
    M flang/test/semantics/canondo14.f90
    M flang/test/semantics/canondo15.f90
    M flang/test/semantics/canondo16.f90
    M flang/test/semantics/canondo17.f90
    M flang/test/semantics/canondo18.f90
    M flang/test/semantics/canondo19.f90
    M flang/test/semantics/coarrays01.f90
    M flang/test/semantics/common.sh
    M flang/test/semantics/computed-goto01.f90
    M flang/test/semantics/computed-goto02.f90
    M flang/test/semantics/deallocate01.f90
    M flang/test/semantics/deallocate04.f90
    M flang/test/semantics/deallocate05.f90
    M flang/test/semantics/doconcurrent01.f90
    M flang/test/semantics/doconcurrent02.f90
    M flang/test/semantics/doconcurrent03.f90
    M flang/test/semantics/doconcurrent04.f90
    M flang/test/semantics/doconcurrent05.f90
    M flang/test/semantics/doconcurrent06.f90
    M flang/test/semantics/doconcurrent07.f90
    M flang/test/semantics/doconcurrent08.f90
    M flang/test/semantics/dosemantics01.f90
    M flang/test/semantics/dosemantics02.f90
    M flang/test/semantics/dosemantics03.f90
    M flang/test/semantics/dosemantics04.f90
    M flang/test/semantics/dosemantics05.f90
    M flang/test/semantics/dosemantics06.f90
    M flang/test/semantics/dosemantics07.f90
    M flang/test/semantics/dosemantics08.f90
    M flang/test/semantics/dosemantics09.f90
    M flang/test/semantics/dosemantics10.f90
    M flang/test/semantics/dosemantics11.f90
    M flang/test/semantics/equivalence01.f90
    M flang/test/semantics/expr-errors01.f90
    M flang/test/semantics/expr-errors02.f90
    M flang/test/semantics/forall01.f90
    M flang/test/semantics/getdefinition01.f90
    M flang/test/semantics/getdefinition02.f
    M flang/test/semantics/getdefinition03-a.f90
    M flang/test/semantics/getdefinition03-b.f90
    M flang/test/semantics/getdefinition04.f90
    M flang/test/semantics/getdefinition05.f90
    M flang/test/semantics/getsymbols01.f90
    M flang/test/semantics/getsymbols02-a.f90
    M flang/test/semantics/getsymbols02-b.f90
    M flang/test/semantics/getsymbols02-c.f90
    M flang/test/semantics/getsymbols03-a.f90
    M flang/test/semantics/getsymbols03-b.f90
    M flang/test/semantics/getsymbols04.f90
    M flang/test/semantics/getsymbols05.f90
    M flang/test/semantics/if_arith01.f90
    M flang/test/semantics/if_arith02.f90
    M flang/test/semantics/if_arith03.f90
    M flang/test/semantics/if_arith04.f90
    M flang/test/semantics/if_construct01.f90
    M flang/test/semantics/if_construct02.f90
    M flang/test/semantics/if_stmt01.f90
    M flang/test/semantics/if_stmt02.f90
    M flang/test/semantics/if_stmt03.f90
    M flang/test/semantics/implicit01.f90
    M flang/test/semantics/implicit02.f90
    M flang/test/semantics/implicit03.f90
    M flang/test/semantics/implicit04.f90
    M flang/test/semantics/implicit05.f90
    M flang/test/semantics/implicit06.f90
    M flang/test/semantics/implicit07.f90
    M flang/test/semantics/implicit08.f90
    M flang/test/semantics/init01.f90
    M flang/test/semantics/int-literals.f90
    M flang/test/semantics/io01.f90
    M flang/test/semantics/io02.f90
    M flang/test/semantics/io03.f90
    M flang/test/semantics/io04.f90
    M flang/test/semantics/io05.f90
    M flang/test/semantics/io06.f90
    M flang/test/semantics/io07.f90
    M flang/test/semantics/io08.f90
    M flang/test/semantics/io09.f90
    M flang/test/semantics/io10.f90
    M flang/test/semantics/kinds01.f90
    M flang/test/semantics/kinds02.f90
    M flang/test/semantics/kinds03.f90
    M flang/test/semantics/label01.F90
    M flang/test/semantics/label02.f90
    M flang/test/semantics/label03.f90
    M flang/test/semantics/label04.f90
    M flang/test/semantics/label05.f90
    M flang/test/semantics/label06.f90
    M flang/test/semantics/label07.f90
    M flang/test/semantics/label08.f90
    M flang/test/semantics/label09.f90
    M flang/test/semantics/label10.f90
    M flang/test/semantics/label11.f90
    M flang/test/semantics/label12.f90
    M flang/test/semantics/label13.f90
    M flang/test/semantics/label14.f90
    M flang/test/semantics/misc-declarations.f90
    M flang/test/semantics/modfile01.f90
    M flang/test/semantics/modfile02.f90
    M flang/test/semantics/modfile03.f90
    M flang/test/semantics/modfile04.f90
    M flang/test/semantics/modfile05.f90
    M flang/test/semantics/modfile06.f90
    M flang/test/semantics/modfile07.f90
    M flang/test/semantics/modfile08.f90
    M flang/test/semantics/modfile10.f90
    M flang/test/semantics/modfile11.f90
    M flang/test/semantics/modfile12.f90
    M flang/test/semantics/modfile13.f90
    M flang/test/semantics/modfile14.f90
    M flang/test/semantics/modfile15.f90
    M flang/test/semantics/modfile16.f90
    M flang/test/semantics/modfile17.f90
    M flang/test/semantics/modfile18.f90
    M flang/test/semantics/modfile19.f90
    M flang/test/semantics/modfile20.f90
    M flang/test/semantics/modfile21.f90
    M flang/test/semantics/modfile22.f90
    M flang/test/semantics/modfile23.f90
    M flang/test/semantics/modfile24.f90
    M flang/test/semantics/modfile25.f90
    M flang/test/semantics/modfile26.f90
    M flang/test/semantics/modfile27.f90
    M flang/test/semantics/modfile28.f90
    M flang/test/semantics/modfile29.f90
    M flang/test/semantics/modfile30.f90
    M flang/test/semantics/modfile31.f90
    M flang/test/semantics/modfile32.f90
    M flang/test/semantics/modfile33.f90
    M flang/test/semantics/modfile34.f90
    M flang/test/semantics/modfile35.f90
    M flang/test/semantics/null01.f90
    M flang/test/semantics/nullify01.f90
    M flang/test/semantics/nullify02.f90
    M flang/test/semantics/omp-atomic.f90
    M flang/test/semantics/omp-clause-validity01.f90
    M flang/test/semantics/omp-declarative-directive.f90
    M flang/test/semantics/omp-device-constructs.f90
    M flang/test/semantics/omp-loop-association.f90
    M flang/test/semantics/omp-nested01.f90
    M flang/test/semantics/omp-resolve01.f90
    M flang/test/semantics/omp-resolve02.f90
    M flang/test/semantics/omp-resolve03.f90
    M flang/test/semantics/omp-resolve04.f90
    M flang/test/semantics/omp-symbol01.f90
    M flang/test/semantics/omp-symbol02.f90
    M flang/test/semantics/omp-symbol03.f90
    M flang/test/semantics/omp-symbol04.f90
    M flang/test/semantics/omp-symbol05.f90
    M flang/test/semantics/omp-symbol06.f90
    M flang/test/semantics/procinterface01.f90
    M flang/test/semantics/resolve01.f90
    M flang/test/semantics/resolve02.f90
    M flang/test/semantics/resolve03.f90
    M flang/test/semantics/resolve04.f90
    M flang/test/semantics/resolve05.f90
    M flang/test/semantics/resolve06.f90
    M flang/test/semantics/resolve07.f90
    M flang/test/semantics/resolve08.f90
    M flang/test/semantics/resolve09.f90
    M flang/test/semantics/resolve10.f90
    M flang/test/semantics/resolve11.f90
    M flang/test/semantics/resolve12.f90
    M flang/test/semantics/resolve13.f90
    M flang/test/semantics/resolve14.f90
    M flang/test/semantics/resolve15.f90
    M flang/test/semantics/resolve16.f90
    M flang/test/semantics/resolve17.f90
    M flang/test/semantics/resolve18.f90
    M flang/test/semantics/resolve19.f90
    M flang/test/semantics/resolve20.f90
    M flang/test/semantics/resolve21.f90
    M flang/test/semantics/resolve22.f90
    M flang/test/semantics/resolve23.f90
    M flang/test/semantics/resolve24.f90
    M flang/test/semantics/resolve25.f90
    M flang/test/semantics/resolve26.f90
    M flang/test/semantics/resolve27.f90
    M flang/test/semantics/resolve28.f90
    M flang/test/semantics/resolve29.f90
    M flang/test/semantics/resolve30.f90
    M flang/test/semantics/resolve31.f90
    M flang/test/semantics/resolve32.f90
    M flang/test/semantics/resolve33.f90
    M flang/test/semantics/resolve34.f90
    M flang/test/semantics/resolve35.f90
    M flang/test/semantics/resolve36.f90
    M flang/test/semantics/resolve37.f90
    M flang/test/semantics/resolve38.f90
    M flang/test/semantics/resolve39.f90
    M flang/test/semantics/resolve40.f90
    M flang/test/semantics/resolve41.f90
    M flang/test/semantics/resolve42.f90
    M flang/test/semantics/resolve43.f90
    M flang/test/semantics/resolve44.f90
    M flang/test/semantics/resolve45.f90
    M flang/test/semantics/resolve46.f90
    M flang/test/semantics/resolve47.f90
    M flang/test/semantics/resolve48.f90
    M flang/test/semantics/resolve49.f90
    M flang/test/semantics/resolve50.f90
    M flang/test/semantics/resolve51.f90
    M flang/test/semantics/resolve52.f90
    M flang/test/semantics/resolve53.f90
    M flang/test/semantics/resolve54.f90
    M flang/test/semantics/resolve55.f90
    M flang/test/semantics/resolve56.f90
    M flang/test/semantics/resolve57.f90
    M flang/test/semantics/resolve58.f90
    M flang/test/semantics/resolve59.f90
    M flang/test/semantics/resolve60.f90
    M flang/test/semantics/resolve61.f90
    M flang/test/semantics/resolve62.f90
    M flang/test/semantics/resolve63.f90
    M flang/test/semantics/resolve64.f90
    M flang/test/semantics/resolve65.f90
    M flang/test/semantics/resolve66.f90
    M flang/test/semantics/resolve67.f90
    M flang/test/semantics/resolve68.f90
    M flang/test/semantics/stop01.f90
    M flang/test/semantics/structconst01.f90
    M flang/test/semantics/structconst02.f90
    M flang/test/semantics/structconst03.f90
    M flang/test/semantics/structconst04.f90
    M flang/test/semantics/symbol01.f90
    M flang/test/semantics/symbol02.f90
    M flang/test/semantics/symbol03.f90
    M flang/test/semantics/symbol05.f90
    M flang/test/semantics/symbol06.f90
    M flang/test/semantics/symbol07.f90
    M flang/test/semantics/symbol08.f90
    M flang/test/semantics/symbol09.f90
    M flang/test/semantics/symbol10.f90
    M flang/test/semantics/symbol11.f90
    M flang/test/semantics/symbol12.f90
    M flang/test/semantics/symbol13.f90
    M flang/test/semantics/symbol14.f90
    M flang/test/semantics/symbol15.f90
    M flang/test/semantics/symbol16.f90
    M flang/test/semantics/symbol17.f90
    M flang/test/semantics/test_any.sh
    M flang/test/semantics/test_errors.sh
    M flang/test/semantics/test_modfile.sh
    M flang/test/semantics/test_symbols.sh
    M flang/tools/CMakeLists.txt
    M flang/tools/f18/CMakeLists.txt
    M flang/tools/f18/dump.cc
    M flang/tools/f18/f18-parse-demo.cc
    M flang/tools/f18/f18.cc
    M flang/tools/f18/flang.sh
    M flang/tools/f18/stub-evaluate.cc

  Log Message:
  -----------
  [flang] Flang relicensing changes for LLVM Apache 2.0 license

This changes the license information in many of the flang source files.
- Renamed LICENSE to LICENSE.txt.
- NVIDIA Copyright lines have been removed.
- Initial lines for files follow the LLVM coding convention (file name on the first line; Emacs mode information on the first line).
- License references have been replaced with the abridged LLVM text.
- License information was removed from the test files.
- No file header was placed on test files (these weren't in most LLVM test files).
- License information was added to documentation files where it was missing.

We did not add brief file summaries to the initial line.

See http://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework
for a description of the new license.

See http://llvm.org/docs/CodingStandards.html#file-headers
for a description of the new LLVM standard file header.

Original-commit: flang-compiler/f18 at add6cde7244b926ca457a1c74c21fea071b85329
Reviewed-on: https://github.com/flang-compiler/f18/pull/887


  Commit: 6ba7d300aae8a45802c4f84edfab81fcebfcc014
      https://github.com/llvm/llvm-project/commit/6ba7d300aae8a45802c4f84edfab81fcebfcc014
  Author: Gary Klimowicz <gklimowicz at pobox.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#887 from flang-compiler/gak-relicense

Flang relicensing changes for LLVM Apache 2.0 license

Original-commit: flang-compiler/f18 at e06be2faa64a52471b3cfb2829dc05888236aa68
Reviewed-on: https://github.com/flang-compiler/f18/pull/887


  Commit: a0caa6af3698da0b3db7dd23495fc490c28cf571
      https://github.com/llvm/llvm-project/commit/a0caa6af3698da0b3db7dd23495fc490c28cf571
  Author: Gary Klimowicz <gklimowicz at pobox.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/parser/type-parser-implementation.h
    M flang/test/evaluate/fp-testing.cc

  Log Message:
  -----------
  [flang] Fix clang-format issues identified during relicensing

While running clang-format during the relicensing, there were
a few files that showed minor format issues that could be cleaned
up. These changes address them.

Original-commit: flang-compiler/f18 at b308f9e35a6d386b53ded90e84bbfac600f38867
Reviewed-on: https://github.com/flang-compiler/f18/pull/890


  Commit: f8393113f2bf3942b53a8358c3feca4081cf1b82
      https://github.com/llvm/llvm-project/commit/f8393113f2bf3942b53a8358c3feca4081cf1b82
  Author: Gary Klimowicz <gklimowicz at pobox.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#890 from flang-compiler/gak-format-fixes

Fix clang-format issues identified during relicensing

Original-commit: flang-compiler/f18 at a04295dc36f8685447bd83dffdd037dc2e819f2e
Reviewed-on: https://github.com/flang-compiler/f18/pull/890


  Commit: 16c5b8636886785130a86286fb1b5a091437c945
      https://github.com/llvm/llvm-project/commit/16c5b8636886785130a86286fb1b5a091437c945
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/parser/preprocessor.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/type.h
    M flang/test/semantics/call05.f90

  Log Message:
  -----------
  [flang] Fix off-by-one error in preprocessing expressions

Original-commit: flang-compiler/f18 at 4c08a4a1be9fb398a8fc7561da114dc9d2a3accc
Reviewed-on: https://github.com/flang-compiler/f18/pull/891


  Commit: 17fdc5cc63ba04bc9929d5f02a8ff8c4412c178e
      https://github.com/llvm/llvm-project/commit/17fdc5cc63ba04bc9929d5f02a8ff8c4412c178e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#891 from flang-compiler/pmk-spec

Some fixes

Original-commit: flang-compiler/f18 at e3ee4a658ad4236a6683e8cbec8c24345dab9805
Reviewed-on: https://github.com/flang-compiler/f18/pull/891


  Commit: 611db270f656694c776fe224b4f6e741f488f907
      https://github.com/llvm/llvm-project/commit/611db270f656694c776fe224b4f6e741f488f907
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-deallocate.cc
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/dosemantics12.f90

  Log Message:
  -----------
  [flang] Semantic checks to see if a DO variable is modified

I added infrastructure to SemanticsContext to track active DO variables
and the source locations where they appear in DO statements.  I also
added code to semantics.[h,cc] to check to see if a DO variable is
already defined, and, if so, to emit an error message along with a
reference to the relevant DO construct.  I also added calls to several
places where variables are defined to determine if the definitions are
happening in the context of an active DO construct.

I have not yet added the checks for DO variables being redefined when passing
them as actual arguments to dummy arguments with INTENT(OUT) or INTENT(INOUT).
I wanted to get these changes merged first and catch up with the other changes
in master.

Original-commit: flang-compiler/f18 at 1bbfcca61b94dccfbbe943b511f846acc1c33997
Reviewed-on: https://github.com/flang-compiler/f18/pull/860


  Commit: 24b3d0adc6e577163ffbb6d1893b31997fe78842
      https://github.com/llvm/llvm-project/commit/24b3d0adc6e577163ffbb6d1893b31997fe78842
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#860 from flang-compiler/ps-do-redefine

Semantic checks to see if a DO variable is modified

Original-commit: flang-compiler/f18 at 6715b162fa234b8836e34b216886d4de80ca4568
Reviewed-on: https://github.com/flang-compiler/f18/pull/860


  Commit: 71f6a80c2b5328c633e22d06324f2332f43b2559
      https://github.com/llvm/llvm-project/commit/71f6a80c2b5328c633e22d06324f2332f43b2559
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M flang/tools/f18/flang.sh

  Log Message:
  -----------
  [flang] The #! sequence must be at the start of the script file. (flang-compiler/f18#894)

Original-commit: flang-compiler/f18 at b1ff232730778d6de62036711afb34fd3ded0bd6
Reviewed-on: https://github.com/flang-compiler/f18/pull/894


  Commit: b8a7bad3e0395b48a0dc3fb29479dcf72ea13aee
      https://github.com/llvm/llvm-project/commit/b8a7bad3e0395b48a0dc3fb29479dcf72ea13aee
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M flang/lib/common/default-kinds.cc
    M flang/lib/common/default-kinds.h
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-purity.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/call10.f90
    M flang/test/semantics/call11.f90
    M flang/test/semantics/call12.f90
    M flang/test/semantics/doconcurrent01.f90
    M flang/test/semantics/resolve66.f90
    M flang/test/semantics/structconst03.f90
    M flang/test/semantics/structconst04.f90
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Fix test for assignment to host-associated object in PURE

Original-commit: flang-compiler/f18 at 019e61aa85ce55298d233dbb3af6399a8ce974b6
Reviewed-on: https://github.com/flang-compiler/f18/pull/893


  Commit: 0e5c4272ea62d27cb3157e1487f543c1be968d2b
      https://github.com/llvm/llvm-project/commit/0e5c4272ea62d27cb3157e1487f543c1be968d2b
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#893 from flang-compiler/pmk-fixes

Fix flang-compiler/f18#892 and a crash

Original-commit: flang-compiler/f18 at 86ae6e6cc85c46958c2446d754650026ba26ff86
Reviewed-on: https://github.com/flang-compiler/f18/pull/893


  Commit: 663db2741d4ee134e8f0db1ead02c1fc21848fc0
      https://github.com/llvm/llvm-project/commit/663db2741d4ee134e8f0db1ead02c1fc21848fc0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/intrinsics.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    A flang/module/__fortran_builtins.f90
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/c_f_pointer.f90
    M flang/test/semantics/canondo16.f90
    M flang/test/semantics/modfile20.f90
    M flang/test/semantics/modfile25.f90
    M flang/test/semantics/modfile26.f90
    M flang/test/semantics/modfile27.f90
    M flang/test/semantics/modfile28.f90
    M flang/test/semantics/modfile30.f90
    M flang/test/semantics/modfile31.f90
    M flang/tools/f18/CMakeLists.txt

  Log Message:
  -----------
  [flang] C_F_POINTER

Emit INTRINSIC statements in module files

Argument checking utility

Complete error checking

Original-commit: flang-compiler/f18 at 9c6a88f0482c1f222b37e0cc548c822f80ad00e7
Reviewed-on: https://github.com/flang-compiler/f18/pull/896


  Commit: 15d285a63a8eccf3126f766db634e2465d6977ec
      https://github.com/llvm/llvm-project/commit/15d285a63a8eccf3126f766db634e2465d6977ec
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#896 from flang-compiler/pmk-c_f_pointer

C_F_POINTER

Original-commit: flang-compiler/f18 at f4d48e852543a02ba19d8b9cce9fe18ee749d2d5
Reviewed-on: https://github.com/flang-compiler/f18/pull/896


  Commit: ec833a6bb75107ff6625fe161794bc15e6c0f8f9
      https://github.com/llvm/llvm-project/commit/ec833a6bb75107ff6625fe161794bc15e6c0f8f9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90
    M flang/test/semantics/canondo16.f90

  Log Message:
  -----------
  [flang] Patch build problem

Original-commit: flang-compiler/f18 at a66851210028d1cf31ba4875a2eb71eebb333a91
Reviewed-on: https://github.com/flang-compiler/f18/pull/898


  Commit: dd04f72b2bca9773e32d0246cf3f966e6c3b9dd8
      https://github.com/llvm/llvm-project/commit/dd04f72b2bca9773e32d0246cf3f966e6c3b9dd8
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#898 from flang-compiler/pmk-patch

Patch build problem

Original-commit: flang-compiler/f18 at 07318b5c8936060d6f0602da5e555d951b6abd29
Reviewed-on: https://github.com/flang-compiler/f18/pull/898


  Commit: add998bec16d8072bc54d8c027f60ee9b8477118
      https://github.com/llvm/llvm-project/commit/add998bec16d8072bc54d8c027f60ee9b8477118
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Make SHAPE= argument to C_F_POINTER() sensitive to -Mlargearray

Original-commit: flang-compiler/f18 at daaa74bbc85f0d1625d1aecd89a0b428209c5c4c
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false


  Commit: d64886d01b3839b6b589259d1fdb90e9a4bf1d12
      https://github.com/llvm/llvm-project/commit/d64886d01b3839b6b589259d1fdb90e9a4bf1d12
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/CMakeLists.txt
    A flang/lib/evaluate/fold-character.cc
    A flang/lib/evaluate/fold-complex.cc
    A flang/lib/evaluate/fold-implementation.h
    A flang/lib/evaluate/fold-integer.cc
    A flang/lib/evaluate/fold-logical.cc
    A flang/lib/evaluate/fold-real.cc
    M flang/lib/evaluate/fold.cc

  Log Message:
  -----------
  [flang] Break up fold.cc along per-type fault lines

Original-commit: flang-compiler/f18 at 8022c143d9283d670350e9d2d68b21325becf8c6
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false


  Commit: 8deb4bbeb78a7a2887dce32d1d9abdbe8d370117
      https://github.com/llvm/llvm-project/commit/8deb4bbeb78a7a2887dce32d1d9abdbe8d370117
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/fold-implementation.h
    M flang/lib/evaluate/fold.cc

  Log Message:
  -----------
  [flang] More restructuring

Original-commit: flang-compiler/f18 at 6e4aca113a7d744af8b2566a52e270d59743084e
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false


  Commit: ceb81960235cf34a04b9bb097d72cce085085097
      https://github.com/llvm/llvm-project/commit/ceb81960235cf34a04b9bb097d72cce085085097
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/fold-implementation.h
    M flang/lib/evaluate/fold.cc

  Log Message:
  -----------
  [flang] Put templates back into implementation header

Original-commit: flang-compiler/f18 at 89499243510d44d94ac47d41db34c0e6822801b0
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false


  Commit: c587f89a3c375c1020dd2ea3abaffa1ce2c41988
      https://github.com/llvm/llvm-project/commit/c587f89a3c375c1020dd2ea3abaffa1ce2c41988
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/lib/evaluate/fold-implementation.h

  Log Message:
  -----------
  [flang] Prep for review

Original-commit: flang-compiler/f18 at 25cb92e9903dfd97a8b5b8ecd2b60ce22ecd3659
Reviewed-on: https://github.com/flang-compiler/f18/pull/900


  Commit: 20a9a8154df89293167aadbc6420f9f65518ce1e
      https://github.com/llvm/llvm-project/commit/20a9a8154df89293167aadbc6420f9f65518ce1e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#900 from flang-compiler/pmk-fold

Partition fold.cc to reduce build-time memory requirements

Original-commit: flang-compiler/f18 at 372c82219a7b6cd355bf6d785b81daaf39790ac4
Reviewed-on: https://github.com/flang-compiler/f18/pull/900


  Commit: 96ce00bba2ae1edb7aa3ae3c5a448224588a3b02
      https://github.com/llvm/llvm-project/commit/96ce00bba2ae1edb7aa3ae3c5a448224588a3b02
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2019-12-31 (Tue, 31 Dec 2019)

  Changed paths:
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90
    M flang/test/semantics/canondo16.f90
    M flang/tools/f18/CMakeLists.txt

  Log Message:
  -----------
  [flang] Add .mod file dependencies

Make compilation of other predefined module files depend on
__fortran_builtins.mod. Currently only iso_c_binding.f90 and
iso_fortran_env.f90 depend on it but others could in the future.

Create the .f18.mod files by copying from the .mod files so that
we don't have to worry about dependencies for those.

Original-commit: flang-compiler/f18 at 8209ad3d32909573e9ef72327ba61932f8967587
Reviewed-on: https://github.com/flang-compiler/f18/pull/899


  Commit: 0bea8c9d6b5547201058e0aaff25fc0e1b3a7815
      https://github.com/llvm/llvm-project/commit/0bea8c9d6b5547201058e0aaff25fc0e1b3a7815
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-02 (Thu, 02 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#899 from flang-compiler/deps

Add .mod file dependencies

Original-commit: flang-compiler/f18 at 74617f1d489ad211a81b91881ab8d4c199860fd8
Reviewed-on: https://github.com/flang-compiler/f18/pull/899


  Commit: 9948f910a509cec427362c81c1b309e746cc4e09
      https://github.com/llvm/llvm-project/commit/9948f910a509cec427362c81c1b309e746cc4e09
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-02 (Thu, 02 Jan 2020)

  Changed paths:
    M flang/lib/parser/message.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/test/semantics/modfile35.f90
    M flang/test/semantics/resolve62.f90
    M flang/test/semantics/resolve63.f90

  Log Message:
  -----------
  [flang] Handle type-bound user-defined operators

Pre-review clean-up

Original-commit: flang-compiler/f18 at 1d4e85563aad3fc28c4decdc27f4c52af229c3d4
Reviewed-on: https://github.com/flang-compiler/f18/pull/901


  Commit: a8ce0fcc1ec1ae32e017d1bf4653044a0ebe8091
      https://github.com/llvm/llvm-project/commit/a8ce0fcc1ec1ae32e017d1bf4653044a0ebe8091
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-02 (Thu, 02 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#901 from flang-compiler/pmk-operator-tbp

Fix type-bound user-defined operators

Original-commit: flang-compiler/f18 at db63c87fb0ba8784c6b16cef80d6ae715900fa67
Reviewed-on: https://github.com/flang-compiler/f18/pull/901


  Commit: d32d669651441ccb16069f404c230d13c426279b
      https://github.com/llvm/llvm-project/commit/d32d669651441ccb16069f404c230d13c426279b
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/call.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/test/semantics/dosemantics12.f90

  Log Message:
  -----------
  [flang] Check for passing DO variables to OUT arguments in a CALL statement

I added code to save the INTENT of a dummy argument in the checked expression
of the actual argument.  When processing a CallStmt, I then retrieve the
ProcedureRef, which contains a list of the checked ActualArguments.  I then
traverse this list looking for actual arguments that are active DO variable
that are being passed to dummy arguments whose INTENT is either OUT or INOUT.
For OUT dummies, I put out an error message and warn for INOUT dummies.

Original-commit: flang-compiler/f18 at 0ff1d264284c51a0142df0b785eb5f6409e8ad51
Reviewed-on: https://github.com/flang-compiler/f18/pull/902


  Commit: 004b8417d416bc35eb6198061fa739fd1ba3dd64
      https://github.com/llvm/llvm-project/commit/004b8417d416bc35eb6198061fa739fd1ba3dd64
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#902 from flang-compiler/ps-do-call

Check for passing DO variables to OUT arguments in a CALL statement

Original-commit: flang-compiler/f18 at 27220661c3ac15c3135510b551458bc01a0a8ba5
Reviewed-on: https://github.com/flang-compiler/f18/pull/902


  Commit: 2e32cadddd4fb56ba178616205649447c647b76f
      https://github.com/llvm/llvm-project/commit/2e32cadddd4fb56ba178616205649447c647b76f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/lib/semantics/semantics.cc

  Log Message:
  -----------
  [flang] Remove needless std::move() that breaks clang build

Add the std::move() to where it should have been

Original-commit: flang-compiler/f18 at 54fe9b39a1551313da06e5c40ca2aa523288292d
Reviewed-on: https://github.com/flang-compiler/f18/pull/903


  Commit: 833bce4e94f749ac06d70afc755374e32c1d5c1d
      https://github.com/llvm/llvm-project/commit/833bce4e94f749ac06d70afc755374e32c1d5c1d
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#903 from flang-compiler/pmk-fix

Remove needless std::move() that breaks clang build

Original-commit: flang-compiler/f18 at 85f5cbecf16642b7be7416c1f6d83f85f8fbc9f2
Reviewed-on: https://github.com/flang-compiler/f18/pull/903


  Commit: 83d574bf079bff222763204356d20d86226c8887
      https://github.com/llvm/llvm-project/commit/83d574bf079bff222763204356d20d86226c8887
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/forall01.f90

  Log Message:
  -----------
  [flang] Move forall01 to ERROR_TESTS

That seems to be what was intended and it provides for better checking
of errors.

Original-commit: flang-compiler/f18 at 99376d77a07aa04173bd20dcc45d08b76cae4a73
Reviewed-on: https://github.com/flang-compiler/f18/pull/904
Tree-same-pre-rewrite: false


  Commit: ec88d6780f0ba627d0826bf87419853c1574fd20
      https://github.com/llvm/llvm-project/commit/ec88d6780f0ba627d0826bf87419853c1574fd20
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve35.f90

  Log Message:
  -----------
  [flang] Fix type resolution in ConcurrentHeader

As it was implemented we weren't detecting non-constant kind parameters
in the integer-type-spec. The fix is just to walk the integer-type-spec
like was do any other one.

Also, there is not need for ResolveControlExpressions -- all it does is
walk that part of the parse tree.

Original-commit: flang-compiler/f18 at 8c0d890eb8852e460ea247c0c0e873dfe2da0200
Reviewed-on: https://github.com/flang-compiler/f18/pull/904
Tree-same-pre-rewrite: false


  Commit: b58617b940d2baef8adf778a534f677a97cfee30
      https://github.com/llvm/llvm-project/commit/b58617b940d2baef8adf778a534f677a97cfee30
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-do.cc

  Log Message:
  -----------
  [flang] Use common SymbolSet type

Replace `std::set<const Symbol *>` with `SymbolSet` from `symbol.h`.

Original-commit: flang-compiler/f18 at 78e3ff33cc21999a73a061daaf772ae5f14c8e02
Reviewed-on: https://github.com/flang-compiler/f18/pull/904
Tree-same-pre-rewrite: false


  Commit: d42aaa81f29df5f7f470c6bcb23c226eacfcffea
      https://github.com/llvm/llvm-project/commit/d42aaa81f29df5f7f470c6bcb23c226eacfcffea
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/unparse.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/forall01.f90
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Add analyzed form of pointer assignment

Add `typedAssignment` to `PointerAssignmentStmt` parse tree node and
extend `evaluate::Assignment` to include pointer assignment, including
analyzed bounds. Analyze pointer assignments and fill those in.
Emit them in unparsed output and parse tree dump when present.

Change assignment checking to use analyzed expressions and assignments
rather than calling AnalyzeExpr. Check bounds in pointer assignments
for impure function calls in FORALL context.

Add `Fold` convenience function to `ExpressionAnalyzer`.

Original-commit: flang-compiler/f18 at 140c983423d3f49fad66bc67317af3684e96ba1b
Reviewed-on: https://github.com/flang-compiler/f18/pull/904


  Commit: 092208318142142254aa13019143c2afc27d2204
      https://github.com/llvm/llvm-project/commit/092208318142142254aa13019143c2afc27d2204
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#904 from flang-compiler/tsk-assignment3

Add analyzed form of pointer assignment

Original-commit: flang-compiler/f18 at 1f6cc18c7c1252026b2b673b138cefedd87b2a04
Reviewed-on: https://github.com/flang-compiler/f18/pull/904


  Commit: 39114d503a2b5abf838b67f41b5ad536f95ebfd7
      https://github.com/llvm/llvm-project/commit/39114d503a2b5abf838b67f41b5ad536f95ebfd7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/lib/parser/characters.cc
    M flang/lib/parser/characters.h
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Another attempt to fix bug flang-compiler/f18#877

Original-commit: flang-compiler/f18 at 2ad2330cda59459ccfe63a62f1f944a6151f436c
Reviewed-on: https://github.com/flang-compiler/f18/pull/906


  Commit: 8697c77bac28e38ce412827d399328ab146d1705
      https://github.com/llvm/llvm-project/commit/8697c77bac28e38ce412827d399328ab146d1705
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#906 from flang-compiler/pmk-fix

Another attempt to fix bug flang-compiler/f18#877

Original-commit: flang-compiler/f18 at a4540324a32d60cd5dd82f765256b1e6d57d9504
Reviewed-on: https://github.com/flang-compiler/f18/pull/906


  Commit: cc179ba74990e7a31df773536b09738bfa3248f9
      https://github.com/llvm/llvm-project/commit/cc179ba74990e7a31df773536b09738bfa3248f9
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/fold-implementation.h
    M flang/lib/evaluate/fold-integer.cc
    M flang/lib/evaluate/fold-real.cc
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/real.cc
    M flang/lib/evaluate/real.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/test/evaluate/folding02.f90
    M flang/test/evaluate/real.cc

  Log Message:
  -----------
  [flang] Fold FLOOR, CEILING, NINT, and ANINT

Add GetUltimate() to ResolveAssociations(), fixing a UBOUND test case with use association

Fix folding of array-valued subscripts while I am in here

Original-commit: flang-compiler/f18 at f663d4fef4b4c561f99e8126ff3f1d5b8e868c84
Reviewed-on: https://github.com/flang-compiler/f18/pull/905


  Commit: c3192a17ed88877cf740c4f272720e688a974f2e
      https://github.com/llvm/llvm-project/commit/c3192a17ed88877cf740c4f272720e688a974f2e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-03 (Fri, 03 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#905 from flang-compiler/pmk-folding

Constant folding for ANINT, NINT, FLOOR, and CEILING intrinsic functions

Original-commit: flang-compiler/f18 at ccb3ae517be766436e1cd7bcdcbb06d494fe614b
Reviewed-on: https://github.com/flang-compiler/f18/pull/905


  Commit: 582b932542482aa4dac488cc228673c5177385f7
      https://github.com/llvm/llvm-project/commit/582b932542482aa4dac488cc228673c5177385f7
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2020-01-04 (Sat, 04 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-coarray.cc
    M flang/lib/semantics/check-coarray.h
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/critical01.f90
    A flang/test/semantics/critical02.f90
    A flang/test/semantics/critical03.f90
    A flang/test/semantics/critical04.f90

  Log Message:
  -----------
  [flang] Semantic checks for critical construct

The commit includes the following,
-> The name field in DoConcurrent*Enforce classes are not used anymore.
Removing the field and its collection and retrieval from
DoConcurrentBodyEnforce and its usage in DoConcurrentLabelEnforce.
-> DoConcurrentLabelEnforce is useful for checking that there
are no branches escaping from other constructs also. For enabling
use in other constructs (like critical) moving this to tools.h
and renaming it as LabelEnforce.
-> Checks for the constraints.
-> Tests for the constaints.

Original-commit: flang-compiler/f18 at 4b7a007ff3d4a3e519c85e960fc262bb382f3af4
Reviewed-on: https://github.com/flang-compiler/f18/pull/897


  Commit: 6099a1b17fe5a6b32a90d912d4d2ec30a053915d
      https://github.com/llvm/llvm-project/commit/6099a1b17fe5a6b32a90d912d4d2ec30a053915d
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-04 (Sat, 04 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#897 from kiranchandramohan/critical-3

Semantic Checks for critical construct

Original-commit: flang-compiler/f18 at b17ab7f7bda573d33d6ca554ef1e46144148cf57
Reviewed-on: https://github.com/flang-compiler/f18/pull/897


  Commit: 01c3e4c9f0c056d10f13d79384ccac492ed3fbc3
      https://github.com/llvm/llvm-project/commit/01c3e4c9f0c056d10f13d79384ccac492ed3fbc3
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-07 (Tue, 07 Jan 2020)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/common/default-kinds.cc
    M flang/lib/common/default-kinds.h
    M flang/lib/evaluate/intrinsics.cc
    M flang/test/semantics/getdefinition01.f90
    M flang/test/semantics/getdefinition02.f
    M flang/test/semantics/getdefinition03-a.f90
    M flang/test/semantics/getdefinition04.f90
    M flang/test/semantics/getdefinition05.f90
    M flang/test/semantics/getsymbols01.f90
    M flang/test/semantics/getsymbols02-a.f90
    M flang/test/semantics/getsymbols02-b.f90
    M flang/test/semantics/getsymbols02-c.f90
    M flang/test/semantics/getsymbols03-a.f90
    M flang/test/semantics/getsymbols04.f90
    M flang/test/semantics/getsymbols05.f90
    M flang/test/semantics/label14.f90
    M flang/test/semantics/modfile30.f90
    M flang/test/semantics/modfile32.f90
    M flang/test/semantics/modfile33.f90
    M flang/tools/f18/CMakeLists.txt
    M flang/tools/f18/f18.cc
    M flang/tools/f18/flang.sh

  Log Message:
  -----------
  [flang] enable semantic analysis by default

back out -Mnolargearray default temporarily

Fix C_F_POINTER(SHAPE=) argument check, it can be any kind of integer

Revert default result kind of SIZE() & al. to standard by default

Remove needless usage of -fdebug-semantics

Original-commit: flang-compiler/f18 at 57058a5b163eaa90c7e0f387ea4918f9efa8184c
Reviewed-on: https://github.com/flang-compiler/f18/pull/907


  Commit: e546a20972c3551020757521bb0e875df7c35da8
      https://github.com/llvm/llvm-project/commit/e546a20972c3551020757521bb0e875df7c35da8
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-07 (Tue, 07 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#907 from flang-compiler/pmk-enable-semantics

Enable semantic analysis by default

Original-commit: flang-compiler/f18 at 26ab8745110bcd8909024bb02720cc0f23b9ed9b
Reviewed-on: https://github.com/flang-compiler/f18/pull/907


  Commit: 91a2f0c75c3c054680d09cc1d7a4e898043a065f
      https://github.com/llvm/llvm-project/commit/91a2f0c75c3c054680d09cc1d7a4e898043a065f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-07 (Tue, 07 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/character.h
    M flang/lib/evaluate/fold-character.cc
    M flang/lib/evaluate/fold-implementation.h
    M flang/lib/evaluate/fold-integer.cc
    M flang/lib/evaluate/fold-real.cc
    M flang/lib/evaluate/logical.h
    M flang/test/evaluate/folding05.f90
    M flang/test/semantics/c_f_pointer.f90
    M flang/test/semantics/call08.f90

  Log Message:
  -----------
  [flang] Implement folding of INDEX, SCAN, & VERIFY

Fold LEN_TRIM

Fold REPEAT

Fix gcc build warning

Fix two tests that had illegal pointers to coarrays

Original-commit: flang-compiler/f18 at 36769996fa9559b84dda59f3f9eceee9d2269e74
Reviewed-on: https://github.com/flang-compiler/f18/pull/910


  Commit: 7ae9cf95358fda3996505c3197de3a2bcbc3b3ea
      https://github.com/llvm/llvm-project/commit/7ae9cf95358fda3996505c3197de3a2bcbc3b3ea
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-07 (Tue, 07 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#910 from flang-compiler/pmk-fold-more

Fold more intrinsic functions

Original-commit: flang-compiler/f18 at 4f737d4cf684fe84abaa3b44c70187f1f8b53072
Reviewed-on: https://github.com/flang-compiler/f18/pull/910


  Commit: d267f20a0742bfdac248280c2ea33eb999183674
      https://github.com/llvm/llvm-project/commit/d267f20a0742bfdac248280c2ea33eb999183674
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-08 (Wed, 08 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/character.h
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/fold-character.cc
    M flang/lib/evaluate/fold-logical.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/test/evaluate/CMakeLists.txt
    M flang/test/evaluate/folding05.f90
    A flang/test/evaluate/folding09.f90
    M flang/test/semantics/modfile32.f90

  Log Message:
  -----------
  [flang] Fold TRIM

Accept IS_CONTIGUOUS and fold it

test folding is_contiguous

Original-commit: flang-compiler/f18 at c75a0791b14811477572c6a82a961071ed82c01e
Reviewed-on: https://github.com/flang-compiler/f18/pull/911


  Commit: 866ab0783726ed54efd0ae5ca2dacb0aa83cf29f
      https://github.com/llvm/llvm-project/commit/866ab0783726ed54efd0ae5ca2dacb0aa83cf29f
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-08 (Wed, 08 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#911 from flang-compiler/pmk-fold-trim

Fold TRIM and (new intrinsic) IS_CONTIGUOUS

Original-commit: flang-compiler/f18 at 2c6480a62dfb75884373a4fb8b00eadb2d09adf9
Reviewed-on: https://github.com/flang-compiler/f18/pull/911


  Commit: e6ab4a786940431434a02f19188adb7883407baf
      https://github.com/llvm/llvm-project/commit/e6ab4a786940431434a02f19188adb7883407baf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-09 (Thu, 09 Jan 2020)

  Changed paths:
    M flang/documentation/Extensions.md

  Log Message:
  -----------
  [flang] Address complaints in bug flang-compiler/f18#912

Original-commit: flang-compiler/f18 at 829f5647d67131af57dcb84b0ed2d63a5324900d
Reviewed-on: https://github.com/flang-compiler/f18/pull/917


  Commit: 9744328fed40b2cd7017f3ec5a951a6cd8c35c4b
      https://github.com/llvm/llvm-project/commit/9744328fed40b2cd7017f3ec5a951a6cd8c35c4b
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-09 (Thu, 09 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#917 from flang-compiler/pmk-fix-912

Address complaints in bug flang-compiler/f18#912

Original-commit: flang-compiler/f18 at 66025c14e432ee3f2ceab9ad5176bd1c64cd147c
Reviewed-on: https://github.com/flang-compiler/f18/pull/917


  Commit: aeb07fbea6de56a96f5fc4443baea62d798c714f
      https://github.com/llvm/llvm-project/commit/aeb07fbea6de56a96f5fc4443baea62d798c714f
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-09 (Thu, 09 Jan 2020)

  Changed paths:
    M flang/lib/common/format.h
    M flang/runtime/CMakeLists.txt
    A flang/runtime/c-or-cpp.h
    A flang/runtime/main.cc
    A flang/runtime/main.h
    A flang/runtime/stop.cc
    A flang/runtime/stop.h
    A flang/runtime/terminator.cc
    A flang/runtime/terminator.h

  Log Message:
  -----------
  [flang] Runtime starting and stopping

Define ImageTerminator as a mixin-able class

Turn start.cc into main.cc

Original-commit: flang-compiler/f18 at cbc6225213075a0bdd778fd25721aa8388908e07
Reviewed-on: https://github.com/flang-compiler/f18/pull/914


  Commit: 1c21916785af908a60a04ca8634ce38d79b49e16
      https://github.com/llvm/llvm-project/commit/1c21916785af908a60a04ca8634ce38d79b49e16
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-09 (Thu, 09 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#914 from flang-compiler/pmk-runtime-1

Start, stop, and error routines for runtime

Original-commit: flang-compiler/f18 at 42ff2d005242d71f80a9460c00cbcec3e8323971
Reviewed-on: https://github.com/flang-compiler/f18/pull/914


  Commit: 9e6d1a7892123b4334ff42ad2919ee76a01a6e98
      https://github.com/llvm/llvm-project/commit/9e6d1a7892123b4334ff42ad2919ee76a01a6e98
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-09 (Thu, 09 Jan 2020)

  Changed paths:
    M flang/runtime/main.cc
    M flang/runtime/stop.cc

  Log Message:
  -----------
  [flang] Dodge build problem in some Power environments

Original-commit: flang-compiler/f18 at f24abf19c4aac3869459cd0984473ea3b5232d12
Reviewed-on: https://github.com/flang-compiler/f18/pull/919


  Commit: fd2896e20a790d589f3f7695c3ad4ef04bb0e2b6
      https://github.com/llvm/llvm-project/commit/fd2896e20a790d589f3f7695c3ad4ef04bb0e2b6
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#919 from flang-compiler/pmk-fix-power-build

Dodge build problem in some Power environments

Original-commit: flang-compiler/f18 at 5b7f08abd79d3c59723dad6e8de0568c834479e1
Reviewed-on: https://github.com/flang-compiler/f18/pull/919


  Commit: cea1040d51e2f30f70dd53375101d28ccff9a06f
      https://github.com/llvm/llvm-project/commit/cea1040d51e2f30f70dd53375101d28ccff9a06f
  Author: Gary Klimowicz <gklimowicz at pobox.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/documentation/OpenMP-4.5-grammar.txt
    M flang/documentation/f2018-grammar.txt
    M flang/documentation/flang-c-style.el
    M flang/include/flang/CMakeLists.txt
    M flang/include/flang/Config/config.h.cmake
    M flang/include/flang/ISO_Fortran_binding.h
    M flang/lib/CMakeLists.txt
    M flang/lib/common/CMakeLists.txt
    M flang/lib/common/Fortran-features.cc
    M flang/lib/common/Fortran-features.h
    M flang/lib/common/Fortran.cc
    M flang/lib/common/Fortran.h
    M flang/lib/common/bit-population-count.h
    M flang/lib/common/constexpr-bitset.h
    M flang/lib/common/default-kinds.cc
    M flang/lib/common/default-kinds.h
    M flang/lib/common/enum-set.h
    M flang/lib/common/format.h
    M flang/lib/common/idioms.cc
    M flang/lib/common/idioms.h
    M flang/lib/common/indirection.h
    M flang/lib/common/interval.h
    M flang/lib/common/leading-zero-bit-count.h
    M flang/lib/common/reference-counted.h
    M flang/lib/common/reference.h
    M flang/lib/common/restorer.h
    M flang/lib/common/template.h
    M flang/lib/common/uint128.h
    M flang/lib/common/unsigned-const-division.h
    M flang/lib/common/unwrap.h
    M flang/lib/decimal/CMakeLists.txt
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    M flang/lib/decimal/decimal.h
    M flang/lib/evaluate/CMakeLists.txt
    M flang/lib/evaluate/call.cc
    M flang/lib/evaluate/call.h
    M flang/lib/evaluate/character.h
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/evaluate/check-expression.h
    M flang/lib/evaluate/common.cc
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/complex.cc
    M flang/lib/evaluate/complex.h
    M flang/lib/evaluate/constant.cc
    M flang/lib/evaluate/constant.h
    M flang/lib/evaluate/expression.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/fold-character.cc
    M flang/lib/evaluate/fold-complex.cc
    M flang/lib/evaluate/fold-implementation.h
    M flang/lib/evaluate/fold-integer.cc
    M flang/lib/evaluate/fold-logical.cc
    M flang/lib/evaluate/fold-real.cc
    M flang/lib/evaluate/fold.cc
    M flang/lib/evaluate/fold.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/evaluate/formatting.h
    M flang/lib/evaluate/host.cc
    M flang/lib/evaluate/host.h
    M flang/lib/evaluate/int-power.h
    M flang/lib/evaluate/integer.cc
    M flang/lib/evaluate/integer.h
    M flang/lib/evaluate/intrinsics-library-templates.h
    M flang/lib/evaluate/intrinsics-library.cc
    M flang/lib/evaluate/intrinsics-library.h
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/intrinsics.h
    M flang/lib/evaluate/logical.cc
    M flang/lib/evaluate/logical.h
    M flang/lib/evaluate/real.cc
    M flang/lib/evaluate/real.h
    M flang/lib/evaluate/rounding-bits.h
    M flang/lib/evaluate/shape.cc
    M flang/lib/evaluate/shape.h
    M flang/lib/evaluate/static-data.cc
    M flang/lib/evaluate/static-data.h
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/tools.h
    M flang/lib/evaluate/traverse.h
    M flang/lib/evaluate/type.cc
    M flang/lib/evaluate/type.h
    M flang/lib/evaluate/variable.cc
    M flang/lib/evaluate/variable.h
    M flang/lib/parser/CMakeLists.txt
    M flang/lib/parser/Fortran-parsers.cc
    M flang/lib/parser/basic-parsers.h
    M flang/lib/parser/char-block.h
    M flang/lib/parser/char-buffer.cc
    M flang/lib/parser/char-buffer.h
    M flang/lib/parser/char-set.cc
    M flang/lib/parser/char-set.h
    M flang/lib/parser/characters.cc
    M flang/lib/parser/characters.h
    M flang/lib/parser/debug-parser.cc
    M flang/lib/parser/debug-parser.h
    M flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/executable-parsers.cc
    M flang/lib/parser/expr-parsers.cc
    M flang/lib/parser/expr-parsers.h
    M flang/lib/parser/format-specification.h
    M flang/lib/parser/instrumented-parser.cc
    M flang/lib/parser/instrumented-parser.h
    M flang/lib/parser/io-parsers.cc
    M flang/lib/parser/message.cc
    M flang/lib/parser/message.h
    M flang/lib/parser/misc-parsers.h
    M flang/lib/parser/openmp-parsers.cc
    M flang/lib/parser/parse-state.h
    M flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.cc
    M flang/lib/parser/parse-tree.h
    M flang/lib/parser/parsing.cc
    M flang/lib/parser/parsing.h
    M flang/lib/parser/preprocessor.cc
    M flang/lib/parser/preprocessor.h
    M flang/lib/parser/prescan.cc
    M flang/lib/parser/prescan.h
    M flang/lib/parser/program-parsers.cc
    M flang/lib/parser/provenance.cc
    M flang/lib/parser/provenance.h
    M flang/lib/parser/source.cc
    M flang/lib/parser/source.h
    M flang/lib/parser/stmt-parser.h
    M flang/lib/parser/token-parsers.h
    M flang/lib/parser/token-sequence.cc
    M flang/lib/parser/token-sequence.h
    M flang/lib/parser/tools.cc
    M flang/lib/parser/tools.h
    M flang/lib/parser/type-parser-implementation.h
    M flang/lib/parser/type-parsers.h
    M flang/lib/parser/unparse.cc
    M flang/lib/parser/unparse.h
    M flang/lib/parser/user-state.cc
    M flang/lib/parser/user-state.h
    M flang/lib/semantics/CMakeLists.txt
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/attr.cc
    M flang/lib/semantics/attr.h
    M flang/lib/semantics/canonicalize-do.cc
    M flang/lib/semantics/canonicalize-do.h
    M flang/lib/semantics/canonicalize-omp.cc
    M flang/lib/semantics/canonicalize-omp.h
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-allocate.h
    M flang/lib/semantics/check-arithmeticif.cc
    M flang/lib/semantics/check-arithmeticif.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-call.h
    M flang/lib/semantics/check-coarray.cc
    M flang/lib/semantics/check-coarray.h
    M flang/lib/semantics/check-deallocate.cc
    M flang/lib/semantics/check-deallocate.h
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-declarations.h
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/check-if-stmt.cc
    M flang/lib/semantics/check-if-stmt.h
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-io.h
    M flang/lib/semantics/check-nullify.cc
    M flang/lib/semantics/check-nullify.h
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/lib/semantics/check-purity.cc
    M flang/lib/semantics/check-purity.h
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/check-return.h
    M flang/lib/semantics/check-stop.cc
    M flang/lib/semantics/check-stop.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/mod-file.h
    M flang/lib/semantics/program-tree.cc
    M flang/lib/semantics/program-tree.h
    M flang/lib/semantics/resolve-labels.cc
    M flang/lib/semantics/resolve-labels.h
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names-utils.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/resolve-names.h
    M flang/lib/semantics/rewrite-parse-tree.cc
    M flang/lib/semantics/rewrite-parse-tree.h
    M flang/lib/semantics/scope.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/semantics.cc
    M flang/lib/semantics/semantics.h
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h
    M flang/lib/semantics/unparse-with-symbols.cc
    M flang/lib/semantics/unparse-with-symbols.h
    M flang/module/__fortran_builtins.f90
    M flang/module/ieee_arithmetic.f90
    M flang/module/ieee_exceptions.f90
    M flang/module/ieee_features.f90
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90
    M flang/module/omp_lib.f90
    M flang/module/omp_lib.h
    M flang/runtime/CMakeLists.txt
    M flang/runtime/ISO_Fortran_binding.cc
    M flang/runtime/c-or-cpp.h
    M flang/runtime/derived-type.cc
    M flang/runtime/derived-type.h
    M flang/runtime/descriptor.cc
    M flang/runtime/descriptor.h
    M flang/runtime/entry-names.h
    M flang/runtime/io-api.h
    M flang/runtime/main.cc
    M flang/runtime/main.h
    M flang/runtime/stop.cc
    M flang/runtime/stop.h
    M flang/runtime/terminator.cc
    M flang/runtime/terminator.h
    M flang/runtime/transformational.cc
    M flang/runtime/transformational.h
    M flang/runtime/type-code.cc
    M flang/runtime/type-code.h
    M flang/test/CMakeLists.txt
    M flang/test/decimal/CMakeLists.txt
    M flang/test/evaluate/CMakeLists.txt
    M flang/test/semantics/CMakeLists.txt
    M flang/tools/CMakeLists.txt
    M flang/tools/f18/CMakeLists.txt
    M flang/tools/f18/dump.cc
    M flang/tools/f18/f18-parse-demo.cc
    M flang/tools/f18/f18.cc
    M flang/tools/f18/flang.sh
    M flang/tools/f18/stub-evaluate.cc

  Log Message:
  -----------
  [flang] Minor format change to LLVM license lines

Replace comment lines containing all dashes with the
proper ===-----....----=== markers.

Original-commit: flang-compiler/f18 at a8936b0d4187a9a9ef43f9d34055a3213beeb9d2
Reviewed-on: https://github.com/flang-compiler/f18/pull/922


  Commit: b37ba4d3e315bc5dd126fab97d4d49289a145dc5
      https://github.com/llvm/llvm-project/commit/b37ba4d3e315bc5dd126fab97d4d49289a145dc5
  Author: Gary Klimowicz <gklimowicz at pobox.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#922 from flang-compiler/gak-fix-comments

Minor format change to LLVM license lines

Original-commit: flang-compiler/f18 at 9c7406324dc3768886ec8d2baf92b0d9395291be
Reviewed-on: https://github.com/flang-compiler/f18/pull/922


  Commit: 1243a0d1751cc44a8f20663dc056a1c0ff3fe20e
      https://github.com/llvm/llvm-project/commit/1243a0d1751cc44a8f20663dc056a1c0ff3fe20e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/expression.h
    M flang/test/semantics/call13.f90

  Log Message:
  -----------
  [flang] Detect incorrect use of assumed-type dummy arguments

Assumed-type dummy arguments can only be used as actual arguments. If
they are used in other contexts it is an error. Change argument analysis
to handle these differently depending on the context. `allowAssumedType`
is set when the argument can be assumed-type. These expressions now all
get `typedExpr` set to `nullopt`.

Change `AnalyzeSectionSubscripts` to analyze all of the subscripts
even if one has an error. This ensures they all get analyzed expressions
(or `nullopt` in case of error).

Fix a bug analyzing `BoundsRemapping`: the lower bound was analyzed
twice and the upper bound not at all.

These change mean that `typedExpr` is set in all known cases.
Fixes flang-compiler/f18#915.

Original-commit: flang-compiler/f18 at 679ef69905e39f39454768264059afd85b615840
Reviewed-on: https://github.com/flang-compiler/f18/pull/923


  Commit: 30088b77d9cf657f97a92e6dcfec1baeb7492bb3
      https://github.com/llvm/llvm-project/commit/30088b77d9cf657f97a92e6dcfec1baeb7492bb3
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#923 from flang-compiler/tsk-expr2

Detect incorrect use of assumed-type dummy arguments

Original-commit: flang-compiler/f18 at b29f284325f95efbba2b9da35282b2e066f65446
Reviewed-on: https://github.com/flang-compiler/f18/pull/923


  Commit: ec45bc26d30a0a548a4df28ed45a2d6060aef17e
      https://github.com/llvm/llvm-project/commit/ec45bc26d30a0a548a4df28ed45a2d6060aef17e
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/test/semantics/dosemantics12.f90

  Log Message:
  -----------
  [flang] Checks for DO variables passed to INTENT(OUT) dummies in functions

I added a traveral framework to find actual arguments in expressions.
For arguments that are DO variables being passed to dummy arguments with
INTENT(OUT), I emit an error message.  For INTENT(INOUT), I emit a
warning.

Original-commit: flang-compiler/f18 at 815dbed75c2cae778b4a65022a9c1f6ad4cf3d47
Reviewed-on: https://github.com/flang-compiler/f18/pull/918


  Commit: 6e9673e91e880a10f0bfd1ca983a9de8366bd4e2
      https://github.com/llvm/llvm-project/commit/6e9673e91e880a10f0bfd1ca983a9de8366bd4e2
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#918 from flang-compiler/ps-do-func

Checks for DO variables passed to INTENT(OUT) dummies in functions

Original-commit: flang-compiler/f18 at ab8fd34a718ca93d6e621b8818cfa6c2e1e948bf
Reviewed-on: https://github.com/flang-compiler/f18/pull/918


  Commit: 5f7a9504aee62476117cc9f8c25083f518ff18b6
      https://github.com/llvm/llvm-project/commit/5f7a9504aee62476117cc9f8c25083f518ff18b6
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-01-12 (Sun, 12 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-do.cc

  Log Message:
  -----------
  [flang] Removed an unnecessary check after Tim fixed issue flang-compiler/f18#915.

Original-commit: flang-compiler/f18 at 348b04bc1c313d5d18ebb133441967547d4c7d6d
Reviewed-on: https://github.com/flang-compiler/f18/pull/924


  Commit: d731aeffacebc37aa5b50743e1ae0eaee8492704
      https://github.com/llvm/llvm-project/commit/d731aeffacebc37aa5b50743e1ae0eaee8492704
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-01-12 (Sun, 12 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#924 from flang-compiler/ps-cleanup-do-check

Removed an unnecessary check after Tim fixed issue flang-compiler/f18#915.

Original-commit: flang-compiler/f18 at 538a6dd5e27e3a159b84cd167f46bbbf656c8cfe
Reviewed-on: https://github.com/flang-compiler/f18/pull/924


  Commit: 05bdb54a490a3a88d3ca90e8ba8e67492c2f6648
      https://github.com/llvm/llvm-project/commit/05bdb54a490a3a88d3ca90e8ba8e67492c2f6648
  Author: David Truby <david.truby at arm.com>
  Date:   2020-01-13 (Mon, 13 Jan 2020)

  Changed paths:
    M flang/lib/parser/CMakeLists.txt
    A flang/lib/parser/char-block.cc
    M flang/lib/parser/char-block.h

  Log Message:
  -----------
  [flang] Outline operator<< for CharBlock. (flang-compiler/f18#916)

This fixes an issue where the Dump function definitions in dump.cc
were relying on the forward declaration of operator<< for CharBlock
which was marked inline and only present in char-block.h.

This is not allowed under section 6.2.10 of the C++17 standard, and
caused a compilation failure when building with clang 9 as this was
inlining every use of the function and therefore not generating an
outlined definition for linking.

Original-commit: flang-compiler/f18 at 3ad75d123b666a5081540f2afedbedde930b2518
Reviewed-on: https://github.com/flang-compiler/f18/pull/916


  Commit: 0d9dd49ed4d5d0e4273664adf11fb5d53a6fcd22
      https://github.com/llvm/llvm-project/commit/0d9dd49ed4d5d0e4273664adf11fb5d53a6fcd22
  Author: CarolineConcatto <51754594+CarolineConcatto at users.noreply.github.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/CMakeLists.txt
    M flang/README.md
    A flang/test-lit/CMakeLists.txt
    A flang/test-lit/driver/version_test.f90
    A flang/test-lit/lit.cfg.py
    A flang/test-lit/lit.site.cfg.py.in

  Log Message:
  -----------
  [flang] Regression tests configuration for f18 repository (flang-compiler/f18#861)

The configuration for the tests are in lit.* files.
The lit tests rely on the presence of llvm-lit,FileCheck, not and  count.
When building LLVM add:
-DLLVM_INSTALL_UTILS=On at the cmake command.
LLVM_LIT is found by setting LLVM_EXTERNAL_LIT in f18 CMakeLists.txt.

This patch:
  * Uses LLVM_EXTERNAL_LIT
  * Adds regression tests configurations
  * Adds a proof of concept regression test

The regression test needs to have the Utils build in LLVM.
This is done by adding:
  -DLLVM_INSTALL_UTILS=On
to the LLVM build cmake.

Signed-off-by: Caroline Concatto <caroline.concatto at arm.com>

Original-commit: flang-compiler/f18 at a58c6067a1ab5cd02dfb5b6fb9919a20b960d984
Reviewed-on: https://github.com/flang-compiler/f18/pull/861


  Commit: 1fe6297cab71904df8ac7fa22347abda2f59bf1a
      https://github.com/llvm/llvm-project/commit/1fe6297cab71904df8ac7fa22347abda2f59bf1a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/intrinsics.cc

  Log Message:
  -----------
  [flang] Fix bug flang-compiler/f18#931: spurious error reported on CSHIFT

Original-commit: flang-compiler/f18 at bd9bd788652975ac11a24fd5d10197be80c78603
Reviewed-on: https://github.com/flang-compiler/f18/pull/932


  Commit: 605d79eaeb3d78ae373d29a4c03408d9e47294d7
      https://github.com/llvm/llvm-project/commit/605d79eaeb3d78ae373d29a4c03408d9e47294d7
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#932 from flang-compiler/pmk-fix-931

Fix bug flang-compiler/f18#931: spurious error reported on CSHIFT

Original-commit: flang-compiler/f18 at 6adae0b7f4196e54b874c4d0aca93c5cb2d01bd7
Reviewed-on: https://github.com/flang-compiler/f18/pull/932


  Commit: 889c81eae79f7ecca49ca0381f13785a33b85c84
      https://github.com/llvm/llvm-project/commit/889c81eae79f7ecca49ca0381f13785a33b85c84
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve58.f90
    M flang/test/semantics/resolve61.f90

  Log Message:
  -----------
  [flang] Move checks for valid array-spec to check-declarations.cc

At the time we finish processing an array-spec in `resolve-names.cc`,
we don't know if the entity is going to be declared ALLOCATABLE later
so we can't check for validity there. In the new test in `resolve58.f90`
(based on issue flang-compiler/f18#930) we were reporting an error on `b` and not on `a`
when it should be the reverse.

The fix is to move array-spec checking to `check-declarations.cc`,
after name resolution is complete.

Fixes flang-compiler/f18#930.

Original-commit: flang-compiler/f18 at c596d2fef7628236676c1939659f4eb956e4df35
Reviewed-on: https://github.com/flang-compiler/f18/pull/933


  Commit: 18e37a7adfa083f7823b8e7e837ba6419bafe87d
      https://github.com/llvm/llvm-project/commit/18e37a7adfa083f7823b8e7e837ba6419bafe87d
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#933 from flang-compiler/tsk-issues

Move checks for valid array-spec to check-declarations.cc

Original-commit: flang-compiler/f18 at 7cf6f6137d93a6faca40a835cdabaecebe02d219
Reviewed-on: https://github.com/flang-compiler/f18/pull/933


  Commit: ce3d838bc6cdf14ef86ac0f4040c371687301553
      https://github.com/llvm/llvm-project/commit/ce3d838bc6cdf14ef86ac0f4040c371687301553
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h

  Log Message:
  -----------
  [flang] Clean up AssignmentContext

Eliminate `at_` and use location from `SemanticsContext` instead.

Add and use Analyze functions for `std::optional` and `std::list`.

Original-commit: flang-compiler/f18 at e171029ccdb9efe874cad3a3d91adcfa200a6550
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false


  Commit: c42a22091fd4851a46623311e0ba85162488cd63
      https://github.com/llvm/llvm-project/commit/c42a22091fd4851a46623311e0ba85162488cd63
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/CMakeLists.txt
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/expression.cc
    A flang/lib/semantics/pointer-assignment.cc
    A flang/lib/semantics/pointer-assignment.h

  Log Message:
  -----------
  [flang] Move pointer assignment checking to its own file

Create `pointer-assignment.{h,cc}` for pointer assignment checking.
It doesn't share with assignment checking so it should be its own file.
Move the code into semantics namespace.

Original-commit: flang-compiler/f18 at 1658aba81f24fe3913298e76ae8b9c938bd4d248
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false


  Commit: 355ab9bb82591dfebebfb2cb13bae113923b9189
      https://github.com/llvm/llvm-project/commit/355ab9bb82591dfebebfb2cb13bae113923b9189
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/formatting.cc
    M flang/test/evaluate/expression.cc
    M flang/test/semantics/modfile18.f90
    M flang/test/semantics/modfile25.f90
    M flang/test/semantics/modfile26.f90
    M flang/test/semantics/modfile27.f90
    M flang/test/semantics/modfile31.f90
    M flang/test/semantics/null01.f90
    M flang/test/semantics/resolve56.f90
    M flang/test/semantics/structconst02.f90

  Log Message:
  -----------
  [flang] Make Fortran form of intrinsic types uppercase

`DynamicType::AsFortran` was using mixed case for intrinic type names.
Make it upper case for consistency with TYPE(...) and CHARACTER when a
length is present and other error messages.

Original-commit: flang-compiler/f18 at e16909d67f16425b267511e5fe33f2ff72f69ee9
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false


  Commit: a5db74b614db7fbb47ea13f1cd1095cad6f8ef89
      https://github.com/llvm/llvm-project/commit/a5db74b614db7fbb47ea13f1cd1095cad6f8ef89
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/intrinsics.cc
    M flang/lib/evaluate/intrinsics.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/test/semantics/resolve46.f90

  Log Message:
  -----------
  [flang] Add IntrinsicProcTable::IsSpecificIntrinsicFunction

This replaces IsUnrestrictedSpecificIntrinsicFunction and returns
information that allows the caller to distinguish between restricted
and unrestricted intrinsics.

The new case in `resolve46.f90` used to get an internal error.

Original-commit: flang-compiler/f18 at 4cb1ee10b90bbc5e3c4899ab136fad4d1e841195
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false


  Commit: cfedf1dac9810483e3797b938b1c291f021865da
      https://github.com/llvm/llvm-project/commit/cfedf1dac9810483e3797b938b1c291f021865da
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/tools.h
    M flang/lib/semantics/assignment.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/assign03.f90

  Log Message:
  -----------
  [flang] C1027: procedure pointer may not be coindexed object

Original-commit: flang-compiler/f18 at 4261daf352edefabee5c97f0ed0da09280240a86
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false


  Commit: cb378080580b5039a0b9072d99fc06eb71d08635
      https://github.com/llvm/llvm-project/commit/cb378080580b5039a0b9072d99fc06eb71d08635
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/pointer-assignment.cc
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/assign02.f90
    M flang/test/semantics/assign03.f90
    M flang/test/semantics/call09.f90
    M flang/test/semantics/procinterface01.f90
    M flang/test/semantics/resolve46.f90
    M flang/test/semantics/symbol17.f90

  Log Message:
  -----------
  [flang] Pointer assignment semantic checks

Call `CheckPointerAssignment()` when analyzing a pointer assignment
statement. NOTE: the cases with bounds-spec and bounds-remapping are
still to be done.

Perform checks on pointer symbols in `check-declarations.cc`.

Check for pointer to generic intrinsic in `semantics/expression.cc`.

Add the other required pointer assignment checks to `pointer-assignment.cc`.

Original-commit: flang-compiler/f18 at 3dc5fd6d9e58d1ef0efd1deefcbaa52499ad93f9
Reviewed-on: https://github.com/flang-compiler/f18/pull/928


  Commit: b4eade7f88d69a1b8ce223fcf51e3cc211e4d6e0
      https://github.com/llvm/llvm-project/commit/b4eade7f88d69a1b8ce223fcf51e3cc211e4d6e0
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#928 from flang-compiler/tsk-assignment3

Pointer assignment semantic checks

Original-commit: flang-compiler/f18 at fc600af81e1a5c75d4f619bed3feb6194117b54d
Reviewed-on: https://github.com/flang-compiler/f18/pull/928


  Commit: 15c89acb18c06f8193fc66c7e5a1577c1cbaf275
      https://github.com/llvm/llvm-project/commit/15c89acb18c06f8193fc66c7e5a1577c1cbaf275
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-13 (Mon, 13 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/program-tree.cc
    M flang/lib/semantics/program-tree.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/scope.h
    M flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/lib/semantics/type.cc
    M flang/lib/semantics/type.h
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/block-data01.f90

  Log Message:
  -----------
  [flang] BLOCK DATA

add test

Original-commit: flang-compiler/f18 at 91c084b698b0617da5d7592a5b1830adc5c5d84e
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: efa2ec7670b5eb0782ebb6e087c9a9da05ebabe7
      https://github.com/llvm/llvm-project/commit/efa2ec7670b5eb0782ebb6e087c9a9da05ebabe7
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-13 (Mon, 13 Jan 2020)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/evaluate/check-expression.cc
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.h
    M flang/test/semantics/block-data01.f90

  Log Message:
  -----------
  [flang] Address review comments

Original-commit: flang-compiler/f18 at 59e5565cb87eebd2c4f44defd22484ca83777942
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: c2bdc144c511161673bb6eebb021fd898f94ab10
      https://github.com/llvm/llvm-project/commit/c2bdc144c511161673bb6eebb021fd898f94ab10
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-13 (Mon, 13 Jan 2020)

  Changed paths:
    M flang/documentation/Extensions.md
    M flang/lib/common/Fortran-features.h
    M flang/lib/semantics/check-return.cc
    M flang/test/semantics/CMakeLists.txt

  Log Message:
  -----------
  [flang] More comments addressed

Original-commit: flang-compiler/f18 at 9c863a572b39beca7f1f3e86edb239e6d3b72d4f
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: 7010fff8de0cc9de7de5ae2ea1690eab2a198b90
      https://github.com/llvm/llvm-project/commit/7010fff8de0cc9de7de5ae2ea1690eab2a198b90
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-13 (Mon, 13 Jan 2020)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc

  Log Message:
  -----------
  [flang] Fix bug

Original-commit: flang-compiler/f18 at 662b8139b5d17b39222b2d297114606e86fa83d7
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: b07a4b24741ceb326e3add903e1c36d40adc07e4
      https://github.com/llvm/llvm-project/commit/b07a4b24741ceb326e3add903e1c36d40adc07e4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/symbol.h
    M flang/runtime/CMakeLists.txt
    M flang/test/semantics/block-data01.f90
    M flang/test/semantics/symbol09.f90

  Log Message:
  -----------
  [flang] Better check for variables in DATA

Original-commit: flang-compiler/f18 at 92e20baaa89fd20cd724bb4414e84670843cc442
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: c1a710d7721f423831471f874e0194230681a3ae
      https://github.com/llvm/llvm-project/commit/c1a710d7721f423831471f874e0194230681a3ae
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    A flang/test/semantics/altreturn05.f90

  Log Message:
  -----------
  [flang] Address review comments

Original-commit: flang-compiler/f18 at d179c796bd7271916c52d8478e60a88bff809564
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: 26481ef2bbb7e3eb1aa225cc04792a4afa059538
      https://github.com/llvm/llvm-project/commit/26481ef2bbb7e3eb1aa225cc04792a4afa059538
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/test/semantics/symbol09.f90

  Log Message:
  -----------
  [flang] Update a test

Original-commit: flang-compiler/f18 at 5f32183eed19560a57a68ae9fd0eec72d18c7a40
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: 294cae1bcd297970a5e9d0d1c8667bc4ff048e6c
      https://github.com/llvm/llvm-project/commit/294cae1bcd297970a5e9d0d1c8667bc4ff048e6c
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/runtime/CMakeLists.txt
    M flang/runtime/main.cc
    M flang/runtime/main.h

  Log Message:
  -----------
  [flang] Fix unrelated build error found in testing

Original-commit: flang-compiler/f18 at 5a00d77827feda979f2b11a33a22b7c7b05e824a
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: a3f4eedea750c3d7b322f47306ad4960e9b4a2be
      https://github.com/llvm/llvm-project/commit/a3f4eedea750c3d7b322f47306ad4960e9b4a2be
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h

  Log Message:
  -----------
  [flang] Better fix; clean up redundant utilities

Original-commit: flang-compiler/f18 at 531db4932155f53f14805b8a6617e31803ab6435
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: 210992e5268d54fa7cbdb1ca61472e7c414289a4
      https://github.com/llvm/llvm-project/commit/210992e5268d54fa7cbdb1ca61472e7c414289a4
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc
    M flang/test/semantics/block-data01.f90

  Log Message:
  -----------
  [flang] Better EQUIVALENCE handling

Original-commit: flang-compiler/f18 at 7c55097e81c9ab76953c1c652128bc9b969e6a33
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false


  Commit: 68f021b8ac2ba64e68c816fb9d6fc56fac389414
      https://github.com/llvm/llvm-project/commit/68f021b8ac2ba64e68c816fb9d6fc56fac389414
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M flang/lib/semantics/check-declarations.cc

  Log Message:
  -----------
  [flang] Comments

Original-commit: flang-compiler/f18 at 0c12188e8437abf820381fea787c625eda7e2d1f
Reviewed-on: https://github.com/flang-compiler/f18/pull/926


  Commit: 2236f2bb7e4a853c78291d90da6fae5a1e3c5936
      https://github.com/llvm/llvm-project/commit/2236f2bb7e4a853c78291d90da6fae5a1e3c5936
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#926 from flang-compiler/pmk-bd

BLOCK DATA semantics

Original-commit: flang-compiler/f18 at 4954b95527a48d5242731c91a7181a001bf64283
Reviewed-on: https://github.com/flang-compiler/f18/pull/926


  Commit: c3df14c30a2f04f17985dd1861d5e689340e00c2
      https://github.com/llvm/llvm-project/commit/c3df14c30a2f04f17985dd1861d5e689340e00c2
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:
    M flang/lib/common/Fortran.h
    M flang/lib/evaluate/common.h
    M flang/lib/evaluate/fold-integer.cc
    M flang/lib/evaluate/fold-real.cc
    M flang/lib/evaluate/host.cc
    M flang/lib/evaluate/real.cc
    M flang/lib/evaluate/real.h
    M flang/lib/evaluate/rounding-bits.h
    M flang/runtime/CMakeLists.txt
    A flang/runtime/format.cc
    A flang/runtime/format.h
    M flang/runtime/stop.cc
    M flang/test/CMakeLists.txt
    M flang/test/evaluate/fp-testing.cc
    M flang/test/evaluate/fp-testing.h
    A flang/test/runtime/CMakeLists.txt
    A flang/test/runtime/format.cc

  Log Message:
  -----------
  [flang] begin processing format strings

Move RoundingMode to Fortran.h

Always skip blanks outside character literals & Hollerith

Templatize

optimize repeat counts somewhat

Fix license punctuation, remove patch

Original-commit: flang-compiler/f18 at 4a0d39b0398974ade4367a5a96e11a90e853c18c
Reviewed-on: https://github.com/flang-compiler/f18/pull/927


  Commit: f4e8eb5d4137bc434af5141e6981ad5c1a44609c
      https://github.com/llvm/llvm-project/commit/f4e8eb5d4137bc434af5141e6981ad5c1a44609c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#927 from flang-compiler/pmk-format

Runtime FORMAT scanning

Original-commit: flang-compiler/f18 at 538d4a1dea9d2301fe36b13d1b248fde5c010f83
Reviewed-on: https://github.com/flang-compiler/f18/pull/927


  Commit: 628a35907168e3c70c2835322b3a919b902f3850
      https://github.com/llvm/llvm-project/commit/628a35907168e3c70c2835322b3a919b902f3850
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/tools.cc
    M flang/lib/semantics/pointer-assignment.cc
    M flang/test/semantics/assign02.f90

  Log Message:
  -----------
  [flang] Fix checking of pointer target with association

When checking if the target of a pointer assignment is valid, we
weren't following associations. E.g. we complained about the assignment
below if `b` had the TARGET attribute but `c` did not:
```
associate(a => b%c)
  p => a
end associate
```

The fix is to change `GetSymbolVector()` to follow associations in
creating the chain of symbols from a designator.

Add tests for this, and also some other cases where TARGET is on the
derived type variable rather than the component (which worked but didn't
have tests).

Original-commit: flang-compiler/f18 at c81c6baedd41d6ca2d36c81ca745a144c02be369
Reviewed-on: https://github.com/flang-compiler/f18/pull/937


  Commit: 2b5eb76cd21ced510f029d02c3fc662b6ed63780
      https://github.com/llvm/llvm-project/commit/2b5eb76cd21ced510f029d02c3fc662b6ed63780
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#937 from flang-compiler/tsk-pointer

Fix checking of pointer target with association

Original-commit: flang-compiler/f18 at 6b3dc6d5ece54c2d051bec5bf01c0c7c8532819f
Reviewed-on: https://github.com/flang-compiler/f18/pull/937


  Commit: ee60c9a5538462772e774697e7a90d77c07fbdba
      https://github.com/llvm/llvm-project/commit/ee60c9a5538462772e774697e7a90d77c07fbdba
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/characteristics.h
    M flang/lib/semantics/pointer-assignment.cc

  Log Message:
  -----------
  [flang] Fix shape analysis of RHS designators of pointer assignments

Original-commit: flang-compiler/f18 at bf26a36ef4255188b294a73bdc138dfba52cf5d3
Reviewed-on: https://github.com/flang-compiler/f18/pull/938


  Commit: 8fdcd7f430d2ff12c38ccc34052394786e7305f3
      https://github.com/llvm/llvm-project/commit/8fdcd7f430d2ff12c38ccc34052394786e7305f3
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#938 from flang-compiler/pmk-fix-rank

Fix shape analysis of RHS designators of pointer assignments

Original-commit: flang-compiler/f18 at 0423347d69e4422e080a59dfec00c850bf1ddcc2
Reviewed-on: https://github.com/flang-compiler/f18/pull/938


  Commit: fa10045bd757a607d0a10a6ecb3401b70f7f7a95
      https://github.com/llvm/llvm-project/commit/fa10045bd757a607d0a10a6ecb3401b70f7f7a95
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:
    A flang/documentation/PullRequestChecklist.md

  Log Message:
  -----------
  [flang] Checklist to precede pull requests

I added a checklist to the C++ Style document for things to check before
submitting a pull request or when responding to a request for comments
on a pull request.

Original-commit: flang-compiler/f18 at 903420268a5aabbab9acdf8788b4344c395ee597
Reviewed-on: https://github.com/flang-compiler/f18/pull/936


  Commit: 44e14338558413c105b25d475ff2836ae08d3af1
      https://github.com/llvm/llvm-project/commit/44e14338558413c105b25d475ff2836ae08d3af1
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#936 from flang-compiler/ps-checklist

Checklist to precede pull requests

Original-commit: flang-compiler/f18 at b1e67c4a40d8cdd0a8f7429ad1780e25798e0136
Reviewed-on: https://github.com/flang-compiler/f18/pull/936


  Commit: 8ad8bfb2a8abf914e4b0a0dd1c4f46b00c8f98a2
      https://github.com/llvm/llvm-project/commit/8ad8bfb2a8abf914e4b0a0dd1c4f46b00c8f98a2
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/characteristics.cc
    M flang/lib/evaluate/expression.h
    M flang/lib/evaluate/fold-implementation.h
    M flang/lib/evaluate/formatting.cc
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/symbol.cc
    M flang/lib/semantics/type.cc
    M flang/test/evaluate/expression.cc

  Log Message:
  -----------
  [flang] Add `std::string ExpressionBase::AsFortran()`

This is easier to use when including an expression in an error message
and also useful when debugging for dumping expressions.

Fix up several places that no longer need to use a temporary
std::stringstream.

Also change some references to `operator<<` in `formatting.cc` and
`symbol.cc` that became ambiguous with this change.

Original-commit: flang-compiler/f18 at 25dc49b6e9cf5bce61d6d655ab242609cbd28e13
Reviewed-on: https://github.com/flang-compiler/f18/pull/944
Tree-same-pre-rewrite: false


  Commit: 0ac2761f2c9ec1ce189ef9c4849a5edbac235b8a
      https://github.com/llvm/llvm-project/commit/0ac2761f2c9ec1ce189ef9c4849a5edbac235b8a
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/expression.h
    M flang/lib/semantics/expression.cc
    M flang/lib/semantics/tools.cc
    M flang/lib/semantics/tools.h
    M flang/tools/f18/f18.cc

  Log Message:
  -----------
  [flang] Make GenericAssignmentWrapper more like GenericExprWrapper

Have it wrap an optional Assignment so that we can distinguish between
unanalyzed and analyzed with error.

Change analysis of PointerAssignmentStmt to proceed with bounds even
if the DataRef or Expr has an error. Otherwise any bounds expressions
won't be analyzed in that case.

In GetExpr() and GetAssignment() if we get an internal error due to an
unanalyzed expression, dump the parse tree for the expression so we have
some context for the error. They should only be called after the
expression analysis phase. At that point, every expression and assignment
should be analyzed, though some may have resulted in errors(indicated by
returning `nullptr`).

Original-commit: flang-compiler/f18 at 3b865d7703f53099cd491ed1aa9b80b46fee9f58
Reviewed-on: https://github.com/flang-compiler/f18/pull/944
Tree-same-pre-rewrite: false


  Commit: d4a1bd7c9a2d382c0a4ea7ea3cd95707c5db1aba
      https://github.com/llvm/llvm-project/commit/d4a1bd7c9a2d382c0a4ea7ea3cd95707c5db1aba
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/pointer-assignment.cc

  Log Message:
  -----------
  [flang] Refactor Analyze(PointerAssignmentStmt)

Use early returns to reduce the indentation.
Check LHS is a pointer as early as possible.
A PointerAssignmentStmt can only have a typedAssignment that
represents a PointerAssignment. So assert that is the case and
don't worry about the other cases.

Original-commit: flang-compiler/f18 at bdf3d3a292b5f9ce4241e3d63b759bd61838cf18
Reviewed-on: https://github.com/flang-compiler/f18/pull/944
Tree-same-pre-rewrite: false


  Commit: d1337ba3ee023273525019c1cfdd587c6f90f8bd
      https://github.com/llvm/llvm-project/commit/d1337ba3ee023273525019c1cfdd587c6f90f8bd
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/pointer-assignment.cc
    M flang/lib/semantics/pointer-assignment.h
    M flang/test/semantics/assign02.f90
    M flang/test/semantics/assign03.f90

  Log Message:
  -----------
  [flang] Check bounds on pointer assignment

Perform checks on bounds-spec and bounds-remapping in a pointer
assignment statement:
- check that the rank of the bounds specified matches the rank of the
  pointer
- for bounds-spec, check that the pointer rank matches the target rank
- for bounds-remapping:
  - check that the target is rank 1 or simply contiguous
  - check that there are sufficient elements on the RHS for the bounds
    specified, when it can be determined at compile time

Move more of the pointer-specific checking from `assignment.cc`
to `pointer-assignment.cc`.

Original-commit: flang-compiler/f18 at 7489b3539224f8ad7a55873916e5854510236218
Reviewed-on: https://github.com/flang-compiler/f18/pull/944


  Commit: 6149ff9bc95259a4cf8a05882186736365c81182
      https://github.com/llvm/llvm-project/commit/6149ff9bc95259a4cf8a05882186736365c81182
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#944 from flang-compiler/tsk-pointer

Check bounds on pointer assignment

Original-commit: flang-compiler/f18 at 5e331c1a5cdbfa80c4ef736e95dc0a88b34c6d01
Reviewed-on: https://github.com/flang-compiler/f18/pull/944


  Commit: 491122d1cd52dc0870b04d0cc0e05dffec194958
      https://github.com/llvm/llvm-project/commit/491122d1cd52dc0870b04d0cc0e05dffec194958
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M flang/include/flang/ISO_Fortran_binding.h
    M flang/runtime/CMakeLists.txt
    M flang/runtime/entry-names.h
    M flang/runtime/format.cc
    M flang/runtime/format.h
    A flang/runtime/io-api.cc
    M flang/runtime/io-api.h
    A flang/runtime/io-error.cc
    A flang/runtime/io-error.h
    A flang/runtime/io-stmt.cc
    A flang/runtime/io-stmt.h
    M flang/runtime/magic-numbers.h
    M flang/runtime/main.cc
    M flang/runtime/main.h
    A flang/runtime/memory.cc
    A flang/runtime/memory.h
    M flang/runtime/terminator.cc
    M flang/runtime/terminator.h
    M flang/runtime/transformational.cc
    M flang/test/runtime/CMakeLists.txt
    M flang/test/runtime/format.cc
    A flang/test/runtime/hello.cc

  Log Message:
  -----------
  [flang] Drill down to a working implementation of the APIs for an
internal formatted WRITE with no data list items.

Improve argument names in io-api.h

Bump up error number to not conflict with errno values

Use Fortran::runtime::io namespace

Add wrapper around malloc/free, allow use of unique_ptr with wrapper

IoErrorHandler

Revamp FormatContext, use virtual member functions

Update comment syntax, allow for old C

12HHELLO, WORLD

Remove files not yet ready for review

Use std::forward

Fix gcc build warnings

Fix redundant filename in license boilerplate

Reduce runtime dependence on compiler binary libraries, fixing shared lib builds

Original-commit: flang-compiler/f18 at 839a91f1d699cd839767407bcdb1e384f2d2b730
Reviewed-on: https://github.com/flang-compiler/f18/pull/946


  Commit: 7f98a070b09a2ec82e5b019013a9c5bbe69041d2
      https://github.com/llvm/llvm-project/commit/7f98a070b09a2ec82e5b019013a9c5bbe69041d2
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#946 from flang-compiler/pmk-hello

12HHELLO, WORLD

Original-commit: flang-compiler/f18 at 3087aa82840b817cb7433c48cc2310accf9dc9b6
Reviewed-on: https://github.com/flang-compiler/f18/pull/946


  Commit: fae12a08bdb72b23781e670308bdd866099d14c8
      https://github.com/llvm/llvm-project/commit/fae12a08bdb72b23781e670308bdd866099d14c8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:
    M flang/runtime/CMakeLists.txt
    A flang/runtime/file.cc
    A flang/runtime/file.h
    M flang/runtime/io-api.h
    M flang/runtime/io-error.cc
    M flang/runtime/io-error.h
    A flang/runtime/lock.h
    M flang/runtime/memory.h
    A flang/runtime/tools.cc
    A flang/runtime/tools.h

  Log Message:
  -----------
  [flang] Basic file operation wrapper

Asynchronous interfaces and locking

Original-commit: flang-compiler/f18 at 3ba77a0c2035644485737a025cc8912485b56225
Reviewed-on: https://github.com/flang-compiler/f18/pull/949


  Commit: 2dfeffa696e3e23f451268b16d7afc7219eafd70
      https://github.com/llvm/llvm-project/commit/2dfeffa696e3e23f451268b16d7afc7219eafd70
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#949 from flang-compiler/pmk-file

OpenFile class: API and implementation wrappers for open external files

Original-commit: flang-compiler/f18 at edd60ae8281ab21588355c4f93680b6152219cd0
Reviewed-on: https://github.com/flang-compiler/f18/pull/949


  Commit: 56634417e7b2897f581bf30bcd30755683cc9e82
      https://github.com/llvm/llvm-project/commit/56634417e7b2897f581bf30bcd30755683cc9e82
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/check-expression.cc
    M flang/test/semantics/assign03.f90

  Log Message:
  -----------
  [flang] Fix bug detecting simply contiguous component

We were always return false when testing a component for simple
contiguity. Change to check that the component is an array that is
simply continguous. Also treat a scalar component of scalar as simply
contiguous.

A pointer with bounds remapping to a complex part is a similar case
so add a test for that too.

Original-commit: flang-compiler/f18 at 27d76da2a44614b2c4cf4d576410372cabf66577
Reviewed-on: https://github.com/flang-compiler/f18/pull/952


  Commit: 60e47323158515d1b6c7ef6c2d657f4dd1a0364e
      https://github.com/llvm/llvm-project/commit/60e47323158515d1b6c7ef6c2d657f4dd1a0364e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#952 from flang-compiler/tsk-contig

Fix bug detecting simply contiguous component

Original-commit: flang-compiler/f18 at a8a7a8c914aecbfdaff95419eb0408aa979abe53
Reviewed-on: https://github.com/flang-compiler/f18/pull/952


  Commit: ea5b1efd8fcbf9fa3b0f5cd872ae89d227275eac
      https://github.com/llvm/llvm-project/commit/ea5b1efd8fcbf9fa3b0f5cd872ae89d227275eac
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-25 (Sat, 25 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/tools.cc
    M flang/lib/evaluate/traverse.h
    M flang/test/semantics/call11.f90

  Log Message:
  -----------
  [flang] Fix bugs detecting impure calls

Change Traverse to visit the actual arguments of structure constructors.

Change FindImpureCallHelper to visit the actual arguments of a call to a
pure procedure in case one of them makes a call to an impure function.

Original-commit: flang-compiler/f18 at 81a5488ee62b4324d002c348464712c930095a32
Reviewed-on: https://github.com/flang-compiler/f18/pull/951


  Commit: 0c880e461cf3080fe40a2905636ec1e5ec87fda1
      https://github.com/llvm/llvm-project/commit/0c880e461cf3080fe40a2905636ec1e5ec87fda1
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#951 from flang-compiler/tsk-impure

Fix bugs detecting impure calls

Original-commit: flang-compiler/f18 at db5ebec5156f3f93fb99358192307298c99fc3c4
Reviewed-on: https://github.com/flang-compiler/f18/pull/951


  Commit: 65b62f9bde66b3ed493fc12cb428d5467cb1b55a
      https://github.com/llvm/llvm-project/commit/65b62f9bde66b3ed493fc12cb428d5467cb1b55a
  Author: David Truby <david.truby at arm.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:
    M flang/.clang-format
    A flang/include/flang/common/Fortran-features.h
    A flang/include/flang/common/Fortran.h
    A flang/include/flang/common/bit-population-count.h
    A flang/include/flang/common/constexpr-bitset.h
    A flang/include/flang/common/default-kinds.h
    A flang/include/flang/common/enum-set.h
    A flang/include/flang/common/format.h
    A flang/include/flang/common/idioms.h
    A flang/include/flang/common/indirection.h
    A flang/include/flang/common/interval.h
    A flang/include/flang/common/leading-zero-bit-count.h
    A flang/include/flang/common/reference-counted.h
    A flang/include/flang/common/reference.h
    A flang/include/flang/common/restorer.h
    A flang/include/flang/common/template.h
    A flang/include/flang/common/uint128.h
    A flang/include/flang/common/unsigned-const-division.h
    A flang/include/flang/common/unwrap.h
    A flang/include/flang/decimal/binary-floating-point.h
    A flang/include/flang/decimal/decimal.h
    A flang/include/flang/evaluate/call.h
    A flang/include/flang/evaluate/characteristics.h
    A flang/include/flang/evaluate/check-expression.h
    A flang/include/flang/evaluate/common.h
    A flang/include/flang/evaluate/complex.h
    A flang/include/flang/evaluate/constant.h
    A flang/include/flang/evaluate/expression.h
    A flang/include/flang/evaluate/fold.h
    A flang/include/flang/evaluate/formatting.h
    A flang/include/flang/evaluate/integer.h
    A flang/include/flang/evaluate/intrinsics-library.h
    A flang/include/flang/evaluate/intrinsics.h
    A flang/include/flang/evaluate/logical.h
    A flang/include/flang/evaluate/real.h
    A flang/include/flang/evaluate/rounding-bits.h
    A flang/include/flang/evaluate/shape.h
    A flang/include/flang/evaluate/static-data.h
    A flang/include/flang/evaluate/tools.h
    A flang/include/flang/evaluate/traverse.h
    A flang/include/flang/evaluate/type.h
    A flang/include/flang/evaluate/variable.h
    A flang/include/flang/parser/char-block.h
    A flang/include/flang/parser/char-buffer.h
    A flang/include/flang/parser/char-set.h
    A flang/include/flang/parser/characters.h
    A flang/include/flang/parser/dump-parse-tree.h
    A flang/include/flang/parser/format-specification.h
    A flang/include/flang/parser/instrumented-parser.h
    A flang/include/flang/parser/message.h
    A flang/include/flang/parser/parse-state.h
    A flang/include/flang/parser/parse-tree-visitor.h
    A flang/include/flang/parser/parse-tree.h
    A flang/include/flang/parser/parsing.h
    A flang/include/flang/parser/provenance.h
    A flang/include/flang/parser/source.h
    A flang/include/flang/parser/tools.h
    A flang/include/flang/parser/unparse.h
    A flang/include/flang/parser/user-state.h
    A flang/include/flang/semantics/attr.h
    A flang/include/flang/semantics/expression.h
    A flang/include/flang/semantics/scope.h
    A flang/include/flang/semantics/semantics.h
    A flang/include/flang/semantics/symbol.h
    A flang/include/flang/semantics/tools.h
    A flang/include/flang/semantics/type.h
    A flang/include/flang/semantics/unparse-with-symbols.h
    M flang/lib/common/Fortran-features.cc
    R flang/lib/common/Fortran-features.h
    M flang/lib/common/Fortran.cc
    R flang/lib/common/Fortran.h
    R flang/lib/common/bit-population-count.h
    R flang/lib/common/constexpr-bitset.h
    M flang/lib/common/default-kinds.cc
    R flang/lib/common/default-kinds.h
    R flang/lib/common/enum-set.h
    R flang/lib/common/format.h
    M flang/lib/common/idioms.cc
    R flang/lib/common/idioms.h
    R flang/lib/common/indirection.h
    R flang/lib/common/interval.h
    R flang/lib/common/leading-zero-bit-count.h
    R flang/lib/common/reference-counted.h
    R flang/lib/common/reference.h
    R flang/lib/common/restorer.h
    R flang/lib/common/template.h
    R flang/lib/common/uint128.h
    R flang/lib/common/unsigned-const-division.h
    R flang/lib/common/unwrap.h
    M flang/lib/decimal/big-radix-floating-point.h
    R flang/lib/decimal/binary-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cc
    M flang/lib/decimal/decimal-to-binary.cc
    R flang/lib/decimal/decimal.h
    M flang/lib/evaluate/call.cc
    R flang/lib/evaluate/call.h
    M flang/lib/evaluate/character.h
    M flang/lib/evaluate/characteristics.cc
    R flang/lib/evaluate/characteristics.h
    M flang/lib/evaluate/check-expression.cc
    R flang/lib/evaluate/check-expression.h
    M flang/lib/evaluate/common.cc
    R flang/lib/evaluate/common.h
    M flang/lib/evaluate/complex.cc
    R flang/lib/evaluate/complex.h
    M flang/lib/evaluate/constant.cc
    R flang/lib/evaluate/constant.h
    M flang/lib/evaluate/expression.cc
    R flang/lib/evaluate/expression.h
    M flang/lib/evaluate/fold-implementation.h
    M flang/lib/evaluate/fold-logical.cc
    M flang/lib/evaluate/fold.cc
    R flang/lib/evaluate/fold.h
    M flang/lib/evaluate/formatting.cc
    R flang/lib/evaluate/formatting.h
    M flang/lib/evaluate/host.cc
    M flang/lib/evaluate/host.h
    M flang/lib/evaluate/int-power.h
    M flang/lib/evaluate/integer.cc
    R flang/lib/evaluate/integer.h
    M flang/lib/evaluate/intrinsics-library-templates.h
    R flang/lib/evaluate/intrinsics-library.h
    M flang/lib/evaluate/intrinsics.cc
    R flang/lib/evaluate/intrinsics.h
    M flang/lib/evaluate/logical.cc
    R flang/lib/evaluate/logical.h
    M flang/lib/evaluate/real.cc
    R flang/lib/evaluate/real.h
    R flang/lib/evaluate/rounding-bits.h
    M flang/lib/evaluate/shape.cc
    R flang/lib/evaluate/shape.h
    M flang/lib/evaluate/static-data.cc
    R flang/lib/evaluate/static-data.h
    M flang/lib/evaluate/tools.cc
    R flang/lib/evaluate/tools.h
    R flang/lib/evaluate/traverse.h
    M flang/lib/evaluate/type.cc
    R flang/lib/evaluate/type.h
    M flang/lib/evaluate/variable.cc
    R flang/lib/evaluate/variable.h
    M flang/lib/parser/Fortran-parsers.cc
    M flang/lib/parser/basic-parsers.h
    M flang/lib/parser/char-block.cc
    R flang/lib/parser/char-block.h
    M flang/lib/parser/char-buffer.cc
    R flang/lib/parser/char-buffer.h
    M flang/lib/parser/char-set.cc
    R flang/lib/parser/char-set.h
    M flang/lib/parser/characters.cc
    R flang/lib/parser/characters.h
    M flang/lib/parser/debug-parser.cc
    M flang/lib/parser/debug-parser.h
    R flang/lib/parser/dump-parse-tree.h
    M flang/lib/parser/executable-parsers.cc
    M flang/lib/parser/expr-parsers.cc
    M flang/lib/parser/expr-parsers.h
    R flang/lib/parser/format-specification.h
    M flang/lib/parser/instrumented-parser.cc
    R flang/lib/parser/instrumented-parser.h
    M flang/lib/parser/io-parsers.cc
    M flang/lib/parser/message.cc
    R flang/lib/parser/message.h
    M flang/lib/parser/misc-parsers.h
    M flang/lib/parser/openmp-parsers.cc
    R flang/lib/parser/parse-state.h
    R flang/lib/parser/parse-tree-visitor.h
    M flang/lib/parser/parse-tree.cc
    R flang/lib/parser/parse-tree.h
    M flang/lib/parser/parsing.cc
    R flang/lib/parser/parsing.h
    M flang/lib/parser/preprocessor.cc
    M flang/lib/parser/preprocessor.h
    M flang/lib/parser/prescan.cc
    M flang/lib/parser/prescan.h
    M flang/lib/parser/program-parsers.cc
    M flang/lib/parser/provenance.cc
    R flang/lib/parser/provenance.h
    M flang/lib/parser/source.cc
    R flang/lib/parser/source.h
    M flang/lib/parser/token-parsers.h
    M flang/lib/parser/token-sequence.cc
    M flang/lib/parser/token-sequence.h
    M flang/lib/parser/tools.cc
    R flang/lib/parser/tools.h
    M flang/lib/parser/type-parsers.h
    M flang/lib/parser/unparse.cc
    R flang/lib/parser/unparse.h
    M flang/lib/parser/user-state.cc
    R flang/lib/parser/user-state.h
    M flang/lib/semantics/assignment.cc
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/attr.cc
    R flang/lib/semantics/attr.h
    M flang/lib/semantics/canonicalize-do.cc
    M flang/lib/semantics/canonicalize-omp.cc
    M flang/lib/semantics/check-allocate.cc
    M flang/lib/semantics/check-allocate.h
    M flang/lib/semantics/check-arithmeticif.cc
    M flang/lib/semantics/check-arithmeticif.h
    M flang/lib/semantics/check-call.cc
    M flang/lib/semantics/check-call.h
    M flang/lib/semantics/check-coarray.cc
    M flang/lib/semantics/check-coarray.h
    M flang/lib/semantics/check-deallocate.cc
    M flang/lib/semantics/check-deallocate.h
    M flang/lib/semantics/check-declarations.cc
    M flang/lib/semantics/check-do.cc
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/check-if-stmt.cc
    M flang/lib/semantics/check-if-stmt.h
    M flang/lib/semantics/check-io.cc
    M flang/lib/semantics/check-io.h
    M flang/lib/semantics/check-nullify.cc
    M flang/lib/semantics/check-nullify.h
    M flang/lib/semantics/check-omp-structure.cc
    M flang/lib/semantics/check-omp-structure.h
    M flang/lib/semantics/check-purity.cc
    M flang/lib/semantics/check-purity.h
    M flang/lib/semantics/check-return.cc
    M flang/lib/semantics/check-return.h
    M flang/lib/semantics/check-stop.cc
    M flang/lib/semantics/check-stop.h
    M flang/lib/semantics/expression.cc
    R flang/lib/semantics/expression.h
    M flang/lib/semantics/mod-file.cc
    M flang/lib/semantics/mod-file.h
    M flang/lib/semantics/pointer-assignment.cc
    M flang/lib/semantics/pointer-assignment.h
    M flang/lib/semantics/program-tree.cc
    M flang/lib/semantics/program-tree.h
    M flang/lib/semantics/resolve-labels.cc
    M flang/lib/semantics/resolve-names-utils.cc
    M flang/lib/semantics/resolve-names-utils.h
    M flang/lib/semantics/resolve-names.cc
    M flang/lib/semantics/rewrite-parse-tree.cc
    M flang/lib/semantics/scope.cc
    R flang/lib/semantics/scope.h
    M flang/lib/semantics/semantics.cc
    R flang/lib/semantics/semantics.h
    M flang/lib/semantics/symbol.cc
    R flang/lib/semantics/symbol.h
    M flang/lib/semantics/tools.cc
    R flang/lib/semantics/tools.h
    M flang/lib/semantics/type.cc
    R flang/lib/semantics/type.h
    M flang/lib/semantics/unparse-with-symbols.cc
    R flang/lib/semantics/unparse-with-symbols.h
    M flang/runtime/derived-type.h
    M flang/runtime/descriptor.cc
    M flang/runtime/descriptor.h
    M flang/runtime/format.cc
    M flang/runtime/format.h
    M flang/runtime/transformational.cc
    M flang/runtime/type-code.h
    M flang/test/decimal/quick-sanity-test.cc
    M flang/test/decimal/thorough-test.cc
    M flang/test/evaluate/bit-population-count.cc
    M flang/test/evaluate/expression.cc
    M flang/test/evaluate/folding.cc
    M flang/test/evaluate/fp-testing.h
    M flang/test/evaluate/integer.cc
    M flang/test/evaluate/intrinsics.cc
    M flang/test/evaluate/leading-zero-bit-count.cc
    M flang/test/evaluate/logical.cc
    M flang/test/evaluate/real.cc
    M flang/test/evaluate/uint128.cc
    M flang/tools/f18/f18-parse-demo.cc
    M flang/tools/f18/f18.cc
    M flang/tools/f18/stub-evaluate.cc

  Log Message:
  -----------
  [flang] Moved public headers to include/flang (flang-compiler/f18#943)

Original-commit: flang-compiler/f18 at 21adbc7e05b2454ba3fc725b4697748f98599471
Reviewed-on: https://github.com/flang-compiler/f18/pull/943


  Commit: 352d347aa5f5f1ba9b17aedd90daa5c110b8a50e
      https://github.com/llvm/llvm-project/commit/352d347aa5f5f1ba9b17aedd90daa5c110b8a50e
  Author: Alexis Perry <AlexisPerry at users.noreply.github.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:
    M flang/documentation/C++style.md
    M flang/documentation/PullRequestChecklist.md
    M flang/include/flang/evaluate/traverse.h
    M flang/lib/common/CMakeLists.txt
    R flang/lib/common/Fortran-features.cc
    A flang/lib/common/Fortran-features.cpp
    R flang/lib/common/Fortran.cc
    A flang/lib/common/Fortran.cpp
    R flang/lib/common/default-kinds.cc
    A flang/lib/common/default-kinds.cpp
    R flang/lib/common/idioms.cc
    A flang/lib/common/idioms.cpp
    M flang/lib/decimal/CMakeLists.txt
    R flang/lib/decimal/binary-to-decimal.cc
    A flang/lib/decimal/binary-to-decimal.cpp
    R flang/lib/decimal/decimal-to-binary.cc
    A flang/lib/decimal/decimal-to-binary.cpp
    M flang/lib/evaluate/CMakeLists.txt
    R flang/lib/evaluate/call.cc
    A flang/lib/evaluate/call.cpp
    R flang/lib/evaluate/characteristics.cc
    A flang/lib/evaluate/characteristics.cpp
    R flang/lib/evaluate/check-expression.cc
    A flang/lib/evaluate/check-expression.cpp
    R flang/lib/evaluate/common.cc
    A flang/lib/evaluate/common.cpp
    R flang/lib/evaluate/complex.cc
    A flang/lib/evaluate/complex.cpp
    R flang/lib/evaluate/constant.cc
    A flang/lib/evaluate/constant.cpp
    R flang/lib/evaluate/expression.cc
    A flang/lib/evaluate/expression.cpp
    R flang/lib/evaluate/fold-character.cc
    A flang/lib/evaluate/fold-character.cpp
    R flang/lib/evaluate/fold-complex.cc
    A flang/lib/evaluate/fold-complex.cpp
    R flang/lib/evaluate/fold-integer.cc
    A flang/lib/evaluate/fold-integer.cpp
    R flang/lib/evaluate/fold-logical.cc
    A flang/lib/evaluate/fold-logical.cpp
    R flang/lib/evaluate/fold-real.cc
    A flang/lib/evaluate/fold-real.cpp
    R flang/lib/evaluate/fold.cc
    A flang/lib/evaluate/fold.cpp
    R flang/lib/evaluate/formatting.cc
    A flang/lib/evaluate/formatting.cpp
    R flang/lib/evaluate/host.cc
    A flang/lib/evaluate/host.cpp
    R flang/lib/evaluate/integer.cc
    A flang/lib/evaluate/integer.cpp
    M flang/lib/evaluate/intrinsics-library-templates.h
    R flang/lib/evaluate/intrinsics-library.cc
    A flang/lib/evaluate/intrinsics-library.cpp
    R flang/lib/evaluate/intrinsics.cc
    A flang/lib/evaluate/intrinsics.cpp
    R flang/lib/evaluate/logical.cc
    A flang/lib/evaluate/logical.cpp
    R flang/lib/evaluate/real.cc
    A flang/lib/evaluate/real.cpp
    R flang/lib/evaluate/shape.cc
    A flang/lib/evaluate/shape.cpp
    R flang/lib/evaluate/static-data.cc
    A flang/lib/evaluate/static-data.cpp
    R flang/lib/evaluate/tools.cc
    A flang/lib/evaluate/tools.cpp
    R flang/lib/evaluate/type.cc
    A flang/lib/evaluate/type.cpp
    R flang/lib/evaluate/variable.cc
    A flang/lib/evaluate/variable.cpp
    M flang/lib/parser/CMakeLists.txt
    R flang/lib/parser/Fortran-parsers.cc
    A flang/lib/parser/Fortran-parsers.cpp
    R flang/lib/parser/char-block.cc
    A flang/lib/parser/char-block.cpp
    R flang/lib/parser/char-buffer.cc
    A flang/lib/parser/char-buffer.cpp
    R flang/lib/parser/char-set.cc
    A flang/lib/parser/char-set.cpp
    R flang/lib/parser/characters.cc
    A flang/lib/parser/characters.cpp
    R flang/lib/parser/debug-parser.cc
    A flang/lib/parser/debug-parser.cpp
    R flang/lib/parser/executable-parsers.cc
    A flang/lib/parser/executable-parsers.cpp
    R flang/lib/parser/expr-parsers.cc
    A flang/lib/parser/expr-parsers.cpp
    R flang/lib/parser/instrumented-parser.cc
    A flang/lib/parser/instrumented-parser.cpp
    R flang/lib/parser/io-parsers.cc
    A flang/lib/parser/io-parsers.cpp
    R flang/lib/parser/message.cc
    A flang/lib/parser/message.cpp
    R flang/lib/parser/openmp-parsers.cc
    A flang/lib/parser/openmp-parsers.cpp
    R flang/lib/parser/parse-tree.cc
    A flang/lib/parser/parse-tree.cpp
    R flang/lib/parser/parsing.cc
    A flang/lib/parser/parsing.cpp
    R flang/lib/parser/preprocessor.cc
    A flang/lib/parser/preprocessor.cpp
    R flang/lib/parser/prescan.cc
    A flang/lib/parser/prescan.cpp
    R flang/lib/parser/program-parsers.cc
    A flang/lib/parser/program-parsers.cpp
    R flang/lib/parser/provenance.cc
    A flang/lib/parser/provenance.cpp
    R flang/lib/parser/source.cc
    A flang/lib/parser/source.cpp
    R flang/lib/parser/token-sequence.cc
    A flang/lib/parser/token-sequence.cpp
    R flang/lib/parser/tools.cc
    A flang/lib/parser/tools.cpp
    R flang/lib/parser/unparse.cc
    A flang/lib/parser/unparse.cpp
    R flang/lib/parser/user-state.cc
    A flang/lib/parser/user-state.cpp
    M flang/lib/semantics/CMakeLists.txt
    R flang/lib/semantics/assignment.cc
    A flang/lib/semantics/assignment.cpp
    R flang/lib/semantics/attr.cc
    A flang/lib/semantics/attr.cpp
    R flang/lib/semantics/canonicalize-do.cc
    A flang/lib/semantics/canonicalize-do.cpp
    R flang/lib/semantics/canonicalize-omp.cc
    A flang/lib/semantics/canonicalize-omp.cpp
    R flang/lib/semantics/check-allocate.cc
    A flang/lib/semantics/check-allocate.cpp
    R flang/lib/semantics/check-arithmeticif.cc
    A flang/lib/semantics/check-arithmeticif.cpp
    R flang/lib/semantics/check-call.cc
    A flang/lib/semantics/check-call.cpp
    R flang/lib/semantics/check-coarray.cc
    A flang/lib/semantics/check-coarray.cpp
    R flang/lib/semantics/check-deallocate.cc
    A flang/lib/semantics/check-deallocate.cpp
    R flang/lib/semantics/check-declarations.cc
    A flang/lib/semantics/check-declarations.cpp
    R flang/lib/semantics/check-do.cc
    A flang/lib/semantics/check-do.cpp
    R flang/lib/semantics/check-if-stmt.cc
    A flang/lib/semantics/check-if-stmt.cpp
    R flang/lib/semantics/check-io.cc
    A flang/lib/semantics/check-io.cpp
    R flang/lib/semantics/check-nullify.cc
    A flang/lib/semantics/check-nullify.cpp
    R flang/lib/semantics/check-omp-structure.cc
    A flang/lib/semantics/check-omp-structure.cpp
    R flang/lib/semantics/check-purity.cc
    A flang/lib/semantics/check-purity.cpp
    R flang/lib/semantics/check-return.cc
    A flang/lib/semantics/check-return.cpp
    R flang/lib/semantics/check-stop.cc
    A flang/lib/semantics/check-stop.cpp
    R flang/lib/semantics/expression.cc
    A flang/lib/semantics/expression.cpp
    R flang/lib/semantics/mod-file.cc
    A flang/lib/semantics/mod-file.cpp
    R flang/lib/semantics/pointer-assignment.cc
    A flang/lib/semantics/pointer-assignment.cpp
    R flang/lib/semantics/program-tree.cc
    A flang/lib/semantics/program-tree.cpp
    R flang/lib/semantics/resolve-labels.cc
    A flang/lib/semantics/resolve-labels.cpp
    R flang/lib/semantics/resolve-names-utils.cc
    A flang/lib/semantics/resolve-names-utils.cpp
    M flang/lib/semantics/resolve-names-utils.h
    R flang/lib/semantics/resolve-names.cc
    A flang/lib/semantics/resolve-names.cpp
    R flang/lib/semantics/rewrite-parse-tree.cc
    A flang/lib/semantics/rewrite-parse-tree.cpp
    R flang/lib/semantics/scope.cc
    A flang/lib/semantics/scope.cpp
    R flang/lib/semantics/semantics.cc
    A flang/lib/semantics/semantics.cpp
    R flang/lib/semantics/symbol.cc
    A flang/lib/semantics/symbol.cpp
    R flang/lib/semantics/tools.cc
    A flang/lib/semantics/tools.cpp
    R flang/lib/semantics/type.cc
    A flang/lib/semantics/type.cpp
    R flang/lib/semantics/unparse-with-symbols.cc
    A flang/lib/semantics/unparse-with-symbols.cpp
    M flang/runtime/CMakeLists.txt
    R flang/runtime/ISO_Fortran_binding.cc
    A flang/runtime/ISO_Fortran_binding.cpp
    R flang/runtime/derived-type.cc
    A flang/runtime/derived-type.cpp
    R flang/runtime/descriptor.cc
    A flang/runtime/descriptor.cpp
    R flang/runtime/file.cc
    A flang/runtime/file.cpp
    R flang/runtime/format.cc
    A flang/runtime/format.cpp
    R flang/runtime/io-api.cc
    A flang/runtime/io-api.cpp
    R flang/runtime/io-error.cc
    A flang/runtime/io-error.cpp
    R flang/runtime/io-stmt.cc
    A flang/runtime/io-stmt.cpp
    R flang/runtime/main.cc
    A flang/runtime/main.cpp
    R flang/runtime/memory.cc
    A flang/runtime/memory.cpp
    R flang/runtime/stop.cc
    A flang/runtime/stop.cpp
    R flang/runtime/terminator.cc
    A flang/runtime/terminator.cpp
    R flang/runtime/tools.cc
    A flang/runtime/tools.cpp
    R flang/runtime/transformational.cc
    A flang/runtime/transformational.cpp
    R flang/runtime/type-code.cc
    A flang/runtime/type-code.cpp
    M flang/test/decimal/CMakeLists.txt
    R flang/test/decimal/quick-sanity-test.cc
    A flang/test/decimal/quick-sanity-test.cpp
    R flang/test/decimal/thorough-test.cc
    A flang/test/decimal/thorough-test.cpp
    M flang/test/evaluate/CMakeLists.txt
    R flang/test/evaluate/ISO-Fortran-binding.cc
    A flang/test/evaluate/ISO-Fortran-binding.cpp
    R flang/test/evaluate/bit-population-count.cc
    A flang/test/evaluate/bit-population-count.cpp
    R flang/test/evaluate/expression.cc
    A flang/test/evaluate/expression.cpp
    R flang/test/evaluate/folding.cc
    A flang/test/evaluate/folding.cpp
    R flang/test/evaluate/fp-testing.cc
    A flang/test/evaluate/fp-testing.cpp
    R flang/test/evaluate/integer.cc
    A flang/test/evaluate/integer.cpp
    R flang/test/evaluate/intrinsics.cc
    A flang/test/evaluate/intrinsics.cpp
    R flang/test/evaluate/leading-zero-bit-count.cc
    A flang/test/evaluate/leading-zero-bit-count.cpp
    R flang/test/evaluate/logical.cc
    A flang/test/evaluate/logical.cpp
    R flang/test/evaluate/real.cc
    A flang/test/evaluate/real.cpp
    R flang/test/evaluate/reshape.cc
    A flang/test/evaluate/reshape.cpp
    R flang/test/evaluate/testing.cc
    A flang/test/evaluate/testing.cpp
    R flang/test/evaluate/uint128.cc
    A flang/test/evaluate/uint128.cpp
    M flang/test/runtime/CMakeLists.txt
    R flang/test/runtime/format.cc
    A flang/test/runtime/format.cpp
    R flang/test/runtime/hello.cc
    A flang/test/runtime/hello.cpp
    M flang/tools/f18/CMakeLists.txt
    R flang/tools/f18/dump.cc
    A flang/tools/f18/dump.cpp
    R flang/tools/f18/f18-parse-demo.cc
    A flang/tools/f18/f18-parse-demo.cpp
    R flang/tools/f18/f18.cc
    A flang/tools/f18/f18.cpp
    R flang/tools/f18/stub-evaluate.cc
    A flang/tools/f18/stub-evaluate.cpp

  Log Message:
  -----------
  [flang] Changed *.cc file extension to *.cpp (updated scripts) (flang-compiler/f18#958)

Updated CMake files accordingly, using better regex
Updated license headers to match new extension and fit within 80 columns
Updated other comments within files that referred to the old extension

Original-commit: flang-compiler/f18 at ae7721e611918631d1e3821dbb60f5ffcd9a69b1
Reviewed-on: https://github.com/flang-compiler/f18/pull/958


  Commit: 78807b988098e41f5f64f0b84d9e631aa24d84c6
      https://github.com/llvm/llvm-project/commit/78807b988098e41f5f64f0b84d9e631aa24d84c6
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M flang/documentation/PullRequestChecklist.md

  Log Message:
  -----------
  [flang] More checklist items

I added more items when reviewing some actual pull request comments.

Original-commit: flang-compiler/f18 at 195d807ff221e4247ec5609e8e816e81dab5df94
Reviewed-on: https://github.com/flang-compiler/f18/pull/956


  Commit: b93d62e977d981783c1bd8d7473ed56b5b63319c
      https://github.com/llvm/llvm-project/commit/b93d62e977d981783c1bd8d7473ed56b5b63319c
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-01-27 (Mon, 27 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#956 from flang-compiler/ps-checklist

More checklist items

Original-commit: flang-compiler/f18 at 32eb0d79c3a334d15ed1dc351619be9fda6b2a9f
Reviewed-on: https://github.com/flang-compiler/f18/pull/956


  Commit: 64b7325a2ed6491edc57a998cbd12c0785319f7a
      https://github.com/llvm/llvm-project/commit/64b7325a2ed6491edc57a998cbd12c0785319f7a
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2020-01-28 (Tue, 28 Jan 2020)

  Changed paths:
    M flang/include/flang/parser/parse-tree.h
    M flang/include/flang/semantics/symbol.h
    M flang/lib/parser/openmp-parsers.cpp
    M flang/lib/semantics/resolve-names.cpp
    M flang/lib/semantics/scope.cpp
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/omp-device-constructs.f90
    A flang/test/semantics/omp-resolve05.f90
    A flang/test/semantics/omp-symbol07.f90

  Log Message:
  -----------
  [flang] [OpenMP] Name Resolution for OpenMP constructs (flang-compiler/f18#940)

This is an extended framework based on the previous work that addresses
the NR on OpenMP directives/clauses (b2ea520). In this change:
  * New `OmpVisitor` is created (ResolveNamesVisitor derives from it) to
    create necessary scopes for certain OpenMP constructs. This is along
    with the regular Fortran NR process.
  * Old `OmpVisitor` is adjusted and converted to a standalone visitor--
    `OmpAttributeVisitor`. This is used to walk through the OpenMP constructs
    and do the NR for variables on the OpenMP directives or data references
    within the OpenMP constructs. "Do the NR" here means that based on the NR
    results of the regular Fortran NR, fix the symbols of `Names` related
    to the OpenMP constructs. Note that there is an `OmpContext` in this
    visitor (similar to the one in `OmpStructureChecker`), this is necessary
    when dealing with the nested OpenMP constructs in the future.

Given an OpenMP code:
```
real*8 a, b
  a = 1.
  b = 2.
  !$omp parallel private(a)
  a = 3.
  b = 4.
  !$omp end parallel
  print *, a, b
end
```

w/o -fopenmp:
```
real*8 a, b
 !REF: /MainProgram1/a
 a = 1.
 !REF: /MainProgram1/b
 b = 2.
 !!!! OMP parallel
 !REF: /MainProgram1/a
 a = 3.
 !REF: /MainProgram1/b
 b = 4.
 !!!! OMP end parallel
 !REF: /MainProgram1/a
 !REF: /MainProgram1/b
 print *, a, b
end
```

w/ -fopenmp:
```
real*8 a, b
 !REF: /MainProgram1/a
 a = 1.
 !REF: /MainProgram1/b
 b = 2.
!$omp parallel  private(a)   <-- new Symbol for 'a' created
 !DEF: /MainProgram1/Block1/a (OmpPrivate) HostAssoc REAL(8)
 a = 3.   <-- fix the old symbol with new Symbol in parallel scope
 !REF: /MainProgram1/b
 b = 4.   <-- do nothing because by default it is shared in this scope
!$omp end parallel
 !REF: /MainProgram1/a
 !REF: /MainProgram1/b
 print *, a, b
end
```

Please note that this is a framework update, there are still many
things on the TODO list for finishing the NR for OpenMP (based on
the `OpenMP-semantics.md` design doc), which will be on top of this
framework.

Some TODO items:
- Create a generic function to go through all the rules for deciding
  `predetermined`, `explicitly determined`, and `implicitly determined`
  data-sharing attributes. (This is the next biggest part)
- Handle `Array Sections` and `Array or Structure Element`.
- Take association into consideration for example Pointer association,
  `ASSOCIATE` construct, and etc.
- Handle all the name resolution for directives/clauses that have
  `parser::Name`.

* N.B. Extend `AddSourceRange` to apply to current and parent scopes
  - motivated by a few cases that need to call `AddSourceRange`
    for current & parent scopes; the extension should be safe
  - global scope is not included

Original-commit: flang-compiler/f18 at 0c3c39d30e3f166a6a1303337c5fd7eead720fd0
Reviewed-on: https://github.com/flang-compiler/f18/pull/940


  Commit: d8f4d7fcd29433f17051f476bc59fd6213ae7ccc
      https://github.com/llvm/llvm-project/commit/d8f4d7fcd29433f17051f476bc59fd6213ae7ccc
  Author: Jinxin Yang <jinxiny at nvidia.com>
  Date:   2020-01-28 (Tue, 28 Jan 2020)

  Changed paths:
    M flang/lib/semantics/resolve-names.cpp

  Log Message:
  -----------
  [flang] Remove `default` case for OmpSectionsDirective (only two enum values)

Original-commit: flang-compiler/f18 at 3f37e0dbaf32f1127553be2149915cab1b93cdcf
Reviewed-on: https://github.com/flang-compiler/f18/pull/960


  Commit: 431b0aef135b87d7f26e536af910a4106b3beaca
      https://github.com/llvm/llvm-project/commit/431b0aef135b87d7f26e536af910a4106b3beaca
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2020-01-28 (Tue, 28 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#960 from flang-compiler/by-remove-default

Remove `default` case for OmpSectionsDirective (only two enum values)

Original-commit: flang-compiler/f18 at d98bf8494e2e017ed9a7e1d3c93688c379c01bf3
Reviewed-on: https://github.com/flang-compiler/f18/pull/960


  Commit: eaf2288857242f4502df2e3690a430accc0a2128
      https://github.com/llvm/llvm-project/commit/eaf2288857242f4502df2e3690a430accc0a2128
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:
    M flang/include/flang/semantics/tools.h
    M flang/lib/semantics/check-do.cpp
    M flang/lib/semantics/tools.cpp
    M flang/test/semantics/doconcurrent08.f90

  Log Message:
  -----------
  [flang] Semantic checks for deallocating entities with IMPURE FINAL procedures

You cannot call an IMPURE procedure in a DO CONCURRENT construct.  One
way that can happen is if an entity with an IMPURE FINAL procedure gets
deallocated.  Similar to the checks for deallocating coarrays, there are
three ways that an entity can get deallocated that are applicable to DO
CONCURRENT constructs -- an actual DEALLOCATE statement, block exit, and
assignment.

This change depends on the utility function `HasImpureFinal()` in tools.h to
determine if an entity has a derived type with an IMPURE FINAL
procedure.  In the course of testing this change, I realized that this
check is incorrect, but the code specific to DO CONCURRENT is
independent of the check, so I might as well implement it.

Original-commit: flang-compiler/f18 at d2294ff511aebd64889df57d02325bd6fcdf914a
Reviewed-on: https://github.com/flang-compiler/f18/pull/954


  Commit: 6d92012d23df7949ff6d80a920c9048c9dac874f
      https://github.com/llvm/llvm-project/commit/6d92012d23df7949ff6d80a920c9048c9dac874f
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#954 from flang-compiler/ps-impure-final

Semantic checks for deallocating entities with IMPURE FINAL procedures

Original-commit: flang-compiler/f18 at 61da1f9e5c59cedb02026954a73ab30d8319a66c
Reviewed-on: https://github.com/flang-compiler/f18/pull/954


  Commit: f1b61dbd5ebf9bb563a879c970ef2969461129df
      https://github.com/llvm/llvm-project/commit/f1b61dbd5ebf9bb563a879c970ef2969461129df
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:
    M flang/lib/evaluate/check-expression.cpp
    M flang/test/semantics/assign03.f90

  Log Message:
  -----------
  [flang] Fix another bug checking simple contiguity

The test still wasn't correct for structure components. If the last
part-ref is a non-array or a single array element, but the whole
ArrayRef has non-zero rank, it is not contiguous. Otherwise, if there
are subscripts on the last part-ref they can be checked normally.

Add some tests for cases that were previously failing, and also for
cases with vector subscripts.

Original-commit: flang-compiler/f18 at aa0a0887325bd1fc6c3a1ad40fc6711d2e458a1c
Reviewed-on: https://github.com/flang-compiler/f18/pull/961


  Commit: dcad4f580ed8388b053593ff0a678da1049789c1
      https://github.com/llvm/llvm-project/commit/dcad4f580ed8388b053593ff0a678da1049789c1
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#961 from flang-compiler/tsk-contig2

Fix another bug checking simple contiguity

Original-commit: flang-compiler/f18 at cd371e9a2ab66c31c6df77c0fa3052a80f00908c
Reviewed-on: https://github.com/flang-compiler/f18/pull/961


  Commit: 60cd064058b5c70b3ac05e1919ea60badf59442c
      https://github.com/llvm/llvm-project/commit/60cd064058b5c70b3ac05e1919ea60badf59442c
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-03 (Mon, 03 Feb 2020)

  Changed paths:
    A flang/documentation/ImplementingASemanticCheck.md

  Log Message:
  -----------
  [flang] Explanation of how to implement a semantic check

This is the story of implementing semantic checks for passing DO
variables to functions with dummy arguments with INTENT(OUT) or
INTENT(INOUT).

Original-commit: flang-compiler/f18 at 889f90913f280f285eb9960a0e0baadfd43a555f
Reviewed-on: https://github.com/flang-compiler/f18/pull/939


  Commit: 04b71efaf5f84086b50e313e5783bb89697c0e0d
      https://github.com/llvm/llvm-project/commit/04b71efaf5f84086b50e313e5783bb89697c0e0d
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-02-03 (Mon, 03 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#939 from flang-compiler/ps-dev-story

Explanation of how to implement a semantic check

Original-commit: flang-compiler/f18 at bedca1462b46c52cf41b5f40cd7ed9bb6cc78f29
Reviewed-on: https://github.com/flang-compiler/f18/pull/939


  Commit: f7be251804e63ba6b8634f40cb808e89d924a0b0
      https://github.com/llvm/llvm-project/commit/f7be251804e63ba6b8634f40cb808e89d924a0b0
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-02-04 (Tue, 04 Feb 2020)

  Changed paths:
    M flang/lib/decimal/binary-to-decimal.cpp
    M flang/runtime/CMakeLists.txt
    A flang/runtime/buffer.cpp
    A flang/runtime/buffer.h
    A flang/runtime/environment.cpp
    A flang/runtime/environment.h
    M flang/runtime/file.cpp
    M flang/runtime/file.h
    M flang/runtime/format.cpp
    M flang/runtime/format.h
    M flang/runtime/io-api.cpp
    M flang/runtime/io-stmt.cpp
    M flang/runtime/io-stmt.h
    M flang/runtime/main.cpp
    M flang/runtime/main.h
    M flang/runtime/memory.cpp
    M flang/runtime/memory.h
    A flang/runtime/numeric-output.h
    M flang/runtime/stop.cpp
    M flang/runtime/stop.h
    M flang/runtime/tools.h
    A flang/runtime/unit.cpp
    A flang/runtime/unit.h
    M flang/test/runtime/CMakeLists.txt
    A flang/test/runtime/external-hello.cpp
    M flang/test/runtime/format.cpp
    M flang/test/runtime/hello.cpp

  Log Message:
  -----------
  [flang] Initial buffer framing code

Address review comments

Integer output data editing (I,B,O,Z)

Full integer output formatting

Stub out some work in progress

Progress on E output data editing

E, D, EN, and ES output editing done

Fw.d output editing

Real G output editing

G output editing for reals

Make environment a distinct module

CHARACTER and LOGICAL output editing

Minimal decimal representations for E0, F0, G0 editing

Move real output editing code into its own file

Fix/dodge some GCC build problems

Prep work for external I/O statement state

External HELLO, WORLD

Fix build problem with GCC

Add virtual destructors where needed

Add new test

Original-commit: flang-compiler/f18 at c3f1774f8eee903928b7e46636edfb03425eabc0
Reviewed-on: https://github.com/flang-compiler/f18/pull/950


  Commit: b6363facf5fec1a6a89ea2735bdf7807df2b80b7
      https://github.com/llvm/llvm-project/commit/b6363facf5fec1a6a89ea2735bdf7807df2b80b7
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-02-04 (Tue, 04 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#950 from flang-compiler/pmk-frame

Formatted output editing & initial buffer framing code

Original-commit: flang-compiler/f18 at 003b664229a91b1692b52014ef6f9c9b65119b0d
Reviewed-on: https://github.com/flang-compiler/f18/pull/950


  Commit: a8ef13ea25e9a21906aad4489f461f19cdb3fa37
      https://github.com/llvm/llvm-project/commit/a8ef13ea25e9a21906aad4489f461f19cdb3fa37
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-02-04 (Tue, 04 Feb 2020)

  Changed paths:
    M flang/include/flang/common/template.h

  Log Message:
  -----------
  [flang] Fix template step limit issue with clang

While working on PR 959, I instanciated a `common::TupleToVariant`
with ~50+ types inside the tuple. Clang would then crash after
1hr compilation with message:
"constexpr evaluation hit maximum step limit; possible infinite loop"
After investigating, it turned out clang handles very badly the way
`common::AreTypesDistinctHelper` was implemented.
Its "number of steps" was exponential with the number of types.
This fix makes this number quadratic which solves the issue.

Original-commit: flang-compiler/f18 at 4542cb57082eaf578799c76482d4b706ae5da077
Reviewed-on: https://github.com/flang-compiler/f18/pull/968


  Commit: bff1d7c39e995d5e0b6745ab8d20386c3768b93b
      https://github.com/llvm/llvm-project/commit/bff1d7c39e995d5e0b6745ab8d20386c3768b93b
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2020-02-05 (Wed, 05 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#968 from flang-compiler/jpr-fix-clang-template-step-limit

Fix template step limit issue with clang

Original-commit: flang-compiler/f18 at d4cd378290feb05ace2d549fb74db3e48b962f10
Reviewed-on: https://github.com/flang-compiler/f18/pull/968


  Commit: f90404e59c785f9ed6b456e9ff33f4fa90c9a88f
      https://github.com/llvm/llvm-project/commit/f90404e59c785f9ed6b456e9ff33f4fa90c9a88f
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2020-02-05 (Wed, 05 Feb 2020)

  Changed paths:
    M flang/lib/semantics/check-omp-structure.cpp
    M flang/lib/semantics/check-omp-structure.h
    M flang/lib/semantics/resolve-names.cpp
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/omp-clause-validity01.f90
    M flang/test/semantics/omp-device-constructs.f90
    M flang/test/semantics/omp-symbol01.f90
    M flang/test/semantics/omp-symbol04.f90
    M flang/test/semantics/omp-symbol06.f90
    A flang/test/semantics/omp-symbol08.f90

  Log Message:
  -----------
  [flang] [OpenMP] Predetermined rules for loop index variables (flang-compiler/f18#962)

This refers to three rules in OpenMP 4.5 Spec 2.15.1.1:
  * The loop iteration variable(s) in the associated do-loop(s) of a do,
    parallel do, taskloop, or distribute construct is (are) private.
  * The loop iteration variable in the associated do-loop of a simd
    construct with just one associated do-loop is linear with a linear-step
    that is the increment of the associated do-loop.
  * The loop iteration variables in the associated do-loops of a simd
    construct with multiple associated do-loops are lastprivate.

A simple example:
```
implicit none
  integer :: N = 1024
  integer i, j, k
  !$omp parallel do collapse(3)
  do i=1, N  <- i is private
     do j=1, N  <- j is private
        do k=1, N  <- k is private
        enddo
     enddo
  enddo
end
```

If `collapse` clause is not present, the associated do-loop for construct
`parallel do` is only `i` loop. With `collapse(n)`, `i`, `j`, and `k` are
all associated do-loops and the loop index variables are private to the
OpenMP construct:

```
implicit none
 !DEF: /MainProgram1/n ObjectEntity INTEGER(4)
 integer :: n = 1024
 !DEF: /MainProgram1/i ObjectEntity INTEGER(4)
 !DEF: /MainProgram1/j ObjectEntity INTEGER(4)
 !DEF: /MainProgram1/k ObjectEntity INTEGER(4)
 integer i, j, k
!$omp parallel do  collapse(3)
 !DEF: /MainProgram1/Block1/i (OmpPrivate) HostAssoc INTEGER(4)
 !REF: /MainProgram1/n
 do i=1,n
  !DEF: /MainProgram1/Block1/j (OmpPrivate) HostAssoc INTEGER(4)
  !REF: /MainProgram1/n
  do j=1,n
   !DEF: /MainProgram1/Block1/k (OmpPrivate) HostAssoc INTEGER(4)
   !REF: /MainProgram1/n
   do k=1,n
   end do
  end do
 end do
end program
```

This implementation assumes that the structural checks for do-loops
are done at this point, for example the `n` in `collapse(n)` should
be no more than the number of actual perfectly nested do-loops, etc..

Original-commit: flang-compiler/f18 at 572a57d3d0d785bb3f2aad9e890ef498c1214309
Reviewed-on: https://github.com/flang-compiler/f18/pull/962


  Commit: 05f44aff453a38324b1bf2a4aa9dc9d0834d944a
      https://github.com/llvm/llvm-project/commit/05f44aff453a38324b1bf2a4aa9dc9d0834d944a
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-07 (Fri, 07 Feb 2020)

  Changed paths:
    M flang/lib/semantics/resolve-names.cpp
    M flang/test/evaluate/folding05.f90
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/allocate03.f90
    M flang/test/semantics/allocate09.f90
    M flang/test/semantics/modfile28.f90
    M flang/test/semantics/resolve37.f90
    A flang/test/semantics/resolve69.f90

  Log Message:
  -----------
  [flang] Semantic checks for C702
C702 (R701) A colon shall not be used as a type-param-value except in the
declaration of an entity that has the POINTER or ALLOCATABLE attribute.

I added code to the visitor for a TypeDeclarationStmt to check for the
'LEN' type parameter for strings and to loop over the type parameters
for derived types.

I also ran into a few situations where previous tests had erroneously
used a colon for type parameters without either the POINTER or
ALLOCATABLE attribute and fixed them up.

Original-commit: flang-compiler/f18 at a1a95bfcd1811d697f1386fe57af664b8a16ffb5
Reviewed-on: https://github.com/flang-compiler/f18/pull/973


  Commit: 2a1953a1e0ca992556e22adddccd5900befcbe61
      https://github.com/llvm/llvm-project/commit/2a1953a1e0ca992556e22adddccd5900befcbe61
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-02-07 (Fri, 07 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#973 from flang-compiler/ps-c702

Semantic checks for C702

Original-commit: flang-compiler/f18 at 351a7d5ea6264cc58a3fd7a20e79442c41f8dd68
Reviewed-on: https://github.com/flang-compiler/f18/pull/973


  Commit: 231ff4e6ad992a66988b34ad17b5df6513d3a5ed
      https://github.com/llvm/llvm-project/commit/231ff4e6ad992a66988b34ad17b5df6513d3a5ed
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-02-10 (Mon, 10 Feb 2020)

  Changed paths:
    M flang/include/flang/semantics/symbol.h
    M flang/lib/semantics/mod-file.cpp
    M flang/lib/semantics/resolve-labels.cpp
    M flang/lib/semantics/resolve-names.cpp
    M flang/lib/semantics/semantics.cpp
    M flang/runtime/buffer.h

  Log Message:
  -----------
  [flang] Fix issues comming from clang-10 warnings

- Remove SubprogramDetails copy ctor
- Prevent copies in range based loops over symbols
- Remove unsued var

Original-commit: flang-compiler/f18 at 16543d22f74e9421ecb4078818f4c1970bac0a5d
Reviewed-on: https://github.com/flang-compiler/f18/pull/972


  Commit: d3158fecf909bbc0cbe225d98943c751110042d2
      https://github.com/llvm/llvm-project/commit/d3158fecf909bbc0cbe225d98943c751110042d2
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2020-02-10 (Mon, 10 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#972 from flang-compiler/jpr-clang-10-warnings

Fix issues comming from clang-10 warnings

Original-commit: flang-compiler/f18 at 90e6448255d9489eeb3081a9fda9d320caf8b3e3
Reviewed-on: https://github.com/flang-compiler/f18/pull/972


  Commit: 6256fbe2007f37e60c6f6e8d9af88aa289078b9c
      https://github.com/llvm/llvm-project/commit/6256fbe2007f37e60c6f6e8d9af88aa289078b9c
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-10 (Mon, 10 Feb 2020)

  Changed paths:
    M flang/runtime/buffer.h

  Log Message:
  -----------
  [flang] Fix compilation error on macOS

The call to `std::min` failed to compile with GCC on macOS due to type
inference because `std::size_t` is `long unsigned int` but `std::int64_t`
is `long long int`.

Original-commit: flang-compiler/f18 at c342575a9e0217fa3252b70b8ef3eac0236a58e3
Reviewed-on: https://github.com/flang-compiler/f18/pull/977


  Commit: 9d2d5877632c1a17ef1f2d8b8bf0041eccef890a
      https://github.com/llvm/llvm-project/commit/9d2d5877632c1a17ef1f2d8b8bf0041eccef890a
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-10 (Mon, 10 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#977 from flang-compiler/tsk-osx-error

Fix compilation error on macOS

Original-commit: flang-compiler/f18 at 204c67d7b6721c38d24cb2ffb3d812350f6d146b
Reviewed-on: https://github.com/flang-compiler/f18/pull/977


  Commit: b9e9b6f84da0a4a50fd4d45bc71169f6bba7ce62
      https://github.com/llvm/llvm-project/commit/b9e9b6f84da0a4a50fd4d45bc71169f6bba7ce62
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-11 (Tue, 11 Feb 2020)

  Changed paths:
    M flang/documentation/ImplementingASemanticCheck.md

  Log Message:
  -----------
  [flang] Updated the description of `evaluate::Expr` types

Original-commit: flang-compiler/f18 at 75adddd504577a295f0c906aa049bd47ce2b4f2e
Reviewed-on: https://github.com/flang-compiler/f18/pull/979


  Commit: 766d633ebf70d2a02aa9ce8e4e4110a0991bf45e
      https://github.com/llvm/llvm-project/commit/766d633ebf70d2a02aa9ce8e4e4110a0991bf45e
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-02-11 (Tue, 11 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#979 from flang-compiler/ps-dev-story

Updated the description of `evaluate::Expr` types

Original-commit: flang-compiler/f18 at 92884fa4f63e5186fc23d185b9d163ac28ff39d5
Reviewed-on: https://github.com/flang-compiler/f18/pull/979


  Commit: 702d3075acb24cd8e2ff27a492aa04e468d4e221
      https://github.com/llvm/llvm-project/commit/702d3075acb24cd8e2ff27a492aa04e468d4e221
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-11 (Tue, 11 Feb 2020)

  Changed paths:
    M flang/lib/semantics/check-declarations.cpp
    M flang/lib/semantics/resolve-names.cpp
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/allocate04.f90
    M flang/test/semantics/resolve52.f90
    M flang/test/semantics/resolve69.f90
    A flang/test/semantics/resolve70.f90
    M flang/test/semantics/structconst01.f90

  Log Message:
  -----------
  [flang] Semantic checks for constraints on types
I implemented and added tests for constraints C703, C704, C705, C706,
and C796.  In some cases, the code and/or test already existed, and all
I did was add a notation indicating the associated constraint.

Original-commit: flang-compiler/f18 at 49a64c4c2374e930f6890b270289a6f49ba63edd
Reviewed-on: https://github.com/flang-compiler/f18/pull/978


  Commit: dbea781d199babb68a71d08a0694522184b93e2d
      https://github.com/llvm/llvm-project/commit/dbea781d199babb68a71d08a0694522184b93e2d
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-02-11 (Tue, 11 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#978 from flang-compiler/ps-types

Semantic checks for constraints on types

Original-commit: flang-compiler/f18 at 2efdf12f6a2533980dfcfc6c3bb375e65ac07a67
Reviewed-on: https://github.com/flang-compiler/f18/pull/978


  Commit: 95696d563b927cb51f4a55976e7f64992e1c0acf
      https://github.com/llvm/llvm-project/commit/95696d563b927cb51f4a55976e7f64992e1c0acf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M flang/documentation/FortranForCProgrammers.md
    A flang/documentation/IORuntimeInternals.md
    A flang/include/flang/common/real.h
    M flang/include/flang/decimal/binary-floating-point.h
    M flang/include/flang/decimal/decimal.h
    M flang/include/flang/evaluate/common.h
    M flang/include/flang/evaluate/complex.h
    M flang/include/flang/evaluate/integer.h
    M flang/include/flang/evaluate/real.h
    M flang/include/flang/evaluate/type.h
    M flang/lib/decimal/big-radix-floating-point.h
    M flang/lib/decimal/binary-to-decimal.cpp
    M flang/lib/decimal/decimal-to-binary.cpp
    M flang/lib/evaluate/characteristics.cpp
    M flang/lib/evaluate/complex.cpp
    M flang/lib/evaluate/real.cpp
    M flang/module/iso_fortran_env.f90
    M flang/runtime/CMakeLists.txt
    M flang/runtime/buffer.h
    A flang/runtime/connection.cpp
    A flang/runtime/connection.h
    M flang/runtime/descriptor.cpp
    M flang/runtime/descriptor.h
    M flang/runtime/environment.cpp
    M flang/runtime/environment.h
    M flang/runtime/file.cpp
    M flang/runtime/file.h
    A flang/runtime/format-implementation.h
    M flang/runtime/format.cpp
    M flang/runtime/format.h
    A flang/runtime/internal-unit.cpp
    A flang/runtime/internal-unit.h
    M flang/runtime/io-api.cpp
    M flang/runtime/io-api.h
    M flang/runtime/io-error.h
    M flang/runtime/io-stmt.cpp
    M flang/runtime/io-stmt.h
    M flang/runtime/lock.h
    M flang/runtime/main.cpp
    M flang/runtime/memory.cpp
    M flang/runtime/memory.h
    A flang/runtime/numeric-output.cpp
    M flang/runtime/numeric-output.h
    M flang/runtime/stop.cpp
    M flang/runtime/terminator.cpp
    M flang/runtime/terminator.h
    M flang/runtime/tools.cpp
    M flang/runtime/tools.h
    M flang/runtime/unit.cpp
    M flang/runtime/unit.h
    M flang/test/evaluate/real.cpp
    M flang/test/runtime/external-hello.cpp
    M flang/test/runtime/format.cpp
    M flang/test/runtime/hello.cpp

  Log Message:
  -----------
  [flang] Progress on Fortran I/O runtime

Use internal units for internal I/O state

Replace use of virtual functions

reference_wrapper

Internal formatted output to array descriptor

Delete dead code

Begin list-directed internal output

Refactorings and renamings for clarity

List-directed external I/O (character)

COMPLEX list-directed output

Control list items

First cut at unformatted I/O

More OPEN statement work; rename class to ExternalFileUnit

Complete OPEN (exc. for POSITION=), add CLOSE()

OPEN(POSITION=)

Flush buffers on crash and for terminal output; clean up

Documentation

Fix backquote in documentation

Fix typo in comment

Begin implementation of input

Refactor binary floating-point properties to a new header, simplify numeric output editing

Dodge spurious GCC 7.2 build warning

Address review comments

Original-commit: flang-compiler/f18 at 9c4bba11cf2329575ea9ee446f69e9caa797135c
Reviewed-on: https://github.com/flang-compiler/f18/pull/982


  Commit: 6adb4b5981c131104ccf7beca07985c85a7eb7f2
      https://github.com/llvm/llvm-project/commit/6adb4b5981c131104ccf7beca07985c85a7eb7f2
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#982 from flang-compiler/pmk-more-io

Progress on Fortran I/O runtime

Original-commit: flang-compiler/f18 at 47ed180b67cae9d61251574e94c97675d5c998b1
Reviewed-on: https://github.com/flang-compiler/f18/pull/982


  Commit: d7cee59762f50477a5616cff8cf4f3a3b17e1573
      https://github.com/llvm/llvm-project/commit/d7cee59762f50477a5616cff8cf4f3a3b17e1573
  Author: David Truby <david.truby at arm.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M flang/.drone.star

  Log Message:
  -----------
  [flang] Add zlib to drone files so that linking LLVM works. (flang-compiler/f18#983)

Original-commit: flang-compiler/f18 at 403faf847d0beacac26421bc82318aaef0e973c9
Reviewed-on: https://github.com/flang-compiler/f18/pull/983


  Commit: 79f38ab4bb612f5bcebd35c3318e1fcf9516babb
      https://github.com/llvm/llvm-project/commit/79f38ab4bb612f5bcebd35c3318e1fcf9516babb
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-14 (Fri, 14 Feb 2020)

  Changed paths:
    M flang/lib/semantics/check-declarations.cpp
    M flang/lib/semantics/resolve-names.cpp
    M flang/test/semantics/CMakeLists.txt
    M flang/test/semantics/allocate01.f90
    M flang/test/semantics/allocate09.f90
    M flang/test/semantics/resolve44.f90
    M flang/test/semantics/resolve70.f90
    A flang/test/semantics/resolve71.f90
    M flang/test/semantics/symbol09.f90

  Log Message:
  -----------
  [flang] Semantic check for C708

An entity declared with the CLASS keyword shall be a dummy argument or
have the ALLOCATABLE or POINTER attribute.

Implementing this check revealed a problem in the test resolve44.cpp.
It also showed that we were doing semantic checking on the entities
created by the compiler for LOCAL and LOCAL_INIT locality-specs.  So I
changed the creation of symbols associated with LOCAL and LOCAL_INIT
locality-specs to be host associated with the outer symbol rather than
new object entities.  In the process, I also changed things so that the
`parser::Name` associated with the newly created symbols was set to the
symbol rather than being set to nullptr.

Original-commit: flang-compiler/f18 at 5dd0b0bbe811a908374b2907bb38c75ca76127d2
Reviewed-on: https://github.com/flang-compiler/f18/pull/981


  Commit: 5334ee6e5fc0ac3321d5b295af0de21fbc2e41ea
      https://github.com/llvm/llvm-project/commit/5334ee6e5fc0ac3321d5b295af0de21fbc2e41ea
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-02-14 (Fri, 14 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#981 from flang-compiler/ps-c708

Semantic check for C708

Original-commit: flang-compiler/f18 at 4d4b375d14810223badee7b47a151bc1d7ebab5b
Reviewed-on: https://github.com/flang-compiler/f18/pull/981


  Commit: c52cd6355ca7f0cfcd259a4e5e6a544141619628
      https://github.com/llvm/llvm-project/commit/c52cd6355ca7f0cfcd259a4e5e6a544141619628
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-02-17 (Mon, 17 Feb 2020)

  Changed paths:
    A flang/include/fir/.clang-format
    A flang/include/flang/lower/.clang-format
    A flang/include/flang/optimizer/.clang-format
    A flang/lib/fir/.clang-format
    A flang/lib/lower/.clang-format
    A flang/lib/optimizer/.clang-format
    A flang/tools/bbc/.clang-format
    A flang/tools/tco/.clang-format

  Log Message:
  -----------
  [flang] Add clang-format files for FIR source (LLVM style)

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the commits between:
https://github.com/schweitzpgi/f18/commit/8c320e3bf2c3e9cdac66c81db3bf4634bf972e1d
and:
https://github.com/schweitzpgi/f18/commit/9b9ea05f9a75608c7bb5372c56bf7b9363569a69

Original-commit: flang-compiler/f18 at 00d8d5121cdaed09e584a0aea7d59baf322bfaa3
Reviewed-on: https://github.com/flang-compiler/f18/pull/959
Tree-same-pre-rewrite: false


  Commit: 336408679535454f8708899cc49cda9395dd725a
      https://github.com/llvm/llvm-project/commit/336408679535454f8708899cc49cda9395dd725a
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-02-17 (Mon, 17 Feb 2020)

  Changed paths:
    M flang/.drone.star
    M flang/CMakeLists.txt
    A flang/include/flang/lower/PFTBuilder.h
    M flang/include/flang/parser/dump-parse-tree.h
    M flang/lib/CMakeLists.txt
    A flang/lib/lower/CMakeLists.txt
    A flang/lib/lower/PFTBuilder.cpp
    M flang/test-lit/CMakeLists.txt
    M flang/test-lit/lit.cfg.py
    M flang/test-lit/lit.site.cfg.py.in
    A flang/test-lit/lower/pre-fir-tree01.f90
    A flang/test-lit/lower/pre-fir-tree02.f90
    A flang/test-lit/lower/pre-fir-tree03.f90
    A flang/test-lit/lower/pre-fir-tree04.f90
    M flang/tools/f18/CMakeLists.txt
    M flang/tools/f18/f18.cpp

  Log Message:
  -----------
  [flang] Add Pre-FIR Tree structure to help lowering the parse-tree

The Pre-FIR Tree structure is a transient data structure that
is meant to be built from the parse tree just before lowering to
FIR and that will be deleted just afterwards. It is not meant to perfrom
optimization analysis and transformations. It only provides temporary
information, such as label target information or parse tree parent nodes,
that is meant to be used to lower the parse tree structure into
FIR operations.
A PFTBuilder class builds the Pre-Fir Tree from the parse-tree.
A pretty printer is available to visualize this data structure.

- Lit tests are added to:
  1. that the PFT tree structure is as expected
  2. that the PFT captures all intented nodes

- Cmake changes: Prevent warnings inisde LLVM headers when compiling flang

The issue is that some LLVM headers  define functions where the usage of
the parameters depend on environment ifdef. See for instance Size in:
https://github.com/llvm/llvm-project/blob/5f940220bf9438e95ffa4a627ac1591be1e1ba6e/llvm/include/llvm/Support/Compiler.h#L574

Because flang is build with -Werror and -Wunused-parameter is default in
clang, this may breaks build in some environments (like with clang9 on macos).
A solution would be to add -Wno-unused-parameter to flang CmakLists.txt,
but it is wished to keep this warning on flang sources for quality purposes.
Fixing LLVM headers is not an easy task and `[[maybe_unused]]` is C++17 and
cannot be used yet in LLVM headers.
Hence, this fix simply silence warnings coming from LLVM headers by telling
CMake they are to be considered as if they were system headers.

- drone.io changes: remove llvm 6.0 from clang config in drone.io and link
flang with libstdc++ instead of libc++

llvm-dev resolved to llvm-6.0 in clang builds on drone.io. llvm 6.0 too old.
LLVM packages are linked with libstdc++ standard library whereas libc++ was
used for flang. This caused link time failure when building clang. Change
frone.io to build flang with libc++.

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898cbe509d032abfe1172ec367dbd3dd92bc1
and
137c23da9c64cf90584cf81fd646053a69e91f63

Other changes come from https://github.com/flang-compiler/f18/pull/959 review.

Original-commit: flang-compiler/f18 at edb0943bca4b81689f320bda341040bf255d6e2e
Reviewed-on: https://github.com/flang-compiler/f18/pull/959


  Commit: 840e19eed8409de46bfaccf63301eb741ffa86ef
      https://github.com/llvm/llvm-project/commit/840e19eed8409de46bfaccf63301eb741ffa86ef
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2020-02-17 (Mon, 17 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#959 from jeanPerier/jpr-mono-split

RFC: FIR Merge - PR1: Add PFTBuilder structure to help lowering the parse-tree

Original-commit: flang-compiler/f18 at f28afa7138a55c0af3aadc8028844012ce8e6191
Reviewed-on: https://github.com/flang-compiler/f18/pull/959


  Commit: aa9fc5bddcbccfc7adc8f05dbd579cb0b94f7e20
      https://github.com/llvm/llvm-project/commit/aa9fc5bddcbccfc7adc8f05dbd579cb0b94f7e20
  Author: Jinxin (Brian) Yang <jinxiny at nvidia.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M flang/include/flang/semantics/symbol.h
    M flang/lib/semantics/check-omp-structure.h
    M flang/lib/semantics/resolve-names.cpp
    M flang/test/semantics/omp-symbol01.f90
    M flang/test/semantics/omp-symbol04.f90
    M flang/test/semantics/omp-symbol06.f90
    M flang/test/semantics/omp-symbol08.f90

  Log Message:
  -----------
  [flang] [OpenMP] Predetermined rule for sequential loop index (flang-compiler/f18#976)

This commit implements rule:
A loop iteration variable for a sequential loop in a parallel or
task generating construct is private in the innermost such construct
that encloses the loop.

A Simple example:
```
  i = -1                    <== Scope 0
  j = -1
  !$omp parallel            <== Scope 1
  print *,i,j      <-- both are shared (Scope 0)
  !$omp parallel            <== Scope 2
  print *,i,j      <-- a) i is shared (Scope 0), j is private (Scope 2)
  !$omp do                  <== Scope 3
  do i=1, 10       <-- i is private (Scope 3)
     do j=1, 10    <-- b) j is private (Scope 2, not 3!)
     enddo
  enddo
  print *,i,j      <-- c) i is shared (Scope 0), j is private (Scope 2)
  !$omp end parallel
  print *,i,j      <-- both are shared (Scope 0)
  !$omp end parallel
  print *,i,j      <-- both are shared (Scope 0)
end
```

Ideally the above rule solves a), b), and c) but a) is left as a TODO
because it is better to handle the data-sharing attribute conflicts
along with the rules for "Predetermined DSA on Clauses".

The basic idea is when visiting the `DoConstruct` node within an OpenMP
construct, if the do-loop is not associated (like `i` loop is associated
with `!$omp do`) AND the do-loop is in the parallel/task generating
construct, resolve the loop index to be private to that innermost construct.

In the above example, `j` loop is not associated (then it is sequential) and
the innermost parallel/task generating construct that encloses the `j` loop
is the `parallel` construct marked with `<== Scope 2`, so `j` is private
to that construct. To do that, I also need to change the prototype of those
`ResolveOmp*` functions to allow specifiying the `scope` because the new
symbol for `j` should be created in Scope 2 and all the `symbol` field of
`Name j` in that `parallel` construct should be fixed, such as c).

Original-commit: flang-compiler/f18 at 69a845283b058a3644053ec58b00d3361f4d4a59
Reviewed-on: https://github.com/flang-compiler/f18/pull/976


  Commit: 24b9ef8727a2e86fb6c78d5328a8edc1b8dfce0e
      https://github.com/llvm/llvm-project/commit/24b9ef8727a2e86fb6c78d5328a8edc1b8dfce0e
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M flang/tools/f18/CMakeLists.txt

  Log Message:
  -----------
  [flang] Fix issues with -DBUILD_SHARED_LIBS=On

This re-ordering allows building f18 with shared library using and LLVM build
with static libraries.

This reordering (that also made sens form an alphabetical point of view)
works here to do such "shared+archive" compiling because the current
dependency on LLVM is simple (only one f18 lib + an executable depends on LLVM).
As soon as two f18 libraries will depend on LLVM, one will have to use an LLVM
version built with -DBUILD_SHARED_LIBS=On if one wants to use this option
to compile f18.

Original-commit: flang-compiler/f18 at bbbbe9c1aa2fd38dc2164a6440290dbbea1518e2
Reviewed-on: https://github.com/flang-compiler/f18/pull/994


  Commit: d49804cde510b12b1fab99a181779d4ff9380623
      https://github.com/llvm/llvm-project/commit/d49804cde510b12b1fab99a181779d4ff9380623
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#994 from flang-compiler/jpr-fix-shared-builds

Fix issues with -DBUILD_SHARED_LIBS=On

Original-commit: flang-compiler/f18 at a20a80e71e05f5ceea84e804e8f4d7bd4b7b52e9
Reviewed-on: https://github.com/flang-compiler/f18/pull/994


  Commit: 4d0c8522e3a3bd25c1783c1c271cb155240a7b75
      https://github.com/llvm/llvm-project/commit/4d0c8522e3a3bd25c1783c1c271cb155240a7b75
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M flang/include/flang/semantics/type.h
    M flang/lib/semantics/check-call.cpp
    M flang/lib/semantics/check-declarations.cpp
    M flang/lib/semantics/expression.cpp
    M flang/module/iso_c_binding.f90
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/call15.f90
    M flang/test/semantics/modfile12.f90
    A flang/test/semantics/resolve72.f90

  Log Message:
  -----------
  [flang] Semantic checks for C709, C710, and C711

C709 An assumed-type entity shall be a dummy data object that does not
have the ALLOCATABLE, CODIMENSION, INTENT (OUT), POINTER, or VALUE
attribute and is not an explicit-shape array.

C710 An assumed-type variable name shall not appear in a designator or
expression except as an actual argument corresponding to a dummy
argument that is assumed-type, or as the first argument to the intrinsic
function IS_CONTIGUOUS, LBOUND, PRESENT, RANK, SHAPE, SIZE, or UBOUND,
or the function C_LOC from the intrinsic module ISO_C_BINDING.

C711 An assumed-type actual argument that corresponds to an assumed-rank
dummy argument shall be assumed-shape or assumed-rank.

For C709 I added code to check-declarations.cpp.  For this, I had to
distinguish between polymorphic types and assumed-type types to
eliminate multiple messages on the same line.

C710 was already checked, but I added a notation in the source.

For C711 I added code to check-call.cpp and the test call15.f90.

Original-commit: flang-compiler/f18 at 4a703f2b5a6484208a059dc0b456363c138a661d
Reviewed-on: https://github.com/flang-compiler/f18/pull/985


  Commit: 79c467b1a8d7605a3115ff19beaf30d7698ac1ca
      https://github.com/llvm/llvm-project/commit/79c467b1a8d7605a3115ff19beaf30d7698ac1ca
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#985 from flang-compiler/ps-types

Semantic checks for C709, C710, and C711

Original-commit: flang-compiler/f18 at fa6d4753b74d1fb5fa4b453d7c35de14910fd5be
Reviewed-on: https://github.com/flang-compiler/f18/pull/985


  Commit: 88aa96ffe9462bea9677c24fbd966c610918bbd0
      https://github.com/llvm/llvm-project/commit/88aa96ffe9462bea9677c24fbd966c610918bbd0
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M flang/include/flang/evaluate/expression.h
    M flang/lib/evaluate/expression.cpp
    M flang/lib/semantics/assignment.cpp
    M flang/lib/semantics/expression.cpp
    M flang/lib/semantics/pointer-assignment.cpp
    M flang/lib/semantics/pointer-assignment.h

  Log Message:
  -----------
  [flang] Reorganize evaluate::Assignment

Every analyzed assignment represented by `evaluate::Assignment` has
a LHS and RHS expression. These need to be checked uniformly in various
places. So change Assignment always to have those data members, with
the variant determining which kinds of assignment it is: intrinsic,
user-defined, or pointer.

Original-commit: flang-compiler/f18 at fb87d16a868112e26ade0ad696b2232d8cf3a524
Reviewed-on: https://github.com/flang-compiler/f18/pull/989
Tree-same-pre-rewrite: false


  Commit: ee7cc4764f81db864788a6c121913f901eb25270
      https://github.com/llvm/llvm-project/commit/ee7cc4764f81db864788a6c121913f901eb25270
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M flang/include/flang/evaluate/tools.h
    M flang/include/flang/semantics/semantics.h
    M flang/lib/evaluate/tools.cpp
    M flang/lib/semantics/assignment.cpp
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-allocate.cpp
    M flang/lib/semantics/check-deallocate.cpp
    M flang/lib/semantics/check-do.cpp
    M flang/lib/semantics/check-do.h
    M flang/lib/semantics/check-io.cpp
    M flang/lib/semantics/semantics.cpp
    M flang/test/semantics/call11.f90
    M flang/test/semantics/dosemantics02.f90
    M flang/test/semantics/dosemantics04.f90
    M flang/test/semantics/dosemantics05.f90
    M flang/test/semantics/dosemantics09.f90
    M flang/test/semantics/forall01.f90
    M flang/test/semantics/resolve35.f90

  Log Message:
  -----------
  [flang] Add FORALL checking to DoChecker

FORALL statements and constructs require a lot of the same checking
as DO CONCURRENT, so do the checks in DoChecker so that code can be
shared where possible. This requires some reorganization there.
Remove code from AssignmentChecker that did some of these checks.

Change names that contain `DoVar` or `DoVariable` to `IndexVar` to
reflect the fact that they may be DO or FORALL index variables.
Distinguish between the two when necessary with enum `IndexVarKind`.

Change some messages that referred to "concurrent-header" or
"concurrent-control" to specifically say "DO CONCURRENT" or "FORALL".

Original-commit: flang-compiler/f18 at 84752c492e910573e2f0ede1ed3c0417aac363b9
Reviewed-on: https://github.com/flang-compiler/f18/pull/989
Tree-same-pre-rewrite: false


  Commit: aafc1578aee8a72402528e68b0fa52a3d64030d1
      https://github.com/llvm/llvm-project/commit/aafc1578aee8a72402528e68b0fa52a3d64030d1
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M flang/lib/semantics/CMakeLists.txt
    A flang/lib/semantics/check-do-forall.cpp
    A flang/lib/semantics/check-do-forall.h
    R flang/lib/semantics/check-do.cpp
    R flang/lib/semantics/check-do.h
    M flang/lib/semantics/semantics.cpp

  Log Message:
  -----------
  [flang] Rename DoChecker to DoForallChecker

This reflects the fact that it now performs checks on both DO
and FORALL constructs. Rename the source files as well.

Original-commit: flang-compiler/f18 at 8ecb6a279f53ff4cc9493506370664fb1923470a
Reviewed-on: https://github.com/flang-compiler/f18/pull/989


  Commit: 4aea41c9073e33bf5db9a741409e2e25b7b97793
      https://github.com/llvm/llvm-project/commit/4aea41c9073e33bf5db9a741409e2e25b7b97793
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#989 from flang-compiler/tsk-forall

Add FORALL checking to DoChecker

Original-commit: flang-compiler/f18 at 35fd0cda58776389d2ed68eaefbc1e1d59423ec8
Reviewed-on: https://github.com/flang-compiler/f18/pull/989


  Commit: 256b53688e3a76c00ae364a0528e0356b54405da
      https://github.com/llvm/llvm-project/commit/256b53688e3a76c00ae364a0528e0356b54405da
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2020-02-20 (Thu, 20 Feb 2020)

  Changed paths:
    M flang/include/flang/decimal/decimal.h
    M flang/lib/decimal/binary-to-decimal.cpp
    M flang/lib/decimal/decimal-to-binary.cpp

  Log Message:
  -----------
  [flang] Disable 80-bit extended precision if on MSVC (flang-compiler/f18#1003)

Original-commit: flang-compiler/f18 at 2c1fc63758eac43eb4d2fd4fdf1e7b0e63d52f70
Reviewed-on: https://github.com/flang-compiler/f18/pull/1003


  Commit: ca861fd4946f16f8d993851c6bfafa0fb12b40c3
      https://github.com/llvm/llvm-project/commit/ca861fd4946f16f8d993851c6bfafa0fb12b40c3
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2020-02-20 (Thu, 20 Feb 2020)

  Changed paths:
    M flang/include/flang/semantics/symbol.h

  Log Message:
  -----------
  [flang] Add missing array include (flang-compiler/f18#1004)

Original-commit: flang-compiler/f18 at de801a0db7614c93abc8239d02a453d60c9ea8a1
Reviewed-on: https://github.com/flang-compiler/f18/pull/1004


  Commit: df1b4b144e81a1219b9daf9f2aa765bc0beed800
      https://github.com/llvm/llvm-project/commit/df1b4b144e81a1219b9daf9f2aa765bc0beed800
  Author: Anchu Rajendran S <59249359+anchu-rajendran at users.noreply.github.com>
  Date:   2020-02-20 (Thu, 20 Feb 2020)

  Changed paths:
    M flang/include/flang/semantics/expression.h
    M flang/lib/semantics/CMakeLists.txt
    A flang/lib/semantics/check-data.cpp
    A flang/lib/semantics/check-data.h
    M flang/lib/semantics/expression.cpp
    M flang/lib/semantics/resolve-names.cpp
    M flang/lib/semantics/semantics.cpp
    M flang/test/semantics/CMakeLists.txt
    A flang/test/semantics/data01.f90

  Log Message:
  -----------
  [flang] Issue flang-compiler/f18#992 :  Implementing Semantic checks for DATA Statement (C874-C887) (flang-compiler/f18#992)

This commit covers Semantic Constraints C882 - C887

C882 : It was partially Implemented. Finished the implementation
and added test case
C884 : Implemented and added test case
C883 : Implementation was there already. Added test case
C885, C886, C887 : Implementation was there already. Added test case for
data-repeat.

Original-commit: flang-compiler/f18 at 822129736b6b7a96b6ff3ffe810d842ce42e3672
Reviewed-on: https://github.com/flang-compiler/f18/pull/992


  Commit: 28d8a67d43aff990d331852178a86e0bf0a94f30
      https://github.com/llvm/llvm-project/commit/28d8a67d43aff990d331852178a86e0bf0a94f30
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M flang/include/flang/parser/parse-tree.h
    M flang/lib/parser/Fortran-parsers.cpp

  Log Message:
  -----------
  [flang] Fix parsing bug on DATA statement

This DATA statement was getting a parsing error:
`data x /a(i)%b/`

The parser was expecting the ending '/' where the '%' was. The problem
was parsing `a(i)` as a structure constructor. Instead, move the
constant subobject case before structure constructor, but match it only
if not followed by '('. That is because in `data x /a(1)(2)/`, `a(1)` is
a valid structure constructor.

Also, remove the NamedConstant alternative from DataStmtRepeat. A named
constant is always parsed as a ConstantSubobject so it can never occur.

Original-commit: flang-compiler/f18 at 04a76b272675d47ec7752420b15976c69a907dab
Reviewed-on: https://github.com/flang-compiler/f18/pull/1012


  Commit: 703c56132b16f2500b5856e44c1a297f314a2378
      https://github.com/llvm/llvm-project/commit/703c56132b16f2500b5856e44c1a297f314a2378
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1012 from flang-compiler/tsk-rewrite

Fix parsing bug on DATA statement

Original-commit: flang-compiler/f18 at b9f2617f55bd3be8414f8d8f078f53f0bf881667
Reviewed-on: https://github.com/flang-compiler/f18/pull/1012


  Commit: e0ba2b8783ec6feb49af89f1aa3378069054a109
      https://github.com/llvm/llvm-project/commit/e0ba2b8783ec6feb49af89f1aa3378069054a109
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M flang/include/flang/semantics/semantics.h
    M flang/lib/semantics/assignment.cpp
    M flang/lib/semantics/assignment.h
    M flang/lib/semantics/check-do-forall.cpp
    M flang/lib/semantics/semantics.cpp
    M flang/test/semantics/assign01.f90
    M flang/test/semantics/forall01.f90

  Log Message:
  -----------
  [flang] Add more checks on WHERE and FORALL

Check that masks and LHS of assignments in WHERE statements and
constructs have consistent shapes. They must all have the same rank and
any extents that are compile-time constants must match.

Emit a warning for assignments in FORALL statements and constructs where
the LHS does not reference each of the index variables.

Original-commit: flang-compiler/f18 at 8b04dbebcf5621cfd571a8c45878cebcd1a1bfb0
Reviewed-on: https://github.com/flang-compiler/f18/pull/1009


  Commit: b7af30a33b28d44029dbde925eee2c23822f5c0f
      https://github.com/llvm/llvm-project/commit/b7af30a33b28d44029dbde925eee2c23822f5c0f
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1009 from flang-compiler/tsk-where

Add more checks on WHERE and FORALL

Original-commit: flang-compiler/f18 at c9638d10c6515703e8c095127bd46ae1dae1637e
Reviewed-on: https://github.com/flang-compiler/f18/pull/1009


  Commit: 6374eea9cf451b7e1f2a3fe1846f827276c3344e
      https://github.com/llvm/llvm-project/commit/6374eea9cf451b7e1f2a3fe1846f827276c3344e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M flang/test/semantics/data01.f90

  Log Message:
  -----------
  [flang] Temporarily disable part of data01 test

`data x /a(1)/` is ambiguous. The data value may be an array element
or a structure constructor. We need to parse it as one of these and
then fix up the parse tree when it should have been the other one.

My PR 1012 changed the parser to identify this as an array element.
That makes this test invalid until we have the right parse tree fixup,
so I am disabling it for now.

Original-commit: flang-compiler/f18 at 72aa278f0341f345a12fcd76a6ad1f2045ecc233
Reviewed-on: https://github.com/flang-compiler/f18/pull/1013


  Commit: 456a61d188e9cdf43bd44e28e11708773d838798
      https://github.com/llvm/llvm-project/commit/456a61d188e9cdf43bd44e28e11708773d838798
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1013 from flang-compiler/tsk-rewrite

Temporarily disable part of data01 test

Original-commit: flang-compiler/f18 at cf48fe874617647e5f9250bedd35248711b8371c
Reviewed-on: https://github.com/flang-compiler/f18/pull/1013


  Commit: 64ab3302d5a130c00b66a6957b2e7f0c9b9c537d
      https://github.com/llvm/llvm-project/commit/64ab3302d5a130c00b66a6957b2e7f0c9b9c537d
  Author: CarolineConcatto <51754594+CarolineConcatto at users.noreply.github.com>
  Date:   2020-02-25 (Tue, 25 Feb 2020)

  Changed paths:
    M flang/documentation/C++style.md
    M flang/documentation/ImplementingASemanticCheck.md
    A flang/include/flang/Common/Fortran-features.h
    A flang/include/flang/Common/Fortran.h
    A flang/include/flang/Common/bit-population-count.h
    A flang/include/flang/Common/constexpr-bitset.h
    A flang/include/flang/Common/default-kinds.h
    A flang/include/flang/Common/enum-set.h
    A flang/include/flang/Common/format.h
    A flang/include/flang/Common/idioms.h
    A flang/include/flang/Common/indirection.h
    A flang/include/flang/Common/interval.h
    A flang/include/flang/Common/leading-zero-bit-count.h
    A flang/include/flang/Common/real.h
    A flang/include/flang/Common/reference-counted.h
    A flang/include/flang/Common/reference.h
    A flang/include/flang/Common/restorer.h
    A flang/include/flang/Common/template.h
    A flang/include/flang/Common/uint128.h
    A flang/include/flang/Common/unsigned-const-division.h
    A flang/include/flang/Common/unwrap.h
    A flang/include/flang/Decimal/binary-floating-point.h
    A flang/include/flang/Decimal/decimal.h
    A flang/include/flang/Evaluate/call.h
    A flang/include/flang/Evaluate/characteristics.h
    A flang/include/flang/Evaluate/check-expression.h
    A flang/include/flang/Evaluate/common.h
    A flang/include/flang/Evaluate/complex.h
    A flang/include/flang/Evaluate/constant.h
    A flang/include/flang/Evaluate/expression.h
    A flang/include/flang/Evaluate/fold.h
    A flang/include/flang/Evaluate/formatting.h
    A flang/include/flang/Evaluate/integer.h
    A flang/include/flang/Evaluate/intrinsics-library.h
    A flang/include/flang/Evaluate/intrinsics.h
    A flang/include/flang/Evaluate/logical.h
    A flang/include/flang/Evaluate/real.h
    A flang/include/flang/Evaluate/rounding-bits.h
    A flang/include/flang/Evaluate/shape.h
    A flang/include/flang/Evaluate/static-data.h
    A flang/include/flang/Evaluate/tools.h
    A flang/include/flang/Evaluate/traverse.h
    A flang/include/flang/Evaluate/type.h
    A flang/include/flang/Evaluate/variable.h
    A flang/include/flang/Lower/.clang-format
    A flang/include/flang/Lower/PFTBuilder.h
    A flang/include/flang/Optimizer/.clang-format
    A flang/include/flang/Parser/char-block.h
    A flang/include/flang/Parser/char-buffer.h
    A flang/include/flang/Parser/char-set.h
    A flang/include/flang/Parser/characters.h
    A flang/include/flang/Parser/dump-parse-tree.h
    A flang/include/flang/Parser/format-specification.h
    A flang/include/flang/Parser/instrumented-parser.h
    A flang/include/flang/Parser/message.h
    A flang/include/flang/Parser/parse-state.h
    A flang/include/flang/Parser/parse-tree-visitor.h
    A flang/include/flang/Parser/parse-tree.h
    A flang/include/flang/Parser/parsing.h
    A flang/include/flang/Parser/provenance.h
    A flang/include/flang/Parser/source.h
    A flang/include/flang/Parser/tools.h
    A flang/include/flang/Parser/unparse.h
    A flang/include/flang/Parser/user-state.h
    A flang/include/flang/Semantics/attr.h
    A flang/include/flang/Semantics/expression.h
    A flang/include/flang/Semantics/scope.h
    A flang/include/flang/Semantics/semantics.h
    A flang/include/flang/Semantics/symbol.h
    A flang/include/flang/Semantics/tools.h
    A flang/include/flang/Semantics/type.h
    A flang/include/flang/Semantics/unparse-with-symbols.h
    R flang/include/flang/common/Fortran-features.h
    R flang/include/flang/common/Fortran.h
    R flang/include/flang/common/bit-population-count.h
    R flang/include/flang/common/constexpr-bitset.h
    R flang/include/flang/common/default-kinds.h
    R flang/include/flang/common/enum-set.h
    R flang/include/flang/common/format.h
    R flang/include/flang/common/idioms.h
    R flang/include/flang/common/indirection.h
    R flang/include/flang/common/interval.h
    R flang/include/flang/common/leading-zero-bit-count.h
    R flang/include/flang/common/real.h
    R flang/include/flang/common/reference-counted.h
    R flang/include/flang/common/reference.h
    R flang/include/flang/common/restorer.h
    R flang/include/flang/common/template.h
    R flang/include/flang/common/uint128.h
    R flang/include/flang/common/unsigned-const-division.h
    R flang/include/flang/common/unwrap.h
    R flang/include/flang/decimal/binary-floating-point.h
    R flang/include/flang/decimal/decimal.h
    R flang/include/flang/evaluate/call.h
    R flang/include/flang/evaluate/characteristics.h
    R flang/include/flang/evaluate/check-expression.h
    R flang/include/flang/evaluate/common.h
    R flang/include/flang/evaluate/complex.h
    R flang/include/flang/evaluate/constant.h
    R flang/include/flang/evaluate/expression.h
    R flang/include/flang/evaluate/fold.h
    R flang/include/flang/evaluate/formatting.h
    R flang/include/flang/evaluate/integer.h
    R flang/include/flang/evaluate/intrinsics-library.h
    R flang/include/flang/evaluate/intrinsics.h
    R flang/include/flang/evaluate/logical.h
    R flang/include/flang/evaluate/real.h
    R flang/include/flang/evaluate/rounding-bits.h
    R flang/include/flang/evaluate/shape.h
    R flang/include/flang/evaluate/static-data.h
    R flang/include/flang/evaluate/tools.h
    R flang/include/flang/evaluate/traverse.h
    R flang/include/flang/evaluate/type.h
    R flang/include/flang/evaluate/variable.h
    R flang/include/flang/lower/.clang-format
    R flang/include/flang/lower/PFTBuilder.h
    R flang/include/flang/optimizer/.clang-format
    R flang/include/flang/parser/char-block.h
    R flang/include/flang/parser/char-buffer.h
    R flang/include/flang/parser/char-set.h
    R flang/include/flang/parser/characters.h
    R flang/include/flang/parser/dump-parse-tree.h
    R flang/include/flang/parser/format-specification.h
    R flang/include/flang/parser/instrumented-parser.h
    R flang/include/flang/parser/message.h
    R flang/include/flang/parser/parse-state.h
    R flang/include/flang/parser/parse-tree-visitor.h
    R flang/include/flang/parser/parse-tree.h
    R flang/include/flang/parser/parsing.h
    R flang/include/flang/parser/provenance.h
    R flang/include/flang/parser/source.h
    R flang/include/flang/parser/tools.h
    R flang/include/flang/parser/unparse.h
    R flang/include/flang/parser/user-state.h
    R flang/include/flang/semantics/attr.h
    R flang/include/flang/semantics/expression.h
    R flang/include/flang/semantics/scope.h
    R flang/include/flang/semantics/semantics.h
    R flang/include/flang/semantics/symbol.h
    R flang/include/flang/semantics/tools.h
    R flang/include/flang/semantics/type.h
    R flang/include/flang/semantics/unparse-with-symbols.h
    M flang/lib/CMakeLists.txt
    A flang/lib/Common/CMakeLists.txt
    A flang/lib/Common/Fortran-features.cpp
    A flang/lib/Common/Fortran.cpp
    A flang/lib/Common/default-kinds.cpp
    A flang/lib/Common/idioms.cpp
    A flang/lib/Decimal/CMakeLists.txt
    A flang/lib/Decimal/big-radix-floating-point.h
    A flang/lib/Decimal/binary-to-decimal.cpp
    A flang/lib/Decimal/decimal-to-binary.cpp
    A flang/lib/Evaluate/CMakeLists.txt
    A flang/lib/Evaluate/call.cpp
    A flang/lib/Evaluate/character.h
    A flang/lib/Evaluate/characteristics.cpp
    A flang/lib/Evaluate/check-expression.cpp
    A flang/lib/Evaluate/common.cpp
    A flang/lib/Evaluate/complex.cpp
    A flang/lib/Evaluate/constant.cpp
    A flang/lib/Evaluate/expression.cpp
    A flang/lib/Evaluate/fold-character.cpp
    A flang/lib/Evaluate/fold-complex.cpp
    A flang/lib/Evaluate/fold-implementation.h
    A flang/lib/Evaluate/fold-integer.cpp
    A flang/lib/Evaluate/fold-logical.cpp
    A flang/lib/Evaluate/fold-real.cpp
    A flang/lib/Evaluate/fold.cpp
    A flang/lib/Evaluate/formatting.cpp
    A flang/lib/Evaluate/host.cpp
    A flang/lib/Evaluate/host.h
    A flang/lib/Evaluate/int-power.h
    A flang/lib/Evaluate/integer.cpp
    A flang/lib/Evaluate/intrinsics-library-templates.h
    A flang/lib/Evaluate/intrinsics-library.cpp
    A flang/lib/Evaluate/intrinsics.cpp
    A flang/lib/Evaluate/logical.cpp
    A flang/lib/Evaluate/real.cpp
    A flang/lib/Evaluate/shape.cpp
    A flang/lib/Evaluate/static-data.cpp
    A flang/lib/Evaluate/tools.cpp
    A flang/lib/Evaluate/type.cpp
    A flang/lib/Evaluate/variable.cpp
    A flang/lib/Fir/.clang-format
    A flang/lib/Lower/.clang-format
    A flang/lib/Lower/CMakeLists.txt
    A flang/lib/Lower/PFTBuilder.cpp
    A flang/lib/Optimizer/.clang-format
    A flang/lib/Parser/CMakeLists.txt
    A flang/lib/Parser/Fortran-parsers.cpp
    A flang/lib/Parser/basic-parsers.h
    A flang/lib/Parser/char-block.cpp
    A flang/lib/Parser/char-buffer.cpp
    A flang/lib/Parser/char-set.cpp
    A flang/lib/Parser/characters.cpp
    A flang/lib/Parser/debug-parser.cpp
    A flang/lib/Parser/debug-parser.h
    A flang/lib/Parser/executable-parsers.cpp
    A flang/lib/Parser/expr-parsers.cpp
    A flang/lib/Parser/expr-parsers.h
    A flang/lib/Parser/instrumented-parser.cpp
    A flang/lib/Parser/io-parsers.cpp
    A flang/lib/Parser/message.cpp
    A flang/lib/Parser/misc-parsers.h
    A flang/lib/Parser/openmp-parsers.cpp
    A flang/lib/Parser/parse-tree.cpp
    A flang/lib/Parser/parsing.cpp
    A flang/lib/Parser/preprocessor.cpp
    A flang/lib/Parser/preprocessor.h
    A flang/lib/Parser/prescan.cpp
    A flang/lib/Parser/prescan.h
    A flang/lib/Parser/program-parsers.cpp
    A flang/lib/Parser/provenance.cpp
    A flang/lib/Parser/source.cpp
    A flang/lib/Parser/stmt-parser.h
    A flang/lib/Parser/token-parsers.h
    A flang/lib/Parser/token-sequence.cpp
    A flang/lib/Parser/token-sequence.h
    A flang/lib/Parser/tools.cpp
    A flang/lib/Parser/type-parser-implementation.h
    A flang/lib/Parser/type-parsers.h
    A flang/lib/Parser/unparse.cpp
    A flang/lib/Parser/user-state.cpp
    A flang/lib/Semantics/CMakeLists.txt
    A flang/lib/Semantics/assignment.cpp
    A flang/lib/Semantics/assignment.h
    A flang/lib/Semantics/attr.cpp
    A flang/lib/Semantics/canonicalize-do.cpp
    A flang/lib/Semantics/canonicalize-do.h
    A flang/lib/Semantics/canonicalize-omp.cpp
    A flang/lib/Semantics/canonicalize-omp.h
    A flang/lib/Semantics/check-allocate.cpp
    A flang/lib/Semantics/check-allocate.h
    A flang/lib/Semantics/check-arithmeticif.cpp
    A flang/lib/Semantics/check-arithmeticif.h
    A flang/lib/Semantics/check-call.cpp
    A flang/lib/Semantics/check-call.h
    A flang/lib/Semantics/check-coarray.cpp
    A flang/lib/Semantics/check-coarray.h
    A flang/lib/Semantics/check-data.cpp
    A flang/lib/Semantics/check-data.h
    A flang/lib/Semantics/check-deallocate.cpp
    A flang/lib/Semantics/check-deallocate.h
    A flang/lib/Semantics/check-declarations.cpp
    A flang/lib/Semantics/check-declarations.h
    A flang/lib/Semantics/check-do-forall.cpp
    A flang/lib/Semantics/check-do-forall.h
    A flang/lib/Semantics/check-if-stmt.cpp
    A flang/lib/Semantics/check-if-stmt.h
    A flang/lib/Semantics/check-io.cpp
    A flang/lib/Semantics/check-io.h
    A flang/lib/Semantics/check-nullify.cpp
    A flang/lib/Semantics/check-nullify.h
    A flang/lib/Semantics/check-omp-structure.cpp
    A flang/lib/Semantics/check-omp-structure.h
    A flang/lib/Semantics/check-purity.cpp
    A flang/lib/Semantics/check-purity.h
    A flang/lib/Semantics/check-return.cpp
    A flang/lib/Semantics/check-return.h
    A flang/lib/Semantics/check-stop.cpp
    A flang/lib/Semantics/check-stop.h
    A flang/lib/Semantics/expression.cpp
    A flang/lib/Semantics/mod-file.cpp
    A flang/lib/Semantics/mod-file.h
    A flang/lib/Semantics/pointer-assignment.cpp
    A flang/lib/Semantics/pointer-assignment.h
    A flang/lib/Semantics/program-tree.cpp
    A flang/lib/Semantics/program-tree.h
    A flang/lib/Semantics/resolve-labels.cpp
    A flang/lib/Semantics/resolve-labels.h
    A flang/lib/Semantics/resolve-names-utils.cpp
    A flang/lib/Semantics/resolve-names-utils.h
    A flang/lib/Semantics/resolve-names.cpp
    A flang/lib/Semantics/resolve-names.h
    A flang/lib/Semantics/rewrite-parse-tree.cpp
    A flang/lib/Semantics/rewrite-parse-tree.h
    A flang/lib/Semantics/scope.cpp
    A flang/lib/Semantics/semantics.cpp
    A flang/lib/Semantics/symbol.cpp
    A flang/lib/Semantics/tools.cpp
    A flang/lib/Semantics/type.cpp
    A flang/lib/Semantics/unparse-with-symbols.cpp
    R flang/lib/common/CMakeLists.txt
    R flang/lib/common/Fortran-features.cpp
    R flang/lib/common/Fortran.cpp
    R flang/lib/common/default-kinds.cpp
    R flang/lib/common/idioms.cpp
    R flang/lib/decimal/CMakeLists.txt
    R flang/lib/decimal/big-radix-floating-point.h
    R flang/lib/decimal/binary-to-decimal.cpp
    R flang/lib/decimal/decimal-to-binary.cpp
    R flang/lib/evaluate/CMakeLists.txt
    R flang/lib/evaluate/call.cpp
    R flang/lib/evaluate/character.h
    R flang/lib/evaluate/characteristics.cpp
    R flang/lib/evaluate/check-expression.cpp
    R flang/lib/evaluate/common.cpp
    R flang/lib/evaluate/complex.cpp
    R flang/lib/evaluate/constant.cpp
    R flang/lib/evaluate/expression.cpp
    R flang/lib/evaluate/fold-character.cpp
    R flang/lib/evaluate/fold-complex.cpp
    R flang/lib/evaluate/fold-implementation.h
    R flang/lib/evaluate/fold-integer.cpp
    R flang/lib/evaluate/fold-logical.cpp
    R flang/lib/evaluate/fold-real.cpp
    R flang/lib/evaluate/fold.cpp
    R flang/lib/evaluate/formatting.cpp
    R flang/lib/evaluate/host.cpp
    R flang/lib/evaluate/host.h
    R flang/lib/evaluate/int-power.h
    R flang/lib/evaluate/integer.cpp
    R flang/lib/evaluate/intrinsics-library-templates.h
    R flang/lib/evaluate/intrinsics-library.cpp
    R flang/lib/evaluate/intrinsics.cpp
    R flang/lib/evaluate/logical.cpp
    R flang/lib/evaluate/real.cpp
    R flang/lib/evaluate/shape.cpp
    R flang/lib/evaluate/static-data.cpp
    R flang/lib/evaluate/tools.cpp
    R flang/lib/evaluate/type.cpp
    R flang/lib/evaluate/variable.cpp
    R flang/lib/fir/.clang-format
    R flang/lib/lower/.clang-format
    R flang/lib/lower/CMakeLists.txt
    R flang/lib/lower/PFTBuilder.cpp
    R flang/lib/optimizer/.clang-format
    R flang/lib/parser/CMakeLists.txt
    R flang/lib/parser/Fortran-parsers.cpp
    R flang/lib/parser/basic-parsers.h
    R flang/lib/parser/char-block.cpp
    R flang/lib/parser/char-buffer.cpp
    R flang/lib/parser/char-set.cpp
    R flang/lib/parser/characters.cpp
    R flang/lib/parser/debug-parser.cpp
    R flang/lib/parser/debug-parser.h
    R flang/lib/parser/executable-parsers.cpp
    R flang/lib/parser/expr-parsers.cpp
    R flang/lib/parser/expr-parsers.h
    R flang/lib/parser/instrumented-parser.cpp
    R flang/lib/parser/io-parsers.cpp
    R flang/lib/parser/message.cpp
    R flang/lib/parser/misc-parsers.h
    R flang/lib/parser/openmp-parsers.cpp
    R flang/lib/parser/parse-tree.cpp
    R flang/lib/parser/parsing.cpp
    R flang/lib/parser/preprocessor.cpp
    R flang/lib/parser/preprocessor.h
    R flang/lib/parser/prescan.cpp
    R flang/lib/parser/prescan.h
    R flang/lib/parser/program-parsers.cpp
    R flang/lib/parser/provenance.cpp
    R flang/lib/parser/source.cpp
    R flang/lib/parser/stmt-parser.h
    R flang/lib/parser/token-parsers.h
    R flang/lib/parser/token-sequence.cpp
    R flang/lib/parser/token-sequence.h
    R flang/lib/parser/tools.cpp
    R flang/lib/parser/type-parser-implementation.h
    R flang/lib/parser/type-parsers.h
    R flang/lib/parser/unparse.cpp
    R flang/lib/parser/user-state.cpp
    R flang/lib/semantics/CMakeLists.txt
    R flang/lib/semantics/assignment.cpp
    R flang/lib/semantics/assignment.h
    R flang/lib/semantics/attr.cpp
    R flang/lib/semantics/canonicalize-do.cpp
    R flang/lib/semantics/canonicalize-do.h
    R flang/lib/semantics/canonicalize-omp.cpp
    R flang/lib/semantics/canonicalize-omp.h
    R flang/lib/semantics/check-allocate.cpp
    R flang/lib/semantics/check-allocate.h
    R flang/lib/semantics/check-arithmeticif.cpp
    R flang/lib/semantics/check-arithmeticif.h
    R flang/lib/semantics/check-call.cpp
    R flang/lib/semantics/check-call.h
    R flang/lib/semantics/check-coarray.cpp
    R flang/lib/semantics/check-coarray.h
    R flang/lib/semantics/check-data.cpp
    R flang/lib/semantics/check-data.h
    R flang/lib/semantics/check-deallocate.cpp
    R flang/lib/semantics/check-deallocate.h
    R flang/lib/semantics/check-declarations.cpp
    R flang/lib/semantics/check-declarations.h
    R flang/lib/semantics/check-do-forall.cpp
    R flang/lib/semantics/check-do-forall.h
    R flang/lib/semantics/check-if-stmt.cpp
    R flang/lib/semantics/check-if-stmt.h
    R flang/lib/semantics/check-io.cpp
    R flang/lib/semantics/check-io.h
    R flang/lib/semantics/check-nullify.cpp
    R flang/lib/semantics/check-nullify.h
    R flang/lib/semantics/check-omp-structure.cpp
    R flang/lib/semantics/check-omp-structure.h
    R flang/lib/semantics/check-purity.cpp
    R flang/lib/semantics/check-purity.h
    R flang/lib/semantics/check-return.cpp
    R flang/lib/semantics/check-return.h
    R flang/lib/semantics/check-stop.cpp
    R flang/lib/semantics/check-stop.h
    R flang/lib/semantics/expression.cpp
    R flang/lib/semantics/mod-file.cpp
    R flang/lib/semantics/mod-file.h
    R flang/lib/semantics/pointer-assignment.cpp
    R flang/lib/semantics/pointer-assignment.h
    R flang/lib/semantics/program-tree.cpp
    R flang/lib/semantics/program-tree.h
    R flang/lib/semantics/resolve-labels.cpp
    R flang/lib/semantics/resolve-labels.h
    R flang/lib/semantics/resolve-names-utils.cpp
    R flang/lib/semantics/resolve-names-utils.h
    R flang/lib/semantics/resolve-names.cpp
    R flang/lib/semantics/resolve-names.h
    R flang/lib/semantics/rewrite-parse-tree.cpp
    R flang/lib/semantics/rewrite-parse-tree.h
    R flang/lib/semantics/scope.cpp
    R flang/lib/semantics/semantics.cpp
    R flang/lib/semantics/symbol.cpp
    R flang/lib/semantics/tools.cpp
    R flang/lib/semantics/type.cpp
    R flang/lib/semantics/unparse-with-symbols.cpp
    M flang/runtime/descriptor.cpp
    M flang/runtime/environment.h
    M flang/runtime/format-implementation.h
    M flang/runtime/format.h
    M flang/runtime/numeric-output.cpp
    M flang/runtime/numeric-output.h
    M flang/runtime/transformational.cpp
    M flang/runtime/type-code.h
    A flang/test-lit/Driver/version_test.f90
    A flang/test-lit/Lower/pre-fir-tree01.f90
    A flang/test-lit/Lower/pre-fir-tree02.f90
    A flang/test-lit/Lower/pre-fir-tree03.f90
    A flang/test-lit/Lower/pre-fir-tree04.f90
    R flang/test-lit/driver/version_test.f90
    R flang/test-lit/lower/pre-fir-tree01.f90
    R flang/test-lit/lower/pre-fir-tree02.f90
    R flang/test-lit/lower/pre-fir-tree03.f90
    R flang/test-lit/lower/pre-fir-tree04.f90
    M flang/test/CMakeLists.txt
    A flang/test/Decimal/CMakeLists.txt
    A flang/test/Decimal/quick-sanity-test.cpp
    A flang/test/Decimal/thorough-test.cpp
    A flang/test/Evaluate/CMakeLists.txt
    A flang/test/Evaluate/ISO-Fortran-binding.cpp
    A flang/test/Evaluate/bit-population-count.cpp
    A flang/test/Evaluate/expression.cpp
    A flang/test/Evaluate/folding.cpp
    A flang/test/Evaluate/folding01.f90
    A flang/test/Evaluate/folding02.f90
    A flang/test/Evaluate/folding03.f90
    A flang/test/Evaluate/folding04.f90
    A flang/test/Evaluate/folding05.f90
    A flang/test/Evaluate/folding06.f90
    A flang/test/Evaluate/folding07.f90
    A flang/test/Evaluate/folding08.f90
    A flang/test/Evaluate/folding09.f90
    A flang/test/Evaluate/fp-testing.cpp
    A flang/test/Evaluate/fp-testing.h
    A flang/test/Evaluate/integer.cpp
    A flang/test/Evaluate/intrinsics.cpp
    A flang/test/Evaluate/leading-zero-bit-count.cpp
    A flang/test/Evaluate/logical.cpp
    A flang/test/Evaluate/real.cpp
    A flang/test/Evaluate/reshape.cpp
    A flang/test/Evaluate/test_folding.sh
    A flang/test/Evaluate/testing.cpp
    A flang/test/Evaluate/testing.h
    A flang/test/Evaluate/uint128.cpp
    A flang/test/Preprocessing/pp001.F
    A flang/test/Preprocessing/pp002.F
    A flang/test/Preprocessing/pp003.F
    A flang/test/Preprocessing/pp004.F
    A flang/test/Preprocessing/pp005.F
    A flang/test/Preprocessing/pp006.F
    A flang/test/Preprocessing/pp007.F
    A flang/test/Preprocessing/pp008.F
    A flang/test/Preprocessing/pp009.F
    A flang/test/Preprocessing/pp010.F
    A flang/test/Preprocessing/pp011.F
    A flang/test/Preprocessing/pp012.F
    A flang/test/Preprocessing/pp013.F
    A flang/test/Preprocessing/pp014.F
    A flang/test/Preprocessing/pp015.F
    A flang/test/Preprocessing/pp016.F
    A flang/test/Preprocessing/pp017.F
    A flang/test/Preprocessing/pp018.F
    A flang/test/Preprocessing/pp019.F
    A flang/test/Preprocessing/pp020.F
    A flang/test/Preprocessing/pp021.F
    A flang/test/Preprocessing/pp022.F
    A flang/test/Preprocessing/pp023.F
    A flang/test/Preprocessing/pp024.F
    A flang/test/Preprocessing/pp025.F
    A flang/test/Preprocessing/pp026.F
    A flang/test/Preprocessing/pp027.F
    A flang/test/Preprocessing/pp028.F
    A flang/test/Preprocessing/pp029.F
    A flang/test/Preprocessing/pp030.F
    A flang/test/Preprocessing/pp031.F
    A flang/test/Preprocessing/pp032.F
    A flang/test/Preprocessing/pp033.F
    A flang/test/Preprocessing/pp034.F
    A flang/test/Preprocessing/pp035.F
    A flang/test/Preprocessing/pp036.F
    A flang/test/Preprocessing/pp037.F
    A flang/test/Preprocessing/pp038.F
    A flang/test/Preprocessing/pp039.F
    A flang/test/Preprocessing/pp040.F
    A flang/test/Preprocessing/pp041.F
    A flang/test/Preprocessing/pp042.F
    A flang/test/Preprocessing/pp043.F
    A flang/test/Preprocessing/pp044.F
    A flang/test/Preprocessing/pp101.F90
    A flang/test/Preprocessing/pp102.F90
    A flang/test/Preprocessing/pp103.F90
    A flang/test/Preprocessing/pp104.F90
    A flang/test/Preprocessing/pp105.F90
    A flang/test/Preprocessing/pp106.F90
    A flang/test/Preprocessing/pp107.F90
    A flang/test/Preprocessing/pp108.F90
    A flang/test/Preprocessing/pp109.F90
    A flang/test/Preprocessing/pp110.F90
    A flang/test/Preprocessing/pp111.F90
    A flang/test/Preprocessing/pp112.F90
    A flang/test/Preprocessing/pp113.F90
    A flang/test/Preprocessing/pp114.F90
    A flang/test/Preprocessing/pp115.F90
    A flang/test/Preprocessing/pp116.F90
    A flang/test/Preprocessing/pp117.F90
    A flang/test/Preprocessing/pp118.F90
    A flang/test/Preprocessing/pp119.F90
    A flang/test/Preprocessing/pp120.F90
    A flang/test/Preprocessing/pp121.F90
    A flang/test/Preprocessing/pp122.F90
    A flang/test/Preprocessing/pp123.F90
    A flang/test/Preprocessing/pp124.F90
    A flang/test/Preprocessing/pp125.F90
    A flang/test/Preprocessing/pp126.F90
    A flang/test/Preprocessing/pp127.F90
    A flang/test/Preprocessing/pp128.F90
    A flang/test/Preprocessing/pp129.F90
    A flang/test/Preprocessing/pp130.F90
    A flang/test/Runtime/CMakeLists.txt
    A flang/test/Runtime/external-hello.cpp
    A flang/test/Runtime/format.cpp
    A flang/test/Runtime/hello.cpp
    A flang/test/Semantics/CMakeLists.txt
    A flang/test/Semantics/allocate01.f90
    A flang/test/Semantics/allocate02.f90
    A flang/test/Semantics/allocate03.f90
    A flang/test/Semantics/allocate04.f90
    A flang/test/Semantics/allocate05.f90
    A flang/test/Semantics/allocate06.f90
    A flang/test/Semantics/allocate07.f90
    A flang/test/Semantics/allocate08.f90
    A flang/test/Semantics/allocate09.f90
    A flang/test/Semantics/allocate10.f90
    A flang/test/Semantics/allocate11.f90
    A flang/test/Semantics/allocate12.f90
    A flang/test/Semantics/allocate13.f90
    A flang/test/Semantics/altreturn01.f90
    A flang/test/Semantics/altreturn02.f90
    A flang/test/Semantics/altreturn03.f90
    A flang/test/Semantics/altreturn04.f90
    A flang/test/Semantics/altreturn05.f90
    A flang/test/Semantics/assign01.f90
    A flang/test/Semantics/assign02.f90
    A flang/test/Semantics/assign03.f90
    A flang/test/Semantics/bad-forward-type.f90
    A flang/test/Semantics/bindings01.f90
    A flang/test/Semantics/block-data01.f90
    A flang/test/Semantics/blockconstruct01.f90
    A flang/test/Semantics/blockconstruct02.f90
    A flang/test/Semantics/blockconstruct03.f90
    A flang/test/Semantics/c_f_pointer.f90
    A flang/test/Semantics/call01.f90
    A flang/test/Semantics/call02.f90
    A flang/test/Semantics/call03.f90
    A flang/test/Semantics/call04.f90
    A flang/test/Semantics/call05.f90
    A flang/test/Semantics/call06.f90
    A flang/test/Semantics/call07.f90
    A flang/test/Semantics/call08.f90
    A flang/test/Semantics/call09.f90
    A flang/test/Semantics/call10.f90
    A flang/test/Semantics/call11.f90
    A flang/test/Semantics/call12.f90
    A flang/test/Semantics/call13.f90
    A flang/test/Semantics/call14.f90
    A flang/test/Semantics/call15.f90
    A flang/test/Semantics/canondo01.f90
    A flang/test/Semantics/canondo02.f90
    A flang/test/Semantics/canondo03.f90
    A flang/test/Semantics/canondo04.f90
    A flang/test/Semantics/canondo05.f90
    A flang/test/Semantics/canondo06.f90
    A flang/test/Semantics/canondo07.f90
    A flang/test/Semantics/canondo08.f90
    A flang/test/Semantics/canondo09.f90
    A flang/test/Semantics/canondo10.f90
    A flang/test/Semantics/canondo11.f90
    A flang/test/Semantics/canondo12.f90
    A flang/test/Semantics/canondo13.f90
    A flang/test/Semantics/canondo14.f90
    A flang/test/Semantics/canondo15.f90
    A flang/test/Semantics/canondo16.f90
    A flang/test/Semantics/canondo17.f90
    A flang/test/Semantics/canondo18.f90
    A flang/test/Semantics/canondo19.f90
    A flang/test/Semantics/coarrays01.f90
    A flang/test/Semantics/common.sh
    A flang/test/Semantics/computed-goto01.f90
    A flang/test/Semantics/computed-goto02.f90
    A flang/test/Semantics/critical01.f90
    A flang/test/Semantics/critical02.f90
    A flang/test/Semantics/critical03.f90
    A flang/test/Semantics/critical04.f90
    A flang/test/Semantics/data01.f90
    A flang/test/Semantics/deallocate01.f90
    A flang/test/Semantics/deallocate04.f90
    A flang/test/Semantics/deallocate05.f90
    A flang/test/Semantics/doconcurrent01.f90
    A flang/test/Semantics/doconcurrent02.f90
    A flang/test/Semantics/doconcurrent03.f90
    A flang/test/Semantics/doconcurrent04.f90
    A flang/test/Semantics/doconcurrent05.f90
    A flang/test/Semantics/doconcurrent06.f90
    A flang/test/Semantics/doconcurrent07.f90
    A flang/test/Semantics/doconcurrent08.f90
    A flang/test/Semantics/dosemantics01.f90
    A flang/test/Semantics/dosemantics02.f90
    A flang/test/Semantics/dosemantics03.f90
    A flang/test/Semantics/dosemantics04.f90
    A flang/test/Semantics/dosemantics05.f90
    A flang/test/Semantics/dosemantics06.f90
    A flang/test/Semantics/dosemantics07.f90
    A flang/test/Semantics/dosemantics08.f90
    A flang/test/Semantics/dosemantics09.f90
    A flang/test/Semantics/dosemantics10.f90
    A flang/test/Semantics/dosemantics11.f90
    A flang/test/Semantics/dosemantics12.f90
    A flang/test/Semantics/equivalence01.f90
    A flang/test/Semantics/expr-errors01.f90
    A flang/test/Semantics/expr-errors02.f90
    A flang/test/Semantics/forall01.f90
    A flang/test/Semantics/getdefinition01.f90
    A flang/test/Semantics/getdefinition02.f
    A flang/test/Semantics/getdefinition03-a.f90
    A flang/test/Semantics/getdefinition03-b.f90
    A flang/test/Semantics/getdefinition04.f90
    A flang/test/Semantics/getdefinition05.f90
    A flang/test/Semantics/getsymbols01.f90
    A flang/test/Semantics/getsymbols02-a.f90
    A flang/test/Semantics/getsymbols02-b.f90
    A flang/test/Semantics/getsymbols02-c.f90
    A flang/test/Semantics/getsymbols03-a.f90
    A flang/test/Semantics/getsymbols03-b.f90
    A flang/test/Semantics/getsymbols04.f90
    A flang/test/Semantics/getsymbols05.f90
    A flang/test/Semantics/if_arith01.f90
    A flang/test/Semantics/if_arith02.f90
    A flang/test/Semantics/if_arith03.f90
    A flang/test/Semantics/if_arith04.f90
    A flang/test/Semantics/if_construct01.f90
    A flang/test/Semantics/if_construct02.f90
    A flang/test/Semantics/if_stmt01.f90
    A flang/test/Semantics/if_stmt02.f90
    A flang/test/Semantics/if_stmt03.f90
    A flang/test/Semantics/implicit01.f90
    A flang/test/Semantics/implicit02.f90
    A flang/test/Semantics/implicit03.f90
    A flang/test/Semantics/implicit04.f90
    A flang/test/Semantics/implicit05.f90
    A flang/test/Semantics/implicit06.f90
    A flang/test/Semantics/implicit07.f90
    A flang/test/Semantics/implicit08.f90
    A flang/test/Semantics/init01.f90
    A flang/test/Semantics/int-literals.f90
    A flang/test/Semantics/io01.f90
    A flang/test/Semantics/io02.f90
    A flang/test/Semantics/io03.f90
    A flang/test/Semantics/io04.f90
    A flang/test/Semantics/io05.f90
    A flang/test/Semantics/io06.f90
    A flang/test/Semantics/io07.f90
    A flang/test/Semantics/io08.f90
    A flang/test/Semantics/io09.f90
    A flang/test/Semantics/io10.f90
    A flang/test/Semantics/kinds01.f90
    A flang/test/Semantics/kinds02.f90
    A flang/test/Semantics/kinds03.f90
    A flang/test/Semantics/label01.F90
    A flang/test/Semantics/label02.f90
    A flang/test/Semantics/label03.f90
    A flang/test/Semantics/label04.f90
    A flang/test/Semantics/label05.f90
    A flang/test/Semantics/label06.f90
    A flang/test/Semantics/label07.f90
    A flang/test/Semantics/label08.f90
    A flang/test/Semantics/label09.f90
    A flang/test/Semantics/label10.f90
    A flang/test/Semantics/label11.f90
    A flang/test/Semantics/label12.f90
    A flang/test/Semantics/label13.f90
    A flang/test/Semantics/label14.f90
    A flang/test/Semantics/misc-declarations.f90
    A flang/test/Semantics/modfile01.f90
    A flang/test/Semantics/modfile02.f90
    A flang/test/Semantics/modfile03.f90
    A flang/test/Semantics/modfile04.f90
    A flang/test/Semantics/modfile05.f90
    A flang/test/Semantics/modfile06.f90
    A flang/test/Semantics/modfile07.f90
    A flang/test/Semantics/modfile08.f90
    A flang/test/Semantics/modfile09-a.f90
    A flang/test/Semantics/modfile09-b.f90
    A flang/test/Semantics/modfile09-c.f90
    A flang/test/Semantics/modfile09-d.f90
    A flang/test/Semantics/modfile10.f90
    A flang/test/Semantics/modfile11.f90
    A flang/test/Semantics/modfile12.f90
    A flang/test/Semantics/modfile13.f90
    A flang/test/Semantics/modfile14.f90
    A flang/test/Semantics/modfile15.f90
    A flang/test/Semantics/modfile16.f90
    A flang/test/Semantics/modfile17.f90
    A flang/test/Semantics/modfile18.f90
    A flang/test/Semantics/modfile19.f90
    A flang/test/Semantics/modfile20.f90
    A flang/test/Semantics/modfile21.f90
    A flang/test/Semantics/modfile22.f90
    A flang/test/Semantics/modfile23.f90
    A flang/test/Semantics/modfile24.f90
    A flang/test/Semantics/modfile25.f90
    A flang/test/Semantics/modfile26.f90
    A flang/test/Semantics/modfile27.f90
    A flang/test/Semantics/modfile28.f90
    A flang/test/Semantics/modfile29.f90
    A flang/test/Semantics/modfile30.f90
    A flang/test/Semantics/modfile31.f90
    A flang/test/Semantics/modfile32.f90
    A flang/test/Semantics/modfile33.f90
    A flang/test/Semantics/modfile34.f90
    A flang/test/Semantics/modfile35.f90
    A flang/test/Semantics/null01.f90
    A flang/test/Semantics/nullify01.f90
    A flang/test/Semantics/nullify02.f90
    A flang/test/Semantics/omp-atomic.f90
    A flang/test/Semantics/omp-clause-validity01.f90
    A flang/test/Semantics/omp-declarative-directive.f90
    A flang/test/Semantics/omp-device-constructs.f90
    A flang/test/Semantics/omp-loop-association.f90
    A flang/test/Semantics/omp-nested01.f90
    A flang/test/Semantics/omp-resolve01.f90
    A flang/test/Semantics/omp-resolve02.f90
    A flang/test/Semantics/omp-resolve03.f90
    A flang/test/Semantics/omp-resolve04.f90
    A flang/test/Semantics/omp-resolve05.f90
    A flang/test/Semantics/omp-symbol01.f90
    A flang/test/Semantics/omp-symbol02.f90
    A flang/test/Semantics/omp-symbol03.f90
    A flang/test/Semantics/omp-symbol04.f90
    A flang/test/Semantics/omp-symbol05.f90
    A flang/test/Semantics/omp-symbol06.f90
    A flang/test/Semantics/omp-symbol07.f90
    A flang/test/Semantics/omp-symbol08.f90
    A flang/test/Semantics/procinterface01.f90
    A flang/test/Semantics/resolve01.f90
    A flang/test/Semantics/resolve02.f90
    A flang/test/Semantics/resolve03.f90
    A flang/test/Semantics/resolve04.f90
    A flang/test/Semantics/resolve05.f90
    A flang/test/Semantics/resolve06.f90
    A flang/test/Semantics/resolve07.f90
    A flang/test/Semantics/resolve08.f90
    A flang/test/Semantics/resolve09.f90
    A flang/test/Semantics/resolve10.f90
    A flang/test/Semantics/resolve11.f90
    A flang/test/Semantics/resolve12.f90
    A flang/test/Semantics/resolve13.f90
    A flang/test/Semantics/resolve14.f90
    A flang/test/Semantics/resolve15.f90
    A flang/test/Semantics/resolve16.f90
    A flang/test/Semantics/resolve17.f90
    A flang/test/Semantics/resolve18.f90
    A flang/test/Semantics/resolve19.f90
    A flang/test/Semantics/resolve20.f90
    A flang/test/Semantics/resolve21.f90
    A flang/test/Semantics/resolve22.f90
    A flang/test/Semantics/resolve23.f90
    A flang/test/Semantics/resolve24.f90
    A flang/test/Semantics/resolve25.f90
    A flang/test/Semantics/resolve26.f90
    A flang/test/Semantics/resolve27.f90
    A flang/test/Semantics/resolve28.f90
    A flang/test/Semantics/resolve29.f90
    A flang/test/Semantics/resolve30.f90
    A flang/test/Semantics/resolve31.f90
    A flang/test/Semantics/resolve32.f90
    A flang/test/Semantics/resolve33.f90
    A flang/test/Semantics/resolve34.f90
    A flang/test/Semantics/resolve35.f90
    A flang/test/Semantics/resolve36.f90
    A flang/test/Semantics/resolve37.f90
    A flang/test/Semantics/resolve38.f90
    A flang/test/Semantics/resolve39.f90
    A flang/test/Semantics/resolve40.f90
    A flang/test/Semantics/resolve41.f90
    A flang/test/Semantics/resolve42.f90
    A flang/test/Semantics/resolve43.f90
    A flang/test/Semantics/resolve44.f90
    A flang/test/Semantics/resolve45.f90
    A flang/test/Semantics/resolve46.f90
    A flang/test/Semantics/resolve47.f90
    A flang/test/Semantics/resolve48.f90
    A flang/test/Semantics/resolve49.f90
    A flang/test/Semantics/resolve50.f90
    A flang/test/Semantics/resolve51.f90
    A flang/test/Semantics/resolve52.f90
    A flang/test/Semantics/resolve53.f90
    A flang/test/Semantics/resolve54.f90
    A flang/test/Semantics/resolve55.f90
    A flang/test/Semantics/resolve56.f90
    A flang/test/Semantics/resolve57.f90
    A flang/test/Semantics/resolve58.f90
    A flang/test/Semantics/resolve59.f90
    A flang/test/Semantics/resolve60.f90
    A flang/test/Semantics/resolve61.f90
    A flang/test/Semantics/resolve62.f90
    A flang/test/Semantics/resolve63.f90
    A flang/test/Semantics/resolve64.f90
    A flang/test/Semantics/resolve65.f90
    A flang/test/Semantics/resolve66.f90
    A flang/test/Semantics/resolve67.f90
    A flang/test/Semantics/resolve68.f90
    A flang/test/Semantics/resolve69.f90
    A flang/test/Semantics/resolve70.f90
    A flang/test/Semantics/resolve71.f90
    A flang/test/Semantics/resolve72.f90
    A flang/test/Semantics/separate-module-procs.f90
    A flang/test/Semantics/stop01.f90
    A flang/test/Semantics/structconst01.f90
    A flang/test/Semantics/structconst02.f90
    A flang/test/Semantics/structconst03.f90
    A flang/test/Semantics/structconst04.f90
    A flang/test/Semantics/symbol01.f90
    A flang/test/Semantics/symbol02.f90
    A flang/test/Semantics/symbol03.f90
    A flang/test/Semantics/symbol05.f90
    A flang/test/Semantics/symbol06.f90
    A flang/test/Semantics/symbol07.f90
    A flang/test/Semantics/symbol08.f90
    A flang/test/Semantics/symbol09.f90
    A flang/test/Semantics/symbol10.f90
    A flang/test/Semantics/symbol11.f90
    A flang/test/Semantics/symbol12.f90
    A flang/test/Semantics/symbol13.f90
    A flang/test/Semantics/symbol14.f90
    A flang/test/Semantics/symbol15.f90
    A flang/test/Semantics/symbol16.f90
    A flang/test/Semantics/symbol17.f90
    A flang/test/Semantics/test_any.sh
    A flang/test/Semantics/test_errors.sh
    A flang/test/Semantics/test_modfile.sh
    A flang/test/Semantics/test_symbols.sh
    R flang/test/decimal/CMakeLists.txt
    R flang/test/decimal/quick-sanity-test.cpp
    R flang/test/decimal/thorough-test.cpp
    R flang/test/evaluate/CMakeLists.txt
    R flang/test/evaluate/ISO-Fortran-binding.cpp
    R flang/test/evaluate/bit-population-count.cpp
    R flang/test/evaluate/expression.cpp
    R flang/test/evaluate/folding.cpp
    R flang/test/evaluate/folding01.f90
    R flang/test/evaluate/folding02.f90
    R flang/test/evaluate/folding03.f90
    R flang/test/evaluate/folding04.f90
    R flang/test/evaluate/folding05.f90
    R flang/test/evaluate/folding06.f90
    R flang/test/evaluate/folding07.f90
    R flang/test/evaluate/folding08.f90
    R flang/test/evaluate/folding09.f90
    R flang/test/evaluate/fp-testing.cpp
    R flang/test/evaluate/fp-testing.h
    R flang/test/evaluate/integer.cpp
    R flang/test/evaluate/intrinsics.cpp
    R flang/test/evaluate/leading-zero-bit-count.cpp
    R flang/test/evaluate/logical.cpp
    R flang/test/evaluate/real.cpp
    R flang/test/evaluate/reshape.cpp
    R flang/test/evaluate/test_folding.sh
    R flang/test/evaluate/testing.cpp
    R flang/test/evaluate/testing.h
    R flang/test/evaluate/uint128.cpp
    R flang/test/preprocessing/pp001.F
    R flang/test/preprocessing/pp002.F
    R flang/test/preprocessing/pp003.F
    R flang/test/preprocessing/pp004.F
    R flang/test/preprocessing/pp005.F
    R flang/test/preprocessing/pp006.F
    R flang/test/preprocessing/pp007.F
    R flang/test/preprocessing/pp008.F
    R flang/test/preprocessing/pp009.F
    R flang/test/preprocessing/pp010.F
    R flang/test/preprocessing/pp011.F
    R flang/test/preprocessing/pp012.F
    R flang/test/preprocessing/pp013.F
    R flang/test/preprocessing/pp014.F
    R flang/test/preprocessing/pp015.F
    R flang/test/preprocessing/pp016.F
    R flang/test/preprocessing/pp017.F
    R flang/test/preprocessing/pp018.F
    R flang/test/preprocessing/pp019.F
    R flang/test/preprocessing/pp020.F
    R flang/test/preprocessing/pp021.F
    R flang/test/preprocessing/pp022.F
    R flang/test/preprocessing/pp023.F
    R flang/test/preprocessing/pp024.F
    R flang/test/preprocessing/pp025.F
    R flang/test/preprocessing/pp026.F
    R flang/test/preprocessing/pp027.F
    R flang/test/preprocessing/pp028.F
    R flang/test/preprocessing/pp029.F
    R flang/test/preprocessing/pp030.F
    R flang/test/preprocessing/pp031.F
    R flang/test/preprocessing/pp032.F
    R flang/test/preprocessing/pp033.F
    R flang/test/preprocessing/pp034.F
    R flang/test/preprocessing/pp035.F
    R flang/test/preprocessing/pp036.F
    R flang/test/preprocessing/pp037.F
    R flang/test/preprocessing/pp038.F
    R flang/test/preprocessing/pp039.F
    R flang/test/preprocessing/pp040.F
    R flang/test/preprocessing/pp041.F
    R flang/test/preprocessing/pp042.F
    R flang/test/preprocessing/pp043.F
    R flang/test/preprocessing/pp044.F
    R flang/test/preprocessing/pp101.F90
    R flang/test/preprocessing/pp102.F90
    R flang/test/preprocessing/pp103.F90
    R flang/test/preprocessing/pp104.F90
    R flang/test/preprocessing/pp105.F90
    R flang/test/preprocessing/pp106.F90
    R flang/test/preprocessing/pp107.F90
    R flang/test/preprocessing/pp108.F90
    R flang/test/preprocessing/pp109.F90
    R flang/test/preprocessing/pp110.F90
    R flang/test/preprocessing/pp111.F90
    R flang/test/preprocessing/pp112.F90
    R flang/test/preprocessing/pp113.F90
    R flang/test/preprocessing/pp114.F90
    R flang/test/preprocessing/pp115.F90
    R flang/test/preprocessing/pp116.F90
    R flang/test/preprocessing/pp117.F90
    R flang/test/preprocessing/pp118.F90
    R flang/test/preprocessing/pp119.F90
    R flang/test/preprocessing/pp120.F90
    R flang/test/preprocessing/pp121.F90
    R flang/test/preprocessing/pp122.F90
    R flang/test/preprocessing/pp123.F90
    R flang/test/preprocessing/pp124.F90
    R flang/test/preprocessing/pp125.F90
    R flang/test/preprocessing/pp126.F90
    R flang/test/preprocessing/pp127.F90
    R flang/test/preprocessing/pp128.F90
    R flang/test/preprocessing/pp129.F90
    R flang/test/preprocessing/pp130.F90
    R flang/test/runtime/CMakeLists.txt
    R flang/test/runtime/external-hello.cpp
    R flang/test/runtime/format.cpp
    R flang/test/runtime/hello.cpp
    R flang/test/semantics/CMakeLists.txt
    R flang/test/semantics/allocate01.f90
    R flang/test/semantics/allocate02.f90
    R flang/test/semantics/allocate03.f90
    R flang/test/semantics/allocate04.f90
    R flang/test/semantics/allocate05.f90
    R flang/test/semantics/allocate06.f90
    R flang/test/semantics/allocate07.f90
    R flang/test/semantics/allocate08.f90
    R flang/test/semantics/allocate09.f90
    R flang/test/semantics/allocate10.f90
    R flang/test/semantics/allocate11.f90
    R flang/test/semantics/allocate12.f90
    R flang/test/semantics/allocate13.f90
    R flang/test/semantics/altreturn01.f90
    R flang/test/semantics/altreturn02.f90
    R flang/test/semantics/altreturn03.f90
    R flang/test/semantics/altreturn04.f90
    R flang/test/semantics/altreturn05.f90
    R flang/test/semantics/assign01.f90
    R flang/test/semantics/assign02.f90
    R flang/test/semantics/assign03.f90
    R flang/test/semantics/bad-forward-type.f90
    R flang/test/semantics/bindings01.f90
    R flang/test/semantics/block-data01.f90
    R flang/test/semantics/blockconstruct01.f90
    R flang/test/semantics/blockconstruct02.f90
    R flang/test/semantics/blockconstruct03.f90
    R flang/test/semantics/c_f_pointer.f90
    R flang/test/semantics/call01.f90
    R flang/test/semantics/call02.f90
    R flang/test/semantics/call03.f90
    R flang/test/semantics/call04.f90
    R flang/test/semantics/call05.f90
    R flang/test/semantics/call06.f90
    R flang/test/semantics/call07.f90
    R flang/test/semantics/call08.f90
    R flang/test/semantics/call09.f90
    R flang/test/semantics/call10.f90
    R flang/test/semantics/call11.f90
    R flang/test/semantics/call12.f90
    R flang/test/semantics/call13.f90
    R flang/test/semantics/call14.f90
    R flang/test/semantics/call15.f90
    R flang/test/semantics/canondo01.f90
    R flang/test/semantics/canondo02.f90
    R flang/test/semantics/canondo03.f90
    R flang/test/semantics/canondo04.f90
    R flang/test/semantics/canondo05.f90
    R flang/test/semantics/canondo06.f90
    R flang/test/semantics/canondo07.f90
    R flang/test/semantics/canondo08.f90
    R flang/test/semantics/canondo09.f90
    R flang/test/semantics/canondo10.f90
    R flang/test/semantics/canondo11.f90
    R flang/test/semantics/canondo12.f90
    R flang/test/semantics/canondo13.f90
    R flang/test/semantics/canondo14.f90
    R flang/test/semantics/canondo15.f90
    R flang/test/semantics/canondo16.f90
    R flang/test/semantics/canondo17.f90
    R flang/test/semantics/canondo18.f90
    R flang/test/semantics/canondo19.f90
    R flang/test/semantics/coarrays01.f90
    R flang/test/semantics/common.sh
    R flang/test/semantics/computed-goto01.f90
    R flang/test/semantics/computed-goto02.f90
    R flang/test/semantics/critical01.f90
    R flang/test/semantics/critical02.f90
    R flang/test/semantics/critical03.f90
    R flang/test/semantics/critical04.f90
    R flang/test/semantics/data01.f90
    R flang/test/semantics/deallocate01.f90
    R flang/test/semantics/deallocate04.f90
    R flang/test/semantics/deallocate05.f90
    R flang/test/semantics/doconcurrent01.f90
    R flang/test/semantics/doconcurrent02.f90
    R flang/test/semantics/doconcurrent03.f90
    R flang/test/semantics/doconcurrent04.f90
    R flang/test/semantics/doconcurrent05.f90
    R flang/test/semantics/doconcurrent06.f90
    R flang/test/semantics/doconcurrent07.f90
    R flang/test/semantics/doconcurrent08.f90
    R flang/test/semantics/dosemantics01.f90
    R flang/test/semantics/dosemantics02.f90
    R flang/test/semantics/dosemantics03.f90
    R flang/test/semantics/dosemantics04.f90
    R flang/test/semantics/dosemantics05.f90
    R flang/test/semantics/dosemantics06.f90
    R flang/test/semantics/dosemantics07.f90
    R flang/test/semantics/dosemantics08.f90
    R flang/test/semantics/dosemantics09.f90
    R flang/test/semantics/dosemantics10.f90
    R flang/test/semantics/dosemantics11.f90
    R flang/test/semantics/dosemantics12.f90
    R flang/test/semantics/equivalence01.f90
    R flang/test/semantics/expr-errors01.f90
    R flang/test/semantics/expr-errors02.f90
    R flang/test/semantics/forall01.f90
    R flang/test/semantics/getdefinition01.f90
    R flang/test/semantics/getdefinition02.f
    R flang/test/semantics/getdefinition03-a.f90
    R flang/test/semantics/getdefinition03-b.f90
    R flang/test/semantics/getdefinition04.f90
    R flang/test/semantics/getdefinition05.f90
    R flang/test/semantics/getsymbols01.f90
    R flang/test/semantics/getsymbols02-a.f90
    R flang/test/semantics/getsymbols02-b.f90
    R flang/test/semantics/getsymbols02-c.f90
    R flang/test/semantics/getsymbols03-a.f90
    R flang/test/semantics/getsymbols03-b.f90
    R flang/test/semantics/getsymbols04.f90
    R flang/test/semantics/getsymbols05.f90
    R flang/test/semantics/if_arith01.f90
    R flang/test/semantics/if_arith02.f90
    R flang/test/semantics/if_arith03.f90
    R flang/test/semantics/if_arith04.f90
    R flang/test/semantics/if_construct01.f90
    R flang/test/semantics/if_construct02.f90
    R flang/test/semantics/if_stmt01.f90
    R flang/test/semantics/if_stmt02.f90
    R flang/test/semantics/if_stmt03.f90
    R flang/test/semantics/implicit01.f90
    R flang/test/semantics/implicit02.f90
    R flang/test/semantics/implicit03.f90
    R flang/test/semantics/implicit04.f90
    R flang/test/semantics/implicit05.f90
    R flang/test/semantics/implicit06.f90
    R flang/test/semantics/implicit07.f90
    R flang/test/semantics/implicit08.f90
    R flang/test/semantics/init01.f90
    R flang/test/semantics/int-literals.f90
    R flang/test/semantics/io01.f90
    R flang/test/semantics/io02.f90
    R flang/test/semantics/io03.f90
    R flang/test/semantics/io04.f90
    R flang/test/semantics/io05.f90
    R flang/test/semantics/io06.f90
    R flang/test/semantics/io07.f90
    R flang/test/semantics/io08.f90
    R flang/test/semantics/io09.f90
    R flang/test/semantics/io10.f90
    R flang/test/semantics/kinds01.f90
    R flang/test/semantics/kinds02.f90
    R flang/test/semantics/kinds03.f90
    R flang/test/semantics/label01.F90
    R flang/test/semantics/label02.f90
    R flang/test/semantics/label03.f90
    R flang/test/semantics/label04.f90
    R flang/test/semantics/label05.f90
    R flang/test/semantics/label06.f90
    R flang/test/semantics/label07.f90
    R flang/test/semantics/label08.f90
    R flang/test/semantics/label09.f90
    R flang/test/semantics/label10.f90
    R flang/test/semantics/label11.f90
    R flang/test/semantics/label12.f90
    R flang/test/semantics/label13.f90
    R flang/test/semantics/label14.f90
    R flang/test/semantics/misc-declarations.f90
    R flang/test/semantics/modfile01.f90
    R flang/test/semantics/modfile02.f90
    R flang/test/semantics/modfile03.f90
    R flang/test/semantics/modfile04.f90
    R flang/test/semantics/modfile05.f90
    R flang/test/semantics/modfile06.f90
    R flang/test/semantics/modfile07.f90
    R flang/test/semantics/modfile08.f90
    R flang/test/semantics/modfile09-a.f90
    R flang/test/semantics/modfile09-b.f90
    R flang/test/semantics/modfile09-c.f90
    R flang/test/semantics/modfile09-d.f90
    R flang/test/semantics/modfile10.f90
    R flang/test/semantics/modfile11.f90
    R flang/test/semantics/modfile12.f90
    R flang/test/semantics/modfile13.f90
    R flang/test/semantics/modfile14.f90
    R flang/test/semantics/modfile15.f90
    R flang/test/semantics/modfile16.f90
    R flang/test/semantics/modfile17.f90
    R flang/test/semantics/modfile18.f90
    R flang/test/semantics/modfile19.f90
    R flang/test/semantics/modfile20.f90
    R flang/test/semantics/modfile21.f90
    R flang/test/semantics/modfile22.f90
    R flang/test/semantics/modfile23.f90
    R flang/test/semantics/modfile24.f90
    R flang/test/semantics/modfile25.f90
    R flang/test/semantics/modfile26.f90
    R flang/test/semantics/modfile27.f90
    R flang/test/semantics/modfile28.f90
    R flang/test/semantics/modfile29.f90
    R flang/test/semantics/modfile30.f90
    R flang/test/semantics/modfile31.f90
    R flang/test/semantics/modfile32.f90
    R flang/test/semantics/modfile33.f90
    R flang/test/semantics/modfile34.f90
    R flang/test/semantics/modfile35.f90
    R flang/test/semantics/null01.f90
    R flang/test/semantics/nullify01.f90
    R flang/test/semantics/nullify02.f90
    R flang/test/semantics/omp-atomic.f90
    R flang/test/semantics/omp-clause-validity01.f90
    R flang/test/semantics/omp-declarative-directive.f90
    R flang/test/semantics/omp-device-constructs.f90
    R flang/test/semantics/omp-loop-association.f90
    R flang/test/semantics/omp-nested01.f90
    R flang/test/semantics/omp-resolve01.f90
    R flang/test/semantics/omp-resolve02.f90
    R flang/test/semantics/omp-resolve03.f90
    R flang/test/semantics/omp-resolve04.f90
    R flang/test/semantics/omp-resolve05.f90
    R flang/test/semantics/omp-symbol01.f90
    R flang/test/semantics/omp-symbol02.f90
    R flang/test/semantics/omp-symbol03.f90
    R flang/test/semantics/omp-symbol04.f90
    R flang/test/semantics/omp-symbol05.f90
    R flang/test/semantics/omp-symbol06.f90
    R flang/test/semantics/omp-symbol07.f90
    R flang/test/semantics/omp-symbol08.f90
    R flang/test/semantics/procinterface01.f90
    R flang/test/semantics/resolve01.f90
    R flang/test/semantics/resolve02.f90
    R flang/test/semantics/resolve03.f90
    R flang/test/semantics/resolve04.f90
    R flang/test/semantics/resolve05.f90
    R flang/test/semantics/resolve06.f90
    R flang/test/semantics/resolve07.f90
    R flang/test/semantics/resolve08.f90
    R flang/test/semantics/resolve09.f90
    R flang/test/semantics/resolve10.f90
    R flang/test/semantics/resolve11.f90
    R flang/test/semantics/resolve12.f90
    R flang/test/semantics/resolve13.f90
    R flang/test/semantics/resolve14.f90
    R flang/test/semantics/resolve15.f90
    R flang/test/semantics/resolve16.f90
    R flang/test/semantics/resolve17.f90
    R flang/test/semantics/resolve18.f90
    R flang/test/semantics/resolve19.f90
    R flang/test/semantics/resolve20.f90
    R flang/test/semantics/resolve21.f90
    R flang/test/semantics/resolve22.f90
    R flang/test/semantics/resolve23.f90
    R flang/test/semantics/resolve24.f90
    R flang/test/semantics/resolve25.f90
    R flang/test/semantics/resolve26.f90
    R flang/test/semantics/resolve27.f90
    R flang/test/semantics/resolve28.f90
    R flang/test/semantics/resolve29.f90
    R flang/test/semantics/resolve30.f90
    R flang/test/semantics/resolve31.f90
    R flang/test/semantics/resolve32.f90
    R flang/test/semantics/resolve33.f90
    R flang/test/semantics/resolve34.f90
    R flang/test/semantics/resolve35.f90
    R flang/test/semantics/resolve36.f90
    R flang/test/semantics/resolve37.f90
    R flang/test/semantics/resolve38.f90
    R flang/test/semantics/resolve39.f90
    R flang/test/semantics/resolve40.f90
    R flang/test/semantics/resolve41.f90
    R flang/test/semantics/resolve42.f90
    R flang/test/semantics/resolve43.f90
    R flang/test/semantics/resolve44.f90
    R flang/test/semantics/resolve45.f90
    R flang/test/semantics/resolve46.f90
    R flang/test/semantics/resolve47.f90
    R flang/test/semantics/resolve48.f90
    R flang/test/semantics/resolve49.f90
    R flang/test/semantics/resolve50.f90
    R flang/test/semantics/resolve51.f90
    R flang/test/semantics/resolve52.f90
    R flang/test/semantics/resolve53.f90
    R flang/test/semantics/resolve54.f90
    R flang/test/semantics/resolve55.f90
    R flang/test/semantics/resolve56.f90
    R flang/test/semantics/resolve57.f90
    R flang/test/semantics/resolve58.f90
    R flang/test/semantics/resolve59.f90
    R flang/test/semantics/resolve60.f90
    R flang/test/semantics/resolve61.f90
    R flang/test/semantics/resolve62.f90
    R flang/test/semantics/resolve63.f90
    R flang/test/semantics/resolve64.f90
    R flang/test/semantics/resolve65.f90
    R flang/test/semantics/resolve66.f90
    R flang/test/semantics/resolve67.f90
    R flang/test/semantics/resolve68.f90
    R flang/test/semantics/resolve69.f90
    R flang/test/semantics/resolve70.f90
    R flang/test/semantics/resolve71.f90
    R flang/test/semantics/resolve72.f90
    R flang/test/semantics/separate-module-procs.f90
    R flang/test/semantics/stop01.f90
    R flang/test/semantics/structconst01.f90
    R flang/test/semantics/structconst02.f90
    R flang/test/semantics/structconst03.f90
    R flang/test/semantics/structconst04.f90
    R flang/test/semantics/symbol01.f90
    R flang/test/semantics/symbol02.f90
    R flang/test/semantics/symbol03.f90
    R flang/test/semantics/symbol05.f90
    R flang/test/semantics/symbol06.f90
    R flang/test/semantics/symbol07.f90
    R flang/test/semantics/symbol08.f90
    R flang/test/semantics/symbol09.f90
    R flang/test/semantics/symbol10.f90
    R flang/test/semantics/symbol11.f90
    R flang/test/semantics/symbol12.f90
    R flang/test/semantics/symbol13.f90
    R flang/test/semantics/symbol14.f90
    R flang/test/semantics/symbol15.f90
    R flang/test/semantics/symbol16.f90
    R flang/test/semantics/symbol17.f90
    R flang/test/semantics/test_any.sh
    R flang/test/semantics/test_errors.sh
    R flang/test/semantics/test_modfile.sh
    R flang/test/semantics/test_symbols.sh
    M flang/tools/f18/f18-parse-demo.cpp
    M flang/tools/f18/f18.cpp
    M flang/tools/f18/stub-evaluate.cpp

  Log Message:
  -----------
  [flang] [LLVMify F18] Compiler module folders should have capitalised names (flang-compiler/f18#980)

This patch renames the modules in f18 to use a capital letter in the
module name

Signed-off-by: Caroline Concatto <caroline.concatto at arm.com>

Original-commit: flang-compiler/f18 at d2eb7a1c443d1539ef12b6f027074a0eb15b1ea0
Reviewed-on: https://github.com/flang-compiler/f18/pull/980


  Commit: 0855c45400f88afcaf3e4def7d5bb4abee502aa3
      https://github.com/llvm/llvm-project/commit/0855c45400f88afcaf3e4def7d5bb4abee502aa3
  Author: David Truby <david.truby at arm.com>
  Date:   2020-02-25 (Tue, 25 Feb 2020)

  Changed paths:
    M flang/.drone.star
    M flang/include/flang/Semantics/semantics.h
    M flang/lib/Semantics/CMakeLists.txt
    M flang/lib/Semantics/mod-file.cpp
    A flang/test-lit/Semantics/Inputs/mod-file-changed.f90
    A flang/test-lit/Semantics/Inputs/mod-file-unchanged.f90
    A flang/test-lit/Semantics/mod-file-rewriter.f90
    M flang/tools/f18/f18.cpp

  Log Message:
  -----------
  [flang] Replace module writer posix file handling with llvm file handling. (flang-compiler/f18#993)

NOTE: This commit introduces a dependency on LLVM HEAD

Original-commit: flang-compiler/f18 at 97efc0194d411a17ec47edf5e27157d1a1afa3bc
Reviewed-on: https://github.com/flang-compiler/f18/pull/993


  Commit: de066a2756b78474eee98b476e6b83bb68788936
      https://github.com/llvm/llvm-project/commit/de066a2756b78474eee98b476e6b83bb68788936
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-25 (Tue, 25 Feb 2020)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/resolve40.f90

  Log Message:
  -----------
  [flang] Allow for access-stmt before namelist-stmt

You can declare a name in an access statement and then declare it as
a namelist group name. We weren't allowing that because we didn't
convert a symbol with UnknownDetails to one with NamelistDetails.

Fixes flang-compiler/f18#1022.

Original-commit: flang-compiler/f18 at a759204db583d337dda886acf748e0fe135c6259
Reviewed-on: https://github.com/flang-compiler/f18/pull/1023


  Commit: 05e649376b20d1109d92b0499068a2cbb36f62aa
      https://github.com/llvm/llvm-project/commit/05e649376b20d1109d92b0499068a2cbb36f62aa
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-25 (Tue, 25 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1023 from flang-compiler/tsk-issue1022

Allow for access-stmt before namelist-stmt

Original-commit: flang-compiler/f18 at 618dc08139664c944f57b6763751b264ca2cf579
Reviewed-on: https://github.com/flang-compiler/f18/pull/1023


  Commit: c3ce28b8b44c8de8ac4a3801e12d9722d2a2ad66
      https://github.com/llvm/llvm-project/commit/c3ce28b8b44c8de8ac4a3801e12d9722d2a2ad66
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:
    M flang/.drone.star

  Log Message:
  -----------
  [flang] Fix drone CI build failure due to lack of FileCheck

Simply use the llvm build directory and save installing LLVM on the way.

Original-commit: flang-compiler/f18 at 7848ab146ad32062daba9f07b032655568381a1b
Reviewed-on: https://github.com/flang-compiler/f18/pull/1026
Tree-same-pre-rewrite: false


  Commit: 13c7778df9cc7b8694fd1063e50db6f0434674a3
      https://github.com/llvm/llvm-project/commit/13c7778df9cc7b8694fd1063e50db6f0434674a3
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:
    M flang/.drone.star

  Log Message:
  -----------
  [flang] Remove clang from LLVM drone builds until needed to fasten builds

Original-commit: flang-compiler/f18 at 5eaebc800caa90b592c5ba8cf1fd6fd3987b3636
Reviewed-on: https://github.com/flang-compiler/f18/pull/1026


  Commit: 844e7628b060e6f8dc7963a6bc7b820e33888568
      https://github.com/llvm/llvm-project/commit/844e7628b060e6f8dc7963a6bc7b820e33888568
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1026 from flang-compiler/jpr-drone-fix

Fix drone CI build failure due to lack of FileCheck

Original-commit: flang-compiler/f18 at a5644a4e8e81c47de1352829a562193e7cfaff03
Reviewed-on: https://github.com/flang-compiler/f18/pull/1026


  Commit: b7a5b5c7b6c9049c59816ff38f701cd135fee792
      https://github.com/llvm/llvm-project/commit/b7a5b5c7b6c9049c59816ff38f701cd135fee792
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:
    M flang/include/flang/Common/real.h
    M flang/include/flang/Decimal/decimal.h
    M flang/include/flang/Evaluate/complex.h
    M flang/include/flang/Evaluate/real.h
    M flang/include/flang/Evaluate/type.h
    M flang/lib/Decimal/binary-to-decimal.cpp
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/lib/Evaluate/complex.cpp
    M flang/lib/Evaluate/real.cpp
    M flang/test/Evaluate/folding07.f90
    M flang/test/Semantics/modfile26.f90

  Log Message:
  -----------
  [flang] Fix layout of 128-bit IEEE-754 floating-point values

Original-commit: flang-compiler/f18 at c95c45704e7c0afeb0d2dbec965afd368e923a3a
Reviewed-on: https://github.com/flang-compiler/f18/pull/1021


  Commit: dec83a5e10530f8081522c7e4a25669e7e6b2701
      https://github.com/llvm/llvm-project/commit/dec83a5e10530f8081522c7e4a25669e7e6b2701
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1021 from flang-compiler/pmk-ieee-128

Fix layout of 128-bit IEEE-754 floating-point values

Original-commit: flang-compiler/f18 at 91feed7a3841bb4f865353ebd7790c39ea926390
Reviewed-on: https://github.com/flang-compiler/f18/pull/1021


  Commit: 42cc44fbc8dc6c66d3e10a2d904133ffcdde3762
      https://github.com/llvm/llvm-project/commit/42cc44fbc8dc6c66d3e10a2d904133ffcdde3762
  Author: Peter Waller <peter.waller at arm.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:
    A flang/flatten.cpp

  Log Message:
  -----------
  [flang] Add script to flatten git history for llvm monorepo submission (flang-compiler/f18#854)

This script, when run on a checkout of the f18 repository, takes the
current origin/master and makes a branch called "new" with a rewritten
history;

The "new" branch has a flat git history (that is, a series of commits
with only one parent). Flattening is done for merge commits by taking
the content of the commit as it is at the merge commit.

Original-commit: flang-compiler/f18 at d9871fa9eb2304c4761a4a818187553396bb8924
Reviewed-on: https://github.com/flang-compiler/f18/pull/854


  Commit: c875618506cf4c6da09ba23542dc5ffaedca7ad3
      https://github.com/llvm/llvm-project/commit/c875618506cf4c6da09ba23542dc5ffaedca7ad3
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:
    M flang/lib/Semantics/check-do-forall.cpp

  Log Message:
  -----------
  [flang] Remove use of std::set::merge

Some versions of clang that we are building with don't have
std::set::merge, even though it is part of C++17. Work around
that by using std::set::insert until we can count on merge being
available everywhere.

Original-commit: flang-compiler/f18 at 886ccc37fbff5df00717ac728e2aba240d0a314c
Reviewed-on: https://github.com/flang-compiler/f18/pull/1014


  Commit: 327ec4d2f2945ae44197d1806e4a1b5e2b98d3eb
      https://github.com/llvm/llvm-project/commit/327ec4d2f2945ae44197d1806e4a1b5e2b98d3eb
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1014 from flang-compiler/tsk-where

Remove use of std::set::merge

Original-commit: flang-compiler/f18 at 59c14bad32093f5ccfcd0a05e337295c2c1c85ea
Reviewed-on: https://github.com/flang-compiler/f18/pull/1014


  Commit: 914a91c1c3228c2eb760cc9c597a4dbc955d4954
      https://github.com/llvm/llvm-project/commit/914a91c1c3228c2eb760cc9c597a4dbc955d4954
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-25 (Tue, 25 Feb 2020)

  Changed paths:
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Parser/tools.h
    M flang/lib/Parser/parse-tree.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/data01.f90

  Log Message:
  -----------
  [flang] Fix misparsed structure constructor in data stmt

In a data statement like `data x / a(1) /`, `a(1)` may be an array
element or a structure constructor. It is parsed as an array element
so if it turns out `a` is a derived type it must be rewritten as a
strucutre constructor.

Original-commit: flang-compiler/f18 at a2b2a330e7dbb8d719fdab9bb28921cf84f503ca
Reviewed-on: https://github.com/flang-compiler/f18/pull/1024


  Commit: c388d26f4125a34d7a44a7c15cd70544db1d81be
      https://github.com/llvm/llvm-project/commit/c388d26f4125a34d7a44a7c15cd70544db1d81be
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1024 from flang-compiler/tsk-rewrite

Fix misparsed structure constructor in data stmt

Original-commit: flang-compiler/f18 at 7649e5d705b2c87d710525d522a42288030c3bfa
Reviewed-on: https://github.com/flang-compiler/f18/pull/1024


  Commit: 657aaf8b8d6c0df6156025bb1db73280cf3d7870
      https://github.com/llvm/llvm-project/commit/657aaf8b8d6c0df6156025bb1db73280cf3d7870
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:
    M flang/include/flang/Semantics/expression.h
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/CMakeLists.txt
    M flang/test/Semantics/call05.f90
    A flang/test/Semantics/complex01.f90
    M flang/test/Semantics/kinds02.f90
    A flang/test/Semantics/kinds04.f90
    M flang/test/Semantics/resolve35.f90
    M flang/test/Semantics/resolve37.f90
    M flang/test/Semantics/resolve41.f90
    A flang/test/Semantics/resolve73.f90
    A flang/test/Semantics/resolve74.f90
    A flang/test/Semantics/resolve75.f90

  Log Message:
  -----------
  [flang] Semantic checks for C712 through C727

I've updated the compiler and test source with references to the contraints at
the points where they were enforced and tested.  Many of these were already
implemented and required no code change.  A few constraint checks were both
implemented and tested, and I only added references to the constraint
numbers in the compiler source and tests.  Here are the things I had to
implement:

Constraint C716 states that, in a REAL constant, if both a kind-param and an
exponent letter appear, the exponent letter must be 'E'.

Constraints C715 and C719 require that a KIND value be actually implemented.

Constraint C722 requires that functions that return assumed-length character
types are external.

Constraint C726 disallows assumed lenght charater types for dummy arguments and
return types.

Original-commit: flang-compiler/f18 at 45998741e5f04bba7db6eed6a4d27c1d25209b41
Reviewed-on: https://github.com/flang-compiler/f18/pull/1031
Tree-same-pre-rewrite: false


  Commit: 84b2909dedf4c6e03c431e47b6a2a5b23ced4c00
      https://github.com/llvm/llvm-project/commit/84b2909dedf4c6e03c431e47b6a2a5b23ced4c00
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-02-27 (Thu, 27 Feb 2020)

  Changed paths:
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/kinds04.f90

  Log Message:
  -----------
  [flang] Responses to pull request comments

I cleaned up some code and reverted a change to semantic checking for
the exponent letter in REAL literals.

Original-commit: flang-compiler/f18 at e81f57fcf54ee0493044d53a6d1bf05f661e2660
Reviewed-on: https://github.com/flang-compiler/f18/pull/1031


  Commit: a5ff3ac51ec0c7a0113c5c703622887303440f06
      https://github.com/llvm/llvm-project/commit/a5ff3ac51ec0c7a0113c5c703622887303440f06
  Author: psteinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-02-27 (Thu, 27 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1031 from flang-compiler/ps-types

Semantic checks for C712 through C727

Original-commit: flang-compiler/f18 at d6898ab882009197beb898152f0d05fe708cc658
Reviewed-on: https://github.com/flang-compiler/f18/pull/1031


  Commit: 92c1f6bb989951c07462b2bc3b1c23795c065941
      https://github.com/llvm/llvm-project/commit/92c1f6bb989951c07462b2bc3b1c23795c065941
  Author: Varun Jayathirtha <vjayathirtha at nvidia.com>
  Date:   2020-02-27 (Thu, 27 Feb 2020)

  Changed paths:
    M flang/lib/Semantics/CMakeLists.txt
    A flang/lib/Semantics/check-namelist.cpp
    A flang/lib/Semantics/check-namelist.h
    M flang/lib/Semantics/semantics.cpp
    M flang/test/Semantics/CMakeLists.txt
    A flang/test/Semantics/namelist01.f90

  Log Message:
  -----------
  [flang] Add semantic checks C8104, C8105. Add tests for C8103, C8104, C8105

Original-commit: flang-compiler/f18 at 8134fc477e843d9bf525eeb552ba1d234140e7a7
Reviewed-on: https://github.com/flang-compiler/f18/pull/1037


  Commit: 015075840ddf667d3c753f7eaa8508cd7695055c
      https://github.com/llvm/llvm-project/commit/015075840ddf667d3c753f7eaa8508cd7695055c
  Author: vjayathirtha-nv <33463839+vjayathirtha-nv at users.noreply.github.com>
  Date:   2020-02-27 (Thu, 27 Feb 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1037 from vjayathirtha-nv/master

Add semantic checks C8104, C8105. Add tests for C8103, C8104, C8105

Original-commit: flang-compiler/f18 at f2a4e5c685bc421306611c64295caa50986d9578
Reviewed-on: https://github.com/flang-compiler/f18/pull/1037


  Commit: 2a00c617d6dfb8b8431be6c317acc3475bc170f8
      https://github.com/llvm/llvm-project/commit/2a00c617d6dfb8b8431be6c317acc3475bc170f8
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-02 (Mon, 02 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/expression.h
    M flang/lib/Semantics/expression.cpp
    M flang/test/Semantics/CMakeLists.txt
    A flang/test/Semantics/data02.f90

  Log Message:
  -----------
  [flang] Expression analysis on DataStmtConstant

Data statements contains expressions but they are not wrapped in one of
the kinds of parse tree nodes that are analyzed, like `parser::Expr`.
So potential errors were not discovered.

Change `ExprChecker` to handle `DataStmtConstant` and analyze any
expressions that are contained in it. Note that the analyzed form of
the expression is not yet saved in the parse tree.

Original-commit: flang-compiler/f18 at 8bdaf0a521f6630ec2c369b2c41484eff4803d6e
Reviewed-on: https://github.com/flang-compiler/f18/pull/1044


  Commit: 4ffbdb3d358609cf1afddc7180fd46db568f8c32
      https://github.com/llvm/llvm-project/commit/4ffbdb3d358609cf1afddc7180fd46db568f8c32
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-02 (Mon, 02 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1044 from flang-compiler/tsk-data

Expression analysis on DataStmtConstant

Original-commit: flang-compiler/f18 at 1611fd8e9e237dc86266b146309931428d228ace
Reviewed-on: https://github.com/flang-compiler/f18/pull/1044


  Commit: 3495c782145c4d98c4611b3e9c643c0e368d83e1
      https://github.com/llvm/llvm-project/commit/3495c782145c4d98c4611b3e9c643c0e368d83e1
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-02 (Mon, 02 Mar 2020)

  Changed paths:
    M flang/lib/Semantics/expression.cpp
    M flang/test/Semantics/data01.f90
    M flang/test/Semantics/resolve59.f90

  Log Message:
  -----------
  [flang] Improve array element errors

When something is parsed as an array element it was sometimes intended
to be a function call or structure constructor. So if the base name is
not found the errors can be confusing. This is an attempt to improve
them.

When the subscript list is empty, it was probably meant to be a function
call, so report that the name is not a function.

If the base is a scalar but there are subscripts, report that it is not
an array.

Original-commit: flang-compiler/f18 at e2fd5333ff1bb1e8e88cbf35028654bcf70fe9e9
Reviewed-on: https://github.com/flang-compiler/f18/pull/1039


  Commit: f30c0307c1a48b2b1f4f9f834a6045d2e2634138
      https://github.com/llvm/llvm-project/commit/f30c0307c1a48b2b1f4f9f834a6045d2e2634138
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-02 (Mon, 02 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1039 from flang-compiler/tsk-arrays

Improve array element errors

Original-commit: flang-compiler/f18 at 899ef78d6aac3a1c5e8264100165dcc2521684c6
Reviewed-on: https://github.com/flang-compiler/f18/pull/1039


  Commit: 47452b9691c3c3efbf91de1aa6888bbc42f341fa
      https://github.com/llvm/llvm-project/commit/47452b9691c3c3efbf91de1aa6888bbc42f341fa
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-03 (Tue, 03 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/resolve10.f90
    M flang/test/Semantics/resolve34.f90

  Log Message:
  -----------
  [flang] Improve checking of structure constructor arguments

When a misparsed FunctionReference was converted to a StructureConstructor,
the components accessed were not checked for accessibility.

The conversion happens in expression analysis so that where the accessibity
must be checked. So move `CheckAccessibleComponent` to `tools.h` so that it
can be shared by `resolve-names.cpp` and `expression.cpp`.

Add FindModuleContaining to help implement this and use it other places.

Check that an access-spec can only appear in a module.

Remove some unnecessary "semantics::" qualifiers.

Original-commit: flang-compiler/f18 at 99ce156e49ec0847ce42a6d10f0a62664714092b
Reviewed-on: https://github.com/flang-compiler/f18/pull/1046


  Commit: 7547f76928668bde7e0ff23896be752009b5814a
      https://github.com/llvm/llvm-project/commit/7547f76928668bde7e0ff23896be752009b5814a
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-03 (Tue, 03 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1046 from flang-compiler/tsk-comps

Improve checking of structure constructor keywords

Original-commit: flang-compiler/f18 at c80c72d6f96e75c9b6d12c12b813a0922c6d39ef
Reviewed-on: https://github.com/flang-compiler/f18/pull/1046


  Commit: d545a132bc3b8ba940aa0a4ae664afb442129d77
      https://github.com/llvm/llvm-project/commit/d545a132bc3b8ba940aa0a4ae664afb442129d77
  Author: David Truby <david.truby at arm.com>
  Date:   2020-03-02 (Mon, 02 Mar 2020)

  Changed paths:
    M flang/CMakeLists.txt

  Log Message:
  -----------
  [flang] Link against zlib when LLVM does.

Original-commit: flang-compiler/f18 at 2260abe4c27a76e374b286df072e303aa9ea1418
Reviewed-on: https://github.com/flang-compiler/f18/pull/1043


  Commit: 8ad166c3a7f2191ad1d791c303f45cb9eb2691df
      https://github.com/llvm/llvm-project/commit/8ad166c3a7f2191ad1d791c303f45cb9eb2691df
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2020-03-04 (Wed, 04 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1043 from DavidTruby/zlib

Link against zlib when LLVM does.

Original-commit: flang-compiler/f18 at 8b0a473069cb3691d604f72d7f9a5200aa7f1c01
Reviewed-on: https://github.com/flang-compiler/f18/pull/1043


  Commit: e94ee41ec27a1896993a9c49a81443521d564302
      https://github.com/llvm/llvm-project/commit/e94ee41ec27a1896993a9c49a81443521d564302
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-05 (Thu, 05 Mar 2020)

  Changed paths:
    M flang/lib/Evaluate/CMakeLists.txt
    M flang/test/Evaluate/CMakeLists.txt

  Log Message:
  -----------
  [flang] Don't link to libm (flang-compiler/f18#1038)

* Don't link to libm on windows

* Don't link to libm in Unix as well

Original-commit: flang-compiler/f18 at a807862ab85f2d2206f8fa77d927b0e110513620
Reviewed-on: https://github.com/flang-compiler/f18/pull/1038


  Commit: 5dfd2b06d464f77171a3ef028b6c4f90d8561b07
      https://github.com/llvm/llvm-project/commit/5dfd2b06d464f77171a3ef028b6c4f90d8561b07
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-05 (Thu, 05 Mar 2020)

  Changed paths:
    M flang/runtime/numeric-output.cpp

  Log Message:
  -----------
  [flang] Add missing include <algorithm> for std::max (flang-compiler/f18#1028)

Original-commit: flang-compiler/f18 at 0e32eebf7fec8cd07ab3280565799cfbf2ca55e2
Reviewed-on: https://github.com/flang-compiler/f18/pull/1028


  Commit: e8f09da68d72ccfcf1182b9a7f25f8e98cfb3dd6
      https://github.com/llvm/llvm-project/commit/e8f09da68d72ccfcf1182b9a7f25f8e98cfb3dd6
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-05 (Thu, 05 Mar 2020)

  Changed paths:
    M flang/runtime/lock.h

  Log Message:
  -----------
  [flang] Use std::mutex instead of pthreads (flang-compiler/f18#1006)

* Use std::mutex for portability.

Original-commit: flang-compiler/f18 at a9a725eb9d2c39a203f4b4f55f1e03c5e17f6cf7
Reviewed-on: https://github.com/flang-compiler/f18/pull/1006


  Commit: 61106305b66a9c260c3eb8cfce95469f97a60a46
      https://github.com/llvm/llvm-project/commit/61106305b66a9c260c3eb8cfce95469f97a60a46
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-05 (Thu, 05 Mar 2020)

  Changed paths:
    M flang/lib/Semantics/mod-file.cpp

  Log Message:
  -----------
  [flang] Use a file descriptor in Temp struct (flang-compiler/f18#1036)

The struct Temp is used in the function call createUniqueFile
which only takes in a file descriptor instead of a file handler.
In Unix these are the same thing, but in Windows they are different.
Therefore, the type of the member of struct Temp is changed
from file handler to file descriptor and when closing the file
the file descriptor is converted to a file handler.

Original-commit: flang-compiler/f18 at a8edb328f717305143ac827132c6d6f45e6e11b9
Reviewed-on: https://github.com/flang-compiler/f18/pull/1036


  Commit: a705a4a314e3a68c049d06e581763d6e9ac8672d
      https://github.com/llvm/llvm-project/commit/a705a4a314e3a68c049d06e581763d6e9ac8672d
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-05 (Thu, 05 Mar 2020)

  Changed paths:
    M flang/README.md
    M flang/test-lit/CMakeLists.txt

  Log Message:
  -----------
  [flang] Change README to refer to LLVM_BUILD_DIR. (flang-compiler/f18#1033)

* Change README to refer to LLVM_BUILD_DIR.

LLVM_INSTALL_TOOLS doesn't to install llvm-lit. However pointing to the cmake file in the build directory works fine, and lit and FileCheck will be picked up correctly this way.

Original-commit: flang-compiler/f18 at 3cbe344f82a0898c9e20b6718d5f80d52670838b
Reviewed-on: https://github.com/flang-compiler/f18/pull/1033


  Commit: e0ca7b447b5424bfecd8f6541d987108ca81a856
      https://github.com/llvm/llvm-project/commit/e0ca7b447b5424bfecd8f6541d987108ca81a856
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-05 (Thu, 05 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/test/Semantics/assign03.f90

  Log Message:
  -----------
  [flang] Fix for 'wrong constant folding of assumed-rank array' (flang-compiler/f18#1010)

https://github.com/flang-compiler/f18/issues/990

Original-commit: flang-compiler/f18 at d971333025bb316529d233528a725fcc726f6615
Reviewed-on: https://github.com/flang-compiler/f18/pull/1010


  Commit: 0b130278a0eb1250e66d57e3c74253d4f0080106
      https://github.com/llvm/llvm-project/commit/0b130278a0eb1250e66d57e3c74253d4f0080106
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-09 (Mon, 09 Mar 2020)

  Changed paths:
    M flang/lib/Semantics/expression.cpp

  Log Message:
  -----------
  [flang] Fix handling of DataRef when analyzing CoindexedNamedObject

As we loop through the Components, maintain a pointer to the current
DataRef rather than moving it. This is more efficient and the previous
behavior caused illegal memory accesses.

Original-commit: flang-compiler/f18 at cede2971ff863b8dd6a2c8727f6566a444ac7a52
Reviewed-on: https://github.com/flang-compiler/f18/pull/1050
Tree-same-pre-rewrite: false


  Commit: 2cc21cecf2478eb71f9ab25f6b7fee7161c3b87b
      https://github.com/llvm/llvm-project/commit/2cc21cecf2478eb71f9ab25f6b7fee7161c3b87b
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-09 (Mon, 09 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/tools.cpp

  Log Message:
  -----------
  [flang] Change WhyNotModifiable to return optional

One overload of WhyNotModifiable returned an optional message while the
other returns a unique_ptr. Change the latter to be consistent with the
former and other message-returning functions in this file.

Also, reorder the if clauses to reduce the level of indentation.

Original-commit: flang-compiler/f18 at 864e9cfc7ee98e3646052fdc757943011d641691
Reviewed-on: https://github.com/flang-compiler/f18/pull/1050
Tree-same-pre-rewrite: false


  Commit: c97e1c0a451e1f1be2ced035f4728d9b3072d1a0
      https://github.com/llvm/llvm-project/commit/c97e1c0a451e1f1be2ced035f4728d9b3072d1a0
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-09 (Mon, 09 Mar 2020)

  Changed paths:
    M flang/lib/Semantics/assignment.cpp
    M flang/lib/Semantics/assignment.h

  Log Message:
  -----------
  [flang] Change CheckDefinabilityInPureScope to return bool

Have CheckDefinabilityInPureScope and CheckCopyabilityInPureScope return
false when their checks fail and report errors so that we will be able
to avoid reporting extra errors in those cases.

Original-commit: flang-compiler/f18 at 305a3470e572161483b0f430514b77ba19f932ea
Reviewed-on: https://github.com/flang-compiler/f18/pull/1050
Tree-same-pre-rewrite: false


  Commit: a0a1f519c0abc99ecffd4aaa997a4bb01f63cf3e
      https://github.com/llvm/llvm-project/commit/a0a1f519c0abc99ecffd4aaa997a4bb01f63cf3e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-09 (Mon, 09 Mar 2020)

  Changed paths:
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Semantics/assignment.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/type.cpp
    M flang/test/Semantics/CMakeLists.txt
    A flang/test/Semantics/assign04.f90
    M flang/test/Semantics/resolve72.f90

  Log Message:
  -----------
  [flang] Perform definability checks on LHS of assignment

If the pure context check succeeds, call `WhyNotModifiable` to verify
the LHS can be modified.

Detect assignment to whole assumed-size array.

Change `IsVariable` to return false for a parameter or a component or
array reference whose base it a parameter.

When analyzing an assignment statement, report an error if the LHS is
a constant expression. Otherwise it might get folded and when we detect
the problem later the error will be confusing.

Handle Substring on LHS of assignment. Change ExtractDataRef and IsVariable
to work on a Substring.

Fix IsImpliedShape and IsAssumedSize predicates in ArraySpec.

Fix C709 check in check-declarations.cpp.

Original-commit: flang-compiler/f18 at f2d2657aab051b938ec4e4702926aadb436c19aa
Reviewed-on: https://github.com/flang-compiler/f18/pull/1050


  Commit: 330ca1ea683c1ec8836fa8b42feacc9ea0c31a73
      https://github.com/llvm/llvm-project/commit/330ca1ea683c1ec8836fa8b42feacc9ea0c31a73
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-09 (Mon, 09 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1050 from flang-compiler/tsk-assign

Perform definability checks on LHS of assignment

Original-commit: flang-compiler/f18 at a7b49f99a6b2056504b74c7274582935b10b3929
Reviewed-on: https://github.com/flang-compiler/f18/pull/1050


  Commit: e03b20e66e947ecccefddc886c035f130fdd905b
      https://github.com/llvm/llvm-project/commit/e03b20e66e947ecccefddc886c035f130fdd905b
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M flang/include/flang/Common/reference.h
    M flang/include/flang/Common/uint128.h
    M flang/include/flang/Evaluate/common.h
    M flang/include/flang/Evaluate/expression.h
    M flang/include/flang/Evaluate/variable.h
    M flang/lib/Evaluate/call.cpp
    M flang/lib/Evaluate/expression.cpp
    M flang/lib/Evaluate/variable.cpp
    M flang/lib/Semantics/resolve-labels.cpp
    M flang/lib/Semantics/resolve-names.cpp

  Log Message:
  -----------
  [flang] Changes to get a clean build of f18 with latest clang

Prep for review

Original-commit: flang-compiler/f18 at 111f49061e07604670614250197a1064959fd981
Reviewed-on: https://github.com/flang-compiler/f18/pull/1059


  Commit: 749be7993e295c284d2b8556eabcb8ddfb3157ca
      https://github.com/llvm/llvm-project/commit/749be7993e295c284d2b8556eabcb8ddfb3157ca
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1059 from flang-compiler/pmk-clang

Changes that enable f18 build with latest clang

Original-commit: flang-compiler/f18 at 9e628b633cad8ed07a89f4e270828370c826ab24
Reviewed-on: https://github.com/flang-compiler/f18/pull/1059


  Commit: 6ab50745c0bab1b44e89c82f56295eafce3719ac
      https://github.com/llvm/llvm-project/commit/6ab50745c0bab1b44e89c82f56295eafce3719ac
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/scope.h
    M flang/lib/Semantics/scope.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/resolve34.f90

  Log Message:
  -----------
  [flang] Fix scope accessibility check

The check for whether a private component is accessible was depending on
determining whether the source range of the current scope was within the
source range of the module that the component was declared in. This
could fail if the current scope was of kind `ImpliedDos` and had no
source range.

The fix is to add `Scope::Contains` to check the relationship by
traversing the parent links. These are created when the Scope is so are
always reliable. The source range of a scope is built up over time.

Original-commit: flang-compiler/f18 at d787108637adad358ccf8af3d200acb3f66ce099
Reviewed-on: https://github.com/flang-compiler/f18/pull/1060


  Commit: 49422bb83a5b111c8d5a3233c21c9c6c98765951
      https://github.com/llvm/llvm-project/commit/49422bb83a5b111c8d5a3233c21c9c6c98765951
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1060 from flang-compiler/tsk-scope-contains

Fix scope accessibility check

Original-commit: flang-compiler/f18 at e671fc0754b1b850fb677da11ff6110befba5ef9
Reviewed-on: https://github.com/flang-compiler/f18/pull/1060


  Commit: a40dbe7c41c6f1bcddc087752eef004f4c1d093e
      https://github.com/llvm/llvm-project/commit/a40dbe7c41c6f1bcddc087752eef004f4c1d093e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M flang/lib/Semantics/assignment.cpp
    M flang/test/Semantics/assign04.f90

  Log Message:
  -----------
  [flang] Allow for vector subscript on LHS of assignment

Original-commit: flang-compiler/f18 at 38aefd41f051546024ecf4555a3bb3385b99f3c7
Reviewed-on: https://github.com/flang-compiler/f18/pull/1062


  Commit: 78f45d4efe5c6e77bc7ec324e2b74ab1d10b2cc3
      https://github.com/llvm/llvm-project/commit/78f45d4efe5c6e77bc7ec324e2b74ab1d10b2cc3
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1062 from flang-compiler/tsk-vector-subscript

Allow for vector subscript on LHS of assignment

Original-commit: flang-compiler/f18 at ed6e34d33b08b162608ce7a648e08ea6a333a5ed
Reviewed-on: https://github.com/flang-compiler/f18/pull/1062


  Commit: 59baf8b82270865df77925e3d4b599c4a767ffbd
      https://github.com/llvm/llvm-project/commit/59baf8b82270865df77925e3d4b599c4a767ffbd
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M flang/runtime/c-or-cpp.h
    M flang/runtime/main.h
    M flang/runtime/stop.h

  Log Message:
  -----------
  [flang] Rename EXTERN_C_END to FORTRAN_EXTERN_C_END

Since EXTERN_C_END is a macro defined in Windows system headers

Original-commit: flang-compiler/f18 at 4c6e5608adddf25a53fbdbfd5f0e1b98278cc5ec
Reviewed-on: https://github.com/flang-compiler/f18/pull/1051


  Commit: 84319aba7d3a1925e183a97a6eea591d2b25230e
      https://github.com/llvm/llvm-project/commit/84319aba7d3a1925e183a97a6eea591d2b25230e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1051 from isuruf/extern

Rename EXTERN_C_END to FORTRAN_EXTERN_C_END

Original-commit: flang-compiler/f18 at b04233ea55be6b908363aa54e03fac5d3ace3341
Reviewed-on: https://github.com/flang-compiler/f18/pull/1051


  Commit: 886fb42ece8f3c1ca16b179efe993ee68d663fe8
      https://github.com/llvm/llvm-project/commit/886fb42ece8f3c1ca16b179efe993ee68d663fe8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M flang/lib/Evaluate/shape.cpp

  Log Message:
  -----------
  [flang] Extend shape analysis to cope with ASSOCIATE construct entities better

Fix incomplete copy&paste

Another review comment addressed

Original-commit: flang-compiler/f18 at a2e2593fa5457a7737faab8ee74e5f3b18cd71f7
Reviewed-on: https://github.com/flang-compiler/f18/pull/1061
Tree-same-pre-rewrite: false


  Commit: 771c21c19f8dfb8cd8b098f811785cbb72a84bdb
      https://github.com/llvm/llvm-project/commit/771c21c19f8dfb8cd8b098f811785cbb72a84bdb
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:
    M flang/module/iso_c_binding.f90

  Log Message:
  -----------
  [flang] Repair C_LOC

Original-commit: flang-compiler/f18 at dc1c95277dd6161ce2d13f971ca91cce3e771e8a
Reviewed-on: https://github.com/flang-compiler/f18/pull/1061
Tree-same-pre-rewrite: false


  Commit: f7432ca7a6dce3894c2c156a969be502e6bb8acd
      https://github.com/llvm/llvm-project/commit/f7432ca7a6dce3894c2c156a969be502e6bb8acd
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:
    M flang/include/flang/Evaluate/shape.h
    M flang/lib/Evaluate/shape.cpp

  Log Message:
  -----------
  [flang] Resolve known problems in shape analysis

Original-commit: flang-compiler/f18 at ed2e4842d31f1329d3bec802c2f284ba62343f99
Reviewed-on: https://github.com/flang-compiler/f18/pull/1061


  Commit: 83ccf62e864f98bca7063fb4c3449d7011f7cf7e
      https://github.com/llvm/llvm-project/commit/83ccf62e864f98bca7063fb4c3449d7011f7cf7e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1061 from flang-compiler/pmk-shape

Extend shape analysis to cope better with ASSOCIATE construct entities

Original-commit: flang-compiler/f18 at abee10616802d9ce12051dc2e1b911144dd52198
Reviewed-on: https://github.com/flang-compiler/f18/pull/1061


  Commit: 0a8a6cd9215a9f9301a54f3a391f73a028e75b6a
      https://github.com/llvm/llvm-project/commit/0a8a6cd9215a9f9301a54f3a391f73a028e75b6a
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2020-03-05 (Thu, 05 Mar 2020)

  Changed paths:
    M flang/include/flang/Parser/dump-parse-tree.h

  Log Message:
  -----------
  [flang] Fix an ambiguous overload error

Original-commit: flang-compiler/f18 at 70fa71ff7be3024a44b8214be663b9701adc5b1f
Reviewed-on: https://github.com/flang-compiler/f18/pull/1029


  Commit: e1ba511c2c55e0caede379fe88646a650d3f5cf0
      https://github.com/llvm/llvm-project/commit/e1ba511c2c55e0caede379fe88646a650d3f5cf0
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1029 from isuruf/patch-3

Fix an ambiguous overload error

Original-commit: flang-compiler/f18 at c39a22b6e40dcf1f9438b75a1b5b3b8b7d5d4778
Reviewed-on: https://github.com/flang-compiler/f18/pull/1029


  Commit: 3b635714255da40a7c2a2b3ff03e73fe4fd0a34e
      https://github.com/llvm/llvm-project/commit/3b635714255da40a7c2a2b3ff03e73fe4fd0a34e
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:
    M flang/documentation/IORuntimeInternals.md
    M flang/include/flang/Parser/char-buffer.h
    M flang/include/flang/Semantics/type.h
    M flang/lib/Parser/char-buffer.cpp
    M flang/lib/Parser/source.cpp
    M flang/lib/Semantics/check-call.cpp
    M flang/runtime/CMakeLists.txt
    M flang/runtime/ISO_Fortran_binding.cpp
    M flang/runtime/buffer.h
    M flang/runtime/connection.cpp
    M flang/runtime/connection.h
    M flang/runtime/descriptor.cpp
    M flang/runtime/descriptor.h
    A flang/runtime/edit-input.cpp
    A flang/runtime/edit-input.h
    A flang/runtime/edit-output.cpp
    A flang/runtime/edit-output.h
    M flang/runtime/file.cpp
    M flang/runtime/file.h
    M flang/runtime/format-implementation.h
    M flang/runtime/format.cpp
    M flang/runtime/format.h
    M flang/runtime/internal-unit.cpp
    M flang/runtime/internal-unit.h
    M flang/runtime/io-api.cpp
    M flang/runtime/io-api.h
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h
    M flang/runtime/io-stmt.cpp
    M flang/runtime/io-stmt.h
    A flang/runtime/iostat.cpp
    A flang/runtime/iostat.h
    M flang/runtime/lock.h
    M flang/runtime/magic-numbers.h
    M flang/runtime/main.cpp
    R flang/runtime/numeric-output.cpp
    R flang/runtime/numeric-output.h
    M flang/runtime/terminator.cpp
    M flang/runtime/terminator.h
    M flang/runtime/tools.cpp
    M flang/runtime/tools.h
    M flang/runtime/transformational.cpp
    M flang/runtime/transformational.h
    M flang/runtime/type-code.h
    A flang/runtime/unit-map.cpp
    A flang/runtime/unit-map.h
    M flang/runtime/unit.cpp
    M flang/runtime/unit.h
    M flang/test/Evaluate/reshape.cpp
    M flang/test/Runtime/CMakeLists.txt
    M flang/test/Runtime/format.cpp
    M flang/test/Runtime/hello.cpp
    A flang/test/Runtime/list-input.cpp
    A flang/test/Runtime/testing.cpp
    A flang/test/Runtime/testing.h
    M flang/test/Semantics/call15.f90

  Log Message:
  -----------
  [flang] Use hash table for UnitMap, avoid C++ STL binary dependence

Scan FORMAT strings locally to avoid C++ binary runtime dependence when computing deepest parenthesis nesting

Remove a dependency on ostream from runtime

Remove remaining direct external references from runtime to C++ library binaries

Remove runtime dependences on lib/common

SetPos() and SetRec()

Instantiate templates for input

Begin input; rearrange locking, deal with CLOSE races

View()

Update error message in test to agree with compiler change

First cut at real input

More robust I/O runtime error handling

Debugging of REAL input

Add iostat.{h,cpp}

Rename runtime/numeric-* to runtime/edit-*

Move templates around, templatize integer output editing

Move LOGICAL and CHARACTER output from io-api.cpp to edit-output.cpp

Change pointer argument to reference

More list-directed input

Complex list-directed input

Use enum class Direction rather than bool for templates

Catch up with changes to master

Undo reformatting of Lower code

Use record number instead of subscripts for internal unit

Unformatted sequential backspace

Testing and debugging

Dodge bogus GCC warning

Add <cstddef> for std::size_t to fix CI build

Address review comments

Original-commit: flang-compiler/f18 at 50406b349609efdde76e48bf2caa039d031dd1c4
Reviewed-on: https://github.com/flang-compiler/f18/pull/1053


  Commit: 989cbfb0c4094899f5932db594ea7a4db0915551
      https://github.com/llvm/llvm-project/commit/989cbfb0c4094899f5932db594ea7a4db0915551
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1053 from flang-compiler/pmk-io

Roll up runtime I/O work

Original-commit: flang-compiler/f18 at bcb8565a93aca69f7c65eca23760293feebf717d
Reviewed-on: https://github.com/flang-compiler/f18/pull/1053


  Commit: 57f536a448559b6e56388700653cc43f38152f12
      https://github.com/llvm/llvm-project/commit/57f536a448559b6e56388700653cc43f38152f12
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:
    M flang/.drone.star
    M flang/CMakeLists.txt
    M flang/README.md
    R flang/documentation/Investigating-FIR-as-an-MLIR-dialect.md
    R flang/include/fir/.clang-format
    M flang/include/flang/CMakeLists.txt
    A flang/include/flang/Optimizer/CMakeLists.txt
    A flang/include/flang/Optimizer/Dialect/CMakeLists.txt
    A flang/include/flang/Optimizer/Dialect/FIRAttr.h
    A flang/include/flang/Optimizer/Dialect/FIRDialect.h
    A flang/include/flang/Optimizer/Dialect/FIROps.h
    A flang/include/flang/Optimizer/Dialect/FIROps.td
    A flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
    A flang/include/flang/Optimizer/Dialect/FIRType.h
    A flang/include/flang/Optimizer/Support/KindMapping.h
    M flang/lib/CMakeLists.txt
    R flang/lib/Fir/.clang-format
    A flang/lib/Optimizer/CMakeLists.txt
    A flang/lib/Optimizer/Dialect/CMakeLists.txt
    A flang/lib/Optimizer/Dialect/FIRAttr.cpp
    A flang/lib/Optimizer/Dialect/FIRDialect.cpp
    A flang/lib/Optimizer/Dialect/FIROps.cpp
    A flang/lib/Optimizer/Dialect/FIRType.cpp
    A flang/lib/Optimizer/Support/CMakeLists.txt
    A flang/lib/Optimizer/Support/KindMapping.cpp
    M flang/test-lit/CMakeLists.txt
    A flang/test-lit/Fir/fir-ops.fir
    A flang/test-lit/Fir/fir-types.fir
    M flang/test-lit/lit.cfg.py
    M flang/test-lit/lit.site.cfg.py.in
    M flang/tools/CMakeLists.txt
    A flang/tools/tco/CMakeLists.txt
    A flang/tools/tco/tco.cpp

  Log Message:
  -----------
  [flang] Add Fortran IR (FIR) MLIR dialect implementation (flang-compiler/f18#1035)

Adds FIR library that implements an MLIR dialect to which Fortran
parse-tree will be lowered to.

FIR is defined and documented inside FIROps.td added in this commit.
It is possible to generate a more readable description FIRLangRef.md
from FIROps.td following the related instructions added to the README.md
by this commit.

This patch adds FIR definition and implementation that allow parsing,
printing, and verifying FIR. FIR transformations and lowering to Standard
and LLVM dialects are not part of this patch. The FIR verifiers are verifying
the basic properties of FIR operations in order to provide a sufficient
frame for lowering. Verifiers for more advanced FIR properties can be added
as needed.

Coarrays are not covered by FIR defined in this patch.

This patch also adds tco tool that is meant to process FIR input files and
drives transformations on it. The tco tool is used for testing.
In this patch, it is only used to demonstrate parsing/verifying/
and dumping FIR with round-trip tests.

Note:
This commit does not reflect an actual work log, it is a feature-based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:

https://github.com/schweitzpgi/f18/commit/742edde572bd74d77cf7d447132ccf0949187fce
and
https://github.com/schweitzpgi/f18/commit/2ff55242126d86061f4fed9ef7b59d3636b5fd0b

Changes on top of these original commits were made during this patch review.

Original-commit: flang-compiler/f18 at 30b428a51e140e5fb12bd53a0619f10ff510f408
Reviewed-on: https://github.com/flang-compiler/f18/pull/1035


  Commit: 3064bdcce949f2ecf96b7bc4f154b3d7ccf5d5b6
      https://github.com/llvm/llvm-project/commit/3064bdcce949f2ecf96b7bc4f154b3d7ccf5d5b6
  Author: RichBarton-Arm <43278683+RichBarton-Arm at users.noreply.github.com>
  Date:   2020-03-12 (Thu, 12 Mar 2020)

  Changed paths:
    A flang/CODE_OWNERS.TXT

  Log Message:
  -----------
  [flang] Add initial CODE_OWNERS file (flang-compiler/f18#1066)

Original-commit: flang-compiler/f18 at e5f369d0863899b601079b2d97e9144c1fd0b71e
Reviewed-on: https://github.com/flang-compiler/f18/pull/1066


  Commit: 232711df35cc20cf8a8b4ae7568335bdcc749c61
      https://github.com/llvm/llvm-project/commit/232711df35cc20cf8a8b4ae7568335bdcc749c61
  Author: David Truby <david.truby at arm.com>
  Date:   2020-03-12 (Thu, 12 Mar 2020)

  Changed paths:
    M flang/documentation/Parsing.md

  Log Message:
  -----------
  [flang] Added documentation explaining the use of std::list (flang-compiler/f18#988)

Original-commit: flang-compiler/f18 at 094f55890775362f093bb62c57c13b8d3436c82e
Reviewed-on: https://github.com/flang-compiler/f18/pull/988


  Commit: 324bab9bf4d87201b958f032d15a4006d1c87a90
      https://github.com/llvm/llvm-project/commit/324bab9bf4d87201b958f032d15a4006d1c87a90
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2020-03-12 (Thu, 12 Mar 2020)

  Changed paths:
    M flang/CODE_OWNERS.TXT

  Log Message:
  -----------
  [flang] fix typo (flang-compiler/f18#1067)

Original-commit: flang-compiler/f18 at 4cdc9f75e2bd81889ccc4e30da8c40b2335f10c0
Reviewed-on: https://github.com/flang-compiler/f18/pull/1067


  Commit: 231fae90874bae6f224dcf5cd613218bc450731a
      https://github.com/llvm/llvm-project/commit/231fae90874bae6f224dcf5cd613218bc450731a
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2020-03-12 (Thu, 12 Mar 2020)

  Changed paths:
    M flang/runtime/connection.cpp
    M flang/runtime/edit-input.cpp
    M flang/runtime/edit-output.cpp
    M flang/runtime/format-implementation.h
    M flang/runtime/tools.cpp
    M flang/test/Runtime/testing.cpp

  Log Message:
  -----------
  [flang] Need <algorithm> for std::min and std::max (flang-compiler/f18#1063)

Original-commit: flang-compiler/f18 at d0f9ef7742132a5f9f7173b773aaac934484c7c1
Reviewed-on: https://github.com/flang-compiler/f18/pull/1063


  Commit: f856a5526ab17d28a58c65f0723b6e1e8909fb89
      https://github.com/llvm/llvm-project/commit/f856a5526ab17d28a58c65f0723b6e1e8909fb89
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIROps.td

  Log Message:
  -----------
  [flang] Support latest LLVM head with FIR - MLIR SideEffects interface change

Include new .td after LLVM changes:
https://github.com/llvm/llvm-project/commit/0ddba0bd59c337f16b51a00cb205ecfda46f97fa

Tested to work with LLVM head ecd3e678bbb11cf899603037ec2c5949b8d7fa6c
from 2020-03-13 01:45 am PCT

Backwards compatible with previous known compatible heads at least back to
fde9d33f7101bac631b26990d17822474d3a34e9 from 2020-03-10, so need to
update LLVM builds if they previously work with FIR.

Original-commit: flang-compiler/f18 at 45454587c932c23430f0f1eb81df816dd75de86b
Reviewed-on: https://github.com/flang-compiler/f18/pull/1071


  Commit: 9509a2f676c18a6412facf607f974290d01f2be2
      https://github.com/llvm/llvm-project/commit/9509a2f676c18a6412facf607f974290d01f2be2
  Author: jeanPerier <jeanPerier at users.noreply.github.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1071 from flang-compiler/jpr-fix-no-side-effects

Support latest LLVM head with FIR - MLIR SideEffects interface change

Original-commit: flang-compiler/f18 at d9fadfacbc6c5edb03f9c0b943fbe1b29f04c25b
Reviewed-on: https://github.com/flang-compiler/f18/pull/1071


  Commit: a9d9261cf36df29dbcd2f8f171e58c7f0ad2b8d5
      https://github.com/llvm/llvm-project/commit/a9d9261cf36df29dbcd2f8f171e58c7f0ad2b8d5
  Author: Luke Ireland <luke.ireland at arm.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
    M flang/test/Semantics/CMakeLists.txt
    M flang/test/Semantics/altreturn03.f90

  Log Message:
  -----------
  [flang] Re-enable semantics/altreturn{02,03} tests

These tests were disabled due to https://github.com/flang-compiler/f18/issues/407.
Previously these tests caused F18 to crash as the feature was not fully
implemented.

The altreturn feature is now implemented, so these tests can be
re-enabled. altreturn03 tested some negative cases which F18 correctly
diagnoses. Modified that test to expect these new error messages. Also
make the later cases in the test reachable.

These tests can now be ported by the script to lit-style tests.

Change-Id: Ib336c10d55068d9a26fc2deb43ad052e74e73456

Original-commit: flang-compiler/f18 at 4de19d7ba2df892ce4361461841c3997de439532
Reviewed-on: https://github.com/flang-compiler/f18/pull/1027
Tree-same-pre-rewrite: false


  Commit: ee5fa1f2338abb2dace0c43116cd73c283f96a3b
      https://github.com/llvm/llvm-project/commit/ee5fa1f2338abb2dace0c43116cd73c283f96a3b
  Author: Luke Ireland <luke.ireland at arm.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
    M flang/CMakeLists.txt
    R flang/test/CMakeLists.txt
    R flang/test/Decimal/CMakeLists.txt
    R flang/test/Decimal/quick-sanity-test.cpp
    R flang/test/Decimal/thorough-test.cpp
    R flang/test/Evaluate/CMakeLists.txt
    R flang/test/Evaluate/ISO-Fortran-binding.cpp
    R flang/test/Evaluate/bit-population-count.cpp
    R flang/test/Evaluate/expression.cpp
    R flang/test/Evaluate/folding.cpp
    R flang/test/Evaluate/fp-testing.cpp
    R flang/test/Evaluate/fp-testing.h
    R flang/test/Evaluate/integer.cpp
    R flang/test/Evaluate/intrinsics.cpp
    R flang/test/Evaluate/leading-zero-bit-count.cpp
    R flang/test/Evaluate/logical.cpp
    R flang/test/Evaluate/real.cpp
    R flang/test/Evaluate/reshape.cpp
    R flang/test/Evaluate/testing.cpp
    R flang/test/Evaluate/testing.h
    R flang/test/Evaluate/uint128.cpp
    R flang/test/Runtime/CMakeLists.txt
    R flang/test/Runtime/external-hello.cpp
    R flang/test/Runtime/format.cpp
    R flang/test/Runtime/hello.cpp
    R flang/test/Runtime/list-input.cpp
    R flang/test/Runtime/testing.cpp
    R flang/test/Runtime/testing.h
    A flang/unittests/CMakeLists.txt
    A flang/unittests/Decimal/CMakeLists.txt
    A flang/unittests/Decimal/quick-sanity-test.cpp
    A flang/unittests/Decimal/thorough-test.cpp
    A flang/unittests/Evaluate/CMakeLists.txt
    A flang/unittests/Evaluate/ISO-Fortran-binding.cpp
    A flang/unittests/Evaluate/bit-population-count.cpp
    A flang/unittests/Evaluate/expression.cpp
    A flang/unittests/Evaluate/folding.cpp
    A flang/unittests/Evaluate/fp-testing.cpp
    A flang/unittests/Evaluate/fp-testing.h
    A flang/unittests/Evaluate/integer.cpp
    A flang/unittests/Evaluate/intrinsics.cpp
    A flang/unittests/Evaluate/leading-zero-bit-count.cpp
    A flang/unittests/Evaluate/logical.cpp
    A flang/unittests/Evaluate/real.cpp
    A flang/unittests/Evaluate/reshape.cpp
    A flang/unittests/Evaluate/testing.cpp
    A flang/unittests/Evaluate/testing.h
    A flang/unittests/Evaluate/uint128.cpp
    A flang/unittests/Runtime/CMakeLists.txt
    A flang/unittests/Runtime/external-hello.cpp
    A flang/unittests/Runtime/format.cpp
    A flang/unittests/Runtime/hello.cpp
    A flang/unittests/Runtime/list-input.cpp
    A flang/unittests/Runtime/testing.cpp
    A flang/unittests/Runtime/testing.h

  Log Message:
  -----------
  [flang] Create a separate directory for unittests

Some of the regression tests are C programs that act as test harnesses
for the compiler internals as opposed to being Fortran inputs to test
the compiler in action. The former style of tests are analog to LLVM's
unittests and will not use the lit framework.

Change-Id: I0ff10e23f66ff843e8fff4c35cfb6559b9dab762

Original-commit: flang-compiler/f18 at 2bfddbe8f8898551a28c3ea07b7ae508018f8634
Reviewed-on: https://github.com/flang-compiler/f18/pull/1027
Tree-same-pre-rewrite: false


  Commit: f1a8eae3b6c2a660881c5db8fcde6241dc6cb6ef
      https://github.com/llvm/llvm-project/commit/f1a8eae3b6c2a660881c5db8fcde6241dc6cb6ef
  Author: Luke Ireland <luke.ireland at arm.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
    R flang/test-lit/Driver/version_test.f90
    R flang/test-lit/Fir/fir-ops.fir
    R flang/test-lit/Fir/fir-types.fir
    R flang/test-lit/Lower/pre-fir-tree01.f90
    R flang/test-lit/Lower/pre-fir-tree02.f90
    R flang/test-lit/Lower/pre-fir-tree03.f90
    R flang/test-lit/Lower/pre-fir-tree04.f90
    R flang/test-lit/Semantics/Inputs/mod-file-changed.f90
    R flang/test-lit/Semantics/Inputs/mod-file-unchanged.f90
    R flang/test-lit/Semantics/mod-file-rewriter.f90
    A flang/test/Driver/version_test.f90
    M flang/test/Evaluate/folding01.f90
    M flang/test/Evaluate/folding02.f90
    M flang/test/Evaluate/folding03.f90
    M flang/test/Evaluate/folding04.f90
    M flang/test/Evaluate/folding05.f90
    M flang/test/Evaluate/folding06.f90
    M flang/test/Evaluate/folding07.f90
    M flang/test/Evaluate/folding08.f90
    M flang/test/Evaluate/folding09.f90
    A flang/test/Fir/fir-ops.fir
    A flang/test/Fir/fir-types.fir
    A flang/test/Lower/pre-fir-tree01.f90
    A flang/test/Lower/pre-fir-tree02.f90
    A flang/test/Lower/pre-fir-tree03.f90
    A flang/test/Lower/pre-fir-tree04.f90
    A flang/test/Semantics/Inputs/getdefinition03-b.f90
    A flang/test/Semantics/Inputs/getsymbols02-a.f90
    A flang/test/Semantics/Inputs/getsymbols02-b.f90
    A flang/test/Semantics/Inputs/getsymbols02-c.f90
    A flang/test/Semantics/Inputs/getsymbols03-b.f90
    A flang/test/Semantics/Inputs/mod-file-changed.f90
    A flang/test/Semantics/Inputs/mod-file-unchanged.f90
    A flang/test/Semantics/Inputs/modfile09-a.f90
    A flang/test/Semantics/Inputs/modfile09-b.f90
    A flang/test/Semantics/Inputs/modfile09-c.f90
    A flang/test/Semantics/Inputs/modfile09-d.f90
    M flang/test/Semantics/allocate01.f90
    M flang/test/Semantics/allocate02.f90
    M flang/test/Semantics/allocate03.f90
    M flang/test/Semantics/allocate04.f90
    M flang/test/Semantics/allocate05.f90
    M flang/test/Semantics/allocate06.f90
    M flang/test/Semantics/allocate07.f90
    M flang/test/Semantics/allocate08.f90
    M flang/test/Semantics/allocate09.f90
    M flang/test/Semantics/allocate10.f90
    M flang/test/Semantics/allocate11.f90
    M flang/test/Semantics/allocate12.f90
    M flang/test/Semantics/allocate13.f90
    M flang/test/Semantics/altreturn01.f90
    M flang/test/Semantics/altreturn02.f90
    M flang/test/Semantics/altreturn03.f90
    M flang/test/Semantics/altreturn04.f90
    M flang/test/Semantics/altreturn05.f90
    M flang/test/Semantics/assign01.f90
    M flang/test/Semantics/assign02.f90
    M flang/test/Semantics/assign03.f90
    M flang/test/Semantics/assign04.f90
    M flang/test/Semantics/bad-forward-type.f90
    M flang/test/Semantics/bindings01.f90
    M flang/test/Semantics/block-data01.f90
    M flang/test/Semantics/blockconstruct01.f90
    M flang/test/Semantics/blockconstruct02.f90
    M flang/test/Semantics/blockconstruct03.f90
    M flang/test/Semantics/c_f_pointer.f90
    M flang/test/Semantics/call01.f90
    M flang/test/Semantics/call02.f90
    M flang/test/Semantics/call03.f90
    M flang/test/Semantics/call04.f90
    M flang/test/Semantics/call05.f90
    M flang/test/Semantics/call06.f90
    M flang/test/Semantics/call07.f90
    M flang/test/Semantics/call08.f90
    M flang/test/Semantics/call09.f90
    M flang/test/Semantics/call10.f90
    M flang/test/Semantics/call11.f90
    M flang/test/Semantics/call12.f90
    M flang/test/Semantics/call13.f90
    M flang/test/Semantics/call14.f90
    M flang/test/Semantics/call15.f90
    M flang/test/Semantics/canondo01.f90
    M flang/test/Semantics/canondo02.f90
    M flang/test/Semantics/canondo03.f90
    M flang/test/Semantics/canondo04.f90
    M flang/test/Semantics/canondo05.f90
    M flang/test/Semantics/canondo06.f90
    M flang/test/Semantics/canondo07.f90
    M flang/test/Semantics/canondo08.f90
    M flang/test/Semantics/canondo09.f90
    M flang/test/Semantics/canondo10.f90
    M flang/test/Semantics/canondo11.f90
    M flang/test/Semantics/canondo12.f90
    M flang/test/Semantics/canondo13.f90
    M flang/test/Semantics/canondo14.f90
    M flang/test/Semantics/canondo15.f90
    M flang/test/Semantics/canondo16.f90
    M flang/test/Semantics/canondo17.f90
    M flang/test/Semantics/canondo18.f90
    M flang/test/Semantics/canondo19.f90
    M flang/test/Semantics/coarrays01.f90
    M flang/test/Semantics/complex01.f90
    M flang/test/Semantics/computed-goto01.f90
    M flang/test/Semantics/computed-goto02.f90
    M flang/test/Semantics/critical01.f90
    M flang/test/Semantics/critical02.f90
    M flang/test/Semantics/critical03.f90
    M flang/test/Semantics/critical04.f90
    M flang/test/Semantics/data01.f90
    M flang/test/Semantics/data02.f90
    M flang/test/Semantics/deallocate01.f90
    M flang/test/Semantics/deallocate04.f90
    M flang/test/Semantics/deallocate05.f90
    M flang/test/Semantics/doconcurrent01.f90
    M flang/test/Semantics/doconcurrent02.f90
    M flang/test/Semantics/doconcurrent03.f90
    M flang/test/Semantics/doconcurrent04.f90
    M flang/test/Semantics/doconcurrent05.f90
    M flang/test/Semantics/doconcurrent06.f90
    M flang/test/Semantics/doconcurrent07.f90
    M flang/test/Semantics/doconcurrent08.f90
    M flang/test/Semantics/dosemantics01.f90
    M flang/test/Semantics/dosemantics02.f90
    M flang/test/Semantics/dosemantics03.f90
    M flang/test/Semantics/dosemantics04.f90
    M flang/test/Semantics/dosemantics05.f90
    M flang/test/Semantics/dosemantics06.f90
    M flang/test/Semantics/dosemantics07.f90
    M flang/test/Semantics/dosemantics08.f90
    M flang/test/Semantics/dosemantics09.f90
    M flang/test/Semantics/dosemantics10.f90
    M flang/test/Semantics/dosemantics11.f90
    M flang/test/Semantics/dosemantics12.f90
    M flang/test/Semantics/equivalence01.f90
    M flang/test/Semantics/expr-errors01.f90
    M flang/test/Semantics/expr-errors02.f90
    M flang/test/Semantics/forall01.f90
    M flang/test/Semantics/getdefinition01.f90
    M flang/test/Semantics/getdefinition02.f
    M flang/test/Semantics/getdefinition03-a.f90
    R flang/test/Semantics/getdefinition03-b.f90
    M flang/test/Semantics/getdefinition04.f90
    M flang/test/Semantics/getdefinition05.f90
    M flang/test/Semantics/getsymbols01.f90
    R flang/test/Semantics/getsymbols02-a.f90
    R flang/test/Semantics/getsymbols02-b.f90
    R flang/test/Semantics/getsymbols02-c.f90
    A flang/test/Semantics/getsymbols02.f90
    M flang/test/Semantics/getsymbols03-a.f90
    R flang/test/Semantics/getsymbols03-b.f90
    M flang/test/Semantics/getsymbols04.f90
    M flang/test/Semantics/getsymbols05.f90
    M flang/test/Semantics/if_arith01.f90
    M flang/test/Semantics/if_arith02.f90
    M flang/test/Semantics/if_arith03.f90
    M flang/test/Semantics/if_arith04.f90
    M flang/test/Semantics/if_construct01.f90
    M flang/test/Semantics/if_construct02.f90
    M flang/test/Semantics/if_stmt01.f90
    M flang/test/Semantics/if_stmt02.f90
    M flang/test/Semantics/if_stmt03.f90
    M flang/test/Semantics/implicit01.f90
    M flang/test/Semantics/implicit02.f90
    M flang/test/Semantics/implicit03.f90
    M flang/test/Semantics/implicit04.f90
    M flang/test/Semantics/implicit05.f90
    M flang/test/Semantics/implicit06.f90
    M flang/test/Semantics/implicit07.f90
    M flang/test/Semantics/implicit08.f90
    M flang/test/Semantics/init01.f90
    M flang/test/Semantics/int-literals.f90
    M flang/test/Semantics/io01.f90
    M flang/test/Semantics/io02.f90
    M flang/test/Semantics/io03.f90
    M flang/test/Semantics/io04.f90
    M flang/test/Semantics/io05.f90
    M flang/test/Semantics/io06.f90
    M flang/test/Semantics/io07.f90
    M flang/test/Semantics/io08.f90
    M flang/test/Semantics/io09.f90
    M flang/test/Semantics/io10.f90
    M flang/test/Semantics/kinds01.f90
    M flang/test/Semantics/kinds02.f90
    M flang/test/Semantics/kinds03.f90
    M flang/test/Semantics/kinds04.f90
    M flang/test/Semantics/label01.F90
    M flang/test/Semantics/label02.f90
    M flang/test/Semantics/label03.f90
    M flang/test/Semantics/label04.f90
    M flang/test/Semantics/label05.f90
    M flang/test/Semantics/label06.f90
    M flang/test/Semantics/label07.f90
    M flang/test/Semantics/label08.f90
    M flang/test/Semantics/label09.f90
    M flang/test/Semantics/label10.f90
    M flang/test/Semantics/label11.f90
    M flang/test/Semantics/label12.f90
    M flang/test/Semantics/label13.f90
    M flang/test/Semantics/label14.f90
    M flang/test/Semantics/misc-declarations.f90
    A flang/test/Semantics/mod-file-rewriter.f90
    M flang/test/Semantics/modfile01.f90
    M flang/test/Semantics/modfile02.f90
    M flang/test/Semantics/modfile03.f90
    M flang/test/Semantics/modfile04.f90
    M flang/test/Semantics/modfile05.f90
    M flang/test/Semantics/modfile06.f90
    M flang/test/Semantics/modfile07.f90
    M flang/test/Semantics/modfile08.f90
    R flang/test/Semantics/modfile09-a.f90
    R flang/test/Semantics/modfile09-b.f90
    R flang/test/Semantics/modfile09-c.f90
    R flang/test/Semantics/modfile09-d.f90
    A flang/test/Semantics/modfile09.f90
    M flang/test/Semantics/modfile10.f90
    M flang/test/Semantics/modfile11.f90
    M flang/test/Semantics/modfile12.f90
    M flang/test/Semantics/modfile13.f90
    M flang/test/Semantics/modfile14.f90
    M flang/test/Semantics/modfile15.f90
    M flang/test/Semantics/modfile16.f90
    M flang/test/Semantics/modfile17.f90
    M flang/test/Semantics/modfile18.f90
    M flang/test/Semantics/modfile19.f90
    M flang/test/Semantics/modfile20.f90
    M flang/test/Semantics/modfile21.f90
    M flang/test/Semantics/modfile22.f90
    M flang/test/Semantics/modfile23.f90
    M flang/test/Semantics/modfile24.f90
    M flang/test/Semantics/modfile25.f90
    M flang/test/Semantics/modfile26.f90
    M flang/test/Semantics/modfile27.f90
    M flang/test/Semantics/modfile28.f90
    M flang/test/Semantics/modfile29.f90
    M flang/test/Semantics/modfile30.f90
    M flang/test/Semantics/modfile31.f90
    M flang/test/Semantics/modfile32.f90
    M flang/test/Semantics/modfile33.f90
    M flang/test/Semantics/modfile34.f90
    M flang/test/Semantics/modfile35.f90
    M flang/test/Semantics/namelist01.f90
    M flang/test/Semantics/null01.f90
    M flang/test/Semantics/nullify01.f90
    M flang/test/Semantics/nullify02.f90
    M flang/test/Semantics/omp-atomic.f90
    M flang/test/Semantics/omp-clause-validity01.f90
    M flang/test/Semantics/omp-declarative-directive.f90
    M flang/test/Semantics/omp-device-constructs.f90
    M flang/test/Semantics/omp-loop-association.f90
    M flang/test/Semantics/omp-nested01.f90
    M flang/test/Semantics/omp-resolve01.f90
    M flang/test/Semantics/omp-resolve02.f90
    M flang/test/Semantics/omp-resolve03.f90
    M flang/test/Semantics/omp-resolve04.f90
    M flang/test/Semantics/omp-resolve05.f90
    M flang/test/Semantics/omp-symbol01.f90
    M flang/test/Semantics/omp-symbol02.f90
    M flang/test/Semantics/omp-symbol03.f90
    M flang/test/Semantics/omp-symbol04.f90
    M flang/test/Semantics/omp-symbol05.f90
    M flang/test/Semantics/omp-symbol06.f90
    M flang/test/Semantics/omp-symbol07.f90
    M flang/test/Semantics/omp-symbol08.f90
    M flang/test/Semantics/procinterface01.f90
    M flang/test/Semantics/resolve01.f90
    M flang/test/Semantics/resolve02.f90
    M flang/test/Semantics/resolve03.f90
    M flang/test/Semantics/resolve04.f90
    M flang/test/Semantics/resolve05.f90
    M flang/test/Semantics/resolve06.f90
    M flang/test/Semantics/resolve07.f90
    M flang/test/Semantics/resolve08.f90
    M flang/test/Semantics/resolve09.f90
    M flang/test/Semantics/resolve10.f90
    M flang/test/Semantics/resolve11.f90
    M flang/test/Semantics/resolve12.f90
    M flang/test/Semantics/resolve13.f90
    M flang/test/Semantics/resolve14.f90
    M flang/test/Semantics/resolve15.f90
    M flang/test/Semantics/resolve16.f90
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve18.f90
    M flang/test/Semantics/resolve19.f90
    M flang/test/Semantics/resolve20.f90
    M flang/test/Semantics/resolve21.f90
    M flang/test/Semantics/resolve22.f90
    M flang/test/Semantics/resolve23.f90
    M flang/test/Semantics/resolve24.f90
    M flang/test/Semantics/resolve25.f90
    M flang/test/Semantics/resolve26.f90
    M flang/test/Semantics/resolve27.f90
    M flang/test/Semantics/resolve28.f90
    M flang/test/Semantics/resolve29.f90
    M flang/test/Semantics/resolve30.f90
    M flang/test/Semantics/resolve31.f90
    M flang/test/Semantics/resolve32.f90
    M flang/test/Semantics/resolve33.f90
    M flang/test/Semantics/resolve34.f90
    M flang/test/Semantics/resolve35.f90
    M flang/test/Semantics/resolve36.f90
    M flang/test/Semantics/resolve37.f90
    M flang/test/Semantics/resolve38.f90
    M flang/test/Semantics/resolve39.f90
    M flang/test/Semantics/resolve40.f90
    M flang/test/Semantics/resolve41.f90
    M flang/test/Semantics/resolve42.f90
    M flang/test/Semantics/resolve43.f90
    M flang/test/Semantics/resolve44.f90
    M flang/test/Semantics/resolve45.f90
    M flang/test/Semantics/resolve46.f90
    M flang/test/Semantics/resolve47.f90
    M flang/test/Semantics/resolve48.f90
    M flang/test/Semantics/resolve49.f90
    M flang/test/Semantics/resolve50.f90
    M flang/test/Semantics/resolve51.f90
    M flang/test/Semantics/resolve52.f90
    M flang/test/Semantics/resolve53.f90
    M flang/test/Semantics/resolve54.f90
    M flang/test/Semantics/resolve55.f90
    M flang/test/Semantics/resolve56.f90
    M flang/test/Semantics/resolve57.f90
    M flang/test/Semantics/resolve58.f90
    M flang/test/Semantics/resolve59.f90
    M flang/test/Semantics/resolve60.f90
    M flang/test/Semantics/resolve61.f90
    M flang/test/Semantics/resolve62.f90
    M flang/test/Semantics/resolve63.f90
    M flang/test/Semantics/resolve64.f90
    M flang/test/Semantics/resolve65.f90
    M flang/test/Semantics/resolve66.f90
    M flang/test/Semantics/resolve67.f90
    M flang/test/Semantics/resolve68.f90
    M flang/test/Semantics/resolve69.f90
    M flang/test/Semantics/resolve70.f90
    M flang/test/Semantics/resolve71.f90
    M flang/test/Semantics/resolve72.f90
    M flang/test/Semantics/resolve73.f90
    M flang/test/Semantics/resolve74.f90
    M flang/test/Semantics/resolve75.f90
    M flang/test/Semantics/separate-module-procs.f90
    M flang/test/Semantics/stop01.f90
    M flang/test/Semantics/structconst01.f90
    M flang/test/Semantics/structconst02.f90
    M flang/test/Semantics/structconst03.f90
    M flang/test/Semantics/structconst04.f90
    M flang/test/Semantics/symbol01.f90
    M flang/test/Semantics/symbol02.f90
    M flang/test/Semantics/symbol03.f90
    M flang/test/Semantics/symbol05.f90
    M flang/test/Semantics/symbol06.f90
    M flang/test/Semantics/symbol07.f90
    M flang/test/Semantics/symbol08.f90
    M flang/test/Semantics/symbol09.f90
    M flang/test/Semantics/symbol10.f90
    M flang/test/Semantics/symbol11.f90
    M flang/test/Semantics/symbol12.f90
    M flang/test/Semantics/symbol13.f90
    M flang/test/Semantics/symbol14.f90
    M flang/test/Semantics/symbol15.f90
    M flang/test/Semantics/symbol16.f90
    M flang/test/Semantics/symbol17.f90

  Log Message:
  -----------
  [flang] Port all remaining regression tests to lit

We have re-classified a subset of the regression tests as unit tests and
now we are porting the remaining ones.

Test discovery and running is now performed by lit rather than ctest.
The tests continue to use their original scripts with minor
modifications. Most of the changes were mechanical and so scripted.
A few changes were made by hand. Details

Manual:
  * modfile09-*.f90 tests depend on being run together as some tests have
    dependencies on modules created by other tests. This will need
     separating out when porting away from test_modfile.sh, but for now,
     added modfile09-*.f90 to the Inputs directory and added a single
     tests modfile09.f90 to hold the run line.
  * getdefinition03-a.f90 includes a non-test file getdefinition03-b.f90.
    Manually edited the former to find the latter in Inputs so as to add
    only one test.
  * Same pattern for getsymbols03-{a,b}.f90

Auto:
  * Remaining tests have a lit RUN line added to them based on the type
    of test they are.
  * Failing tests also have an XFAIL line added to them.
  * Generic tests have their pre-existing RUN lines replaced with the
    word "EXEC" to avoid conflict with the added lit RUN line.

Original-commit: flang-compiler/f18 at 63ec0af9f4c8e736a626d1cd1410f71f4e578aa9
Reviewed-on: https://github.com/flang-compiler/f18/pull/1027
Tree-same-pre-rewrite: false


  Commit: da9d002b1816e9cc3fd03161cfbc2412e278608f
      https://github.com/llvm/llvm-project/commit/da9d002b1816e9cc3fd03161cfbc2412e278608f
  Author: Luke Ireland <luke.ireland at arm.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
    M flang/CMakeLists.txt
    R flang/test-lit/CMakeLists.txt
    R flang/test-lit/lit.cfg.py
    R flang/test-lit/lit.site.cfg.py.in
    A flang/test/CMakeLists.txt
    M flang/test/Evaluate/test_folding.sh
    A flang/test/Preprocessing/lit.local.cfg.py
    R flang/test/Semantics/CMakeLists.txt
    M flang/test/Semantics/common.sh
    M flang/test/Semantics/test_any.sh
    A flang/test/lit.cfg.py
    A flang/test/lit.site.cfg.py.in

  Log Message:
  -----------
  [flang] Added CMakeLists changes, moved config and made test scripts compatible.

All Fortran tests are now run in lit, except Preprocessing tests flang-compiler/f18#1052
Preprocessing tests are a separate kind of test, so will be sorted out
later.

Original-commit: flang-compiler/f18 at 3f99d35f3d4f57f704fd91a0d6ba8af308e900b3
Reviewed-on: https://github.com/flang-compiler/f18/pull/1027


  Commit: d91c28e45342cd3ac9e5c185cc5eda2525884508
      https://github.com/llvm/llvm-project/commit/d91c28e45342cd3ac9e5c185cc5eda2525884508
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1027 from LukeIreland1/master

Porting F18 tests to use LLVM lit without FileCheck

Original-commit: flang-compiler/f18 at 89bc84fe562ca2a2622438ac14908bce39fa7cfc
Reviewed-on: https://github.com/flang-compiler/f18/pull/1027


  Commit: 38ebace5b7f801b22eb6841b0e55744d3bd07249
      https://github.com/llvm/llvm-project/commit/38ebace5b7f801b22eb6841b0e55744d3bd07249
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
    M flang/lib/Evaluate/expression.cpp
    M flang/lib/Evaluate/formatting.cpp

  Log Message:
  -----------
  [flang] Complete formatting of pointer assignments, move to formatting.cpp with rest of AsFortran

Original-commit: flang-compiler/f18 at 9625317ee8aed40a3827fe551cecf08aa34ee7a2
Reviewed-on: https://github.com/flang-compiler/f18/pull/1073


  Commit: bc0825f96b110adb1d62cec2658db69e1b7618a6
      https://github.com/llvm/llvm-project/commit/bc0825f96b110adb1d62cec2658db69e1b7618a6
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-16 (Mon, 16 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1073 from flang-compiler/pmk-ptr-asst-asfortran

Complete formatting of pointer assignments

Original-commit: flang-compiler/f18 at 07b8ab1907102ef4d2f6248c0786d3738ae5d871
Reviewed-on: https://github.com/flang-compiler/f18/pull/1073


  Commit: 2bd473de8207dcd5fc870a1c7b8f3e42bf1f4636
      https://github.com/llvm/llvm-project/commit/2bd473de8207dcd5fc870a1c7b8f3e42bf1f4636
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-16 (Mon, 16 Mar 2020)

  Changed paths:
    A flang/runtime/allocatable.h

  Log Message:
  -----------
  [flang] more edits

Remove AllocateDefaultCharacter

Refinements in code review

Original-commit: flang-compiler/f18 at 688512ddc671fa1ed54224b7cfef49a1c2284c99
Reviewed-on: https://github.com/flang-compiler/f18/pull/1070


  Commit: 631513fd395f77b8205270f71e0df35a43279b76
      https://github.com/llvm/llvm-project/commit/631513fd395f77b8205270f71e0df35a43279b76
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-16 (Mon, 16 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1070 from flang-compiler/pmk-io

First cut at runtime API for allocatable management

Original-commit: flang-compiler/f18 at d9232d6efda7c89a1df080d28b29059a6937e7a0
Reviewed-on: https://github.com/flang-compiler/f18/pull/1070


  Commit: 6905526a10922116952511dd3e1de940bf3585f0
      https://github.com/llvm/llvm-project/commit/6905526a10922116952511dd3e1de940bf3585f0
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-16 (Mon, 16 Mar 2020)

  Changed paths:
    M flang/README.md
    M flang/test/Semantics/omp-nested01.f90

  Log Message:
  -----------
  [flang] Test cleanup

Fix omp-nested01.f90 so that it is not an expected failure. The test was
never enabled but I'm guessing this is what it's supposed to do.

Fix the instructions to include "make test" as part of running tests.

Original-commit: flang-compiler/f18 at c351181cabb234f73cb09c23e45dfe0bfc2d7219
Reviewed-on: https://github.com/flang-compiler/f18/pull/1075


  Commit: d2c87e0b36488500b38c35ad4976eb3ed5e4b141
      https://github.com/llvm/llvm-project/commit/d2c87e0b36488500b38c35ad4976eb3ed5e4b141
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-16 (Mon, 16 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1075 from flang-compiler/tsk-tests

Test cleanup

Original-commit: flang-compiler/f18 at 809f4116f2086a8941bf786a5ac091885283494a
Reviewed-on: https://github.com/flang-compiler/f18/pull/1075


  Commit: f4faeefe3d635ce566cd13fe99d48c48023cff42
      https://github.com/llvm/llvm-project/commit/f4faeefe3d635ce566cd13fe99d48c48023cff42
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M flang/include/flang/Evaluate/formatting.h
    M flang/lib/Evaluate/formatting.cpp
    M flang/test/Semantics/modfile16.f90
    M flang/test/Semantics/modfile20.f90
    M flang/test/Semantics/modfile21.f90
    M flang/test/Semantics/modfile22.f90
    M flang/test/Semantics/modfile28.f90
    M flang/test/Semantics/modfile30.f90
    M flang/tools/f18/f18.cpp

  Log Message:
  -----------
  [flang] Do not emit a prefix for a default-kind character constant in AsFortran

Original-commit: flang-compiler/f18 at 4a3db55727a93805d3f047713e5d253543ee51fa
Reviewed-on: https://github.com/flang-compiler/f18/pull/1078


  Commit: 8aa62d81e811db87fd2e6145d8375026430c01e7
      https://github.com/llvm/llvm-project/commit/8aa62d81e811db87fd2e6145d8375026430c01e7
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1078 from flang-compiler/pmk-no-prefix-dft-char

Do not emit a prefix for a default-kind character constant in AsFortran

Original-commit: flang-compiler/f18 at 0011011a04ec13df7bcccd81b2f931f4e420eef9
Reviewed-on: https://github.com/flang-compiler/f18/pull/1078


  Commit: d1ce4d275f6a64c1cbe83d42ba56a99e9ee87a39
      https://github.com/llvm/llvm-project/commit/d1ce4d275f6a64c1cbe83d42ba56a99e9ee87a39
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/call02.f90
    M flang/test/Semantics/call09.f90
    M flang/test/Semantics/call10.f90

  Log Message:
  -----------
  [flang] Fix location of name of Symbol for ProcEntity

When we encounter a ProcDecl and a symbol for it has already been
created, replace the CharBlock for the name with the one in the ProcDecl
as it is the "main" declaration of that name. This matches what is done
for an EntityDecl.

This moves the location of some error messages to a better source
location so update the affected tests.

Original-commit: flang-compiler/f18 at 514c0f2c9477040f830fbf0495e4d38129648615
Reviewed-on: https://github.com/flang-compiler/f18/pull/1080
Tree-same-pre-rewrite: false


  Commit: 824d198e3147611ca4f11fe3fb96c994d51fbbdf
      https://github.com/llvm/llvm-project/commit/824d198e3147611ca4f11fe3fb96c994d51fbbdf
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/scope.h
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/scope.cpp
    A flang/test/Semantics/resolve76.f90

  Log Message:
  -----------
  [flang] Create symbols for args of separate-module-subprogram

A separate-module-subprogram is declared as `module procedure ...`
and gets its characteristics from the declaration of that name as
a separate module procedure. When we encounter one, we need to create
symbols in the new subprogram scope for the dummy arguments and
function return (if any).

The failure to create these symbols led to the bug in issue flang-compiler/f18#1054:
when a dummy argument was referenced, the compiler interpreted it as
an implicit declaration because there was no symbol for the argument.

Fixes flang-compiler/f18#1054.

Original-commit: flang-compiler/f18 at 4d3c4bac843dcc6351fbe7538c6ce23bb9c1a215
Reviewed-on: https://github.com/flang-compiler/f18/pull/1080
Tree-same-pre-rewrite: false


  Commit: 61b1390e2afccac4c64f491f761d25f78b225ac4
      https://github.com/llvm/llvm-project/commit/61b1390e2afccac4c64f491f761d25f78b225ac4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M flang/include/flang/Evaluate/characteristics.h
    M flang/include/flang/Semantics/scope.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/scope.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/test/Semantics/resolve36.f90
    R flang/test/Semantics/separate-module-procs.f90
    A flang/test/Semantics/separate-mp01.f90
    A flang/test/Semantics/separate-mp02.f90

  Log Message:
  -----------
  [flang] Check module subprogram against separate module procedure

When a module subprogram has the MODULE prefix the following must match
with the corresponding separate module procedure interface body:
- C1549: characteristics and dummy argument names
- C1550: binding label
- C1551: NON_RECURSIVE prefix

SubprogramMatchHelper performs all of these checks.

Rename separate-module-procs.f90 to separate-mp01.f90 so we can have
separate-mp02.f90 (etc).

Make ShapesAreCompatible public in characteristics.h.

Add Scope::IsSubmodule.

Original-commit: flang-compiler/f18 at d121578af17109de3cea23617e4b8239971b5527
Reviewed-on: https://github.com/flang-compiler/f18/pull/1080


  Commit: 206763bfcfa0eeeb51d94d0fbc3fedbc402a8ea8
      https://github.com/llvm/llvm-project/commit/206763bfcfa0eeeb51d94d0fbc3fedbc402a8ea8
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1080 from flang-compiler/tsk-issue1054

Fixes for separate module procedures

Original-commit: flang-compiler/f18 at bb225be9b1aa0ca9cc56727c83821c49db102117
Reviewed-on: https://github.com/flang-compiler/f18/pull/1080


  Commit: 9977b24a6d88ba97052591fc95e581a3c9af3fdf
      https://github.com/llvm/llvm-project/commit/9977b24a6d88ba97052591fc95e581a3c9af3fdf
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-18 (Wed, 18 Mar 2020)

  Changed paths:
    M flang/include/flang/Evaluate/check-expression.h
    M flang/include/flang/Semantics/expression.h
    M flang/include/flang/Semantics/symbol.h
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/program-tree.h
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/resolve-names.h
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/expr-errors02.f90
    M flang/test/Semantics/resolve59.f90
    A flang/test/Semantics/resolve77.f90

  Log Message:
  -----------
  [flang] Improve error message for procedure passed as invalid argument to an intrinsic

Support forward references to sibling module procedures

Add tests, handle corner cases

Rename new test

Original-commit: flang-compiler/f18 at 234bb519cd38d0b9234fc0b4a8d11cfcb9935e6a
Reviewed-on: https://github.com/flang-compiler/f18/pull/1076


  Commit: fc23a1bb79a54d401c1af8cfd3edeccf39d2e474
      https://github.com/llvm/llvm-project/commit/fc23a1bb79a54d401c1af8cfd3edeccf39d2e474
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-18 (Wed, 18 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1076 from flang-compiler/pmk-fix-forward

Support forward references to sibling module procedures

Original-commit: flang-compiler/f18 at 8c8cdd60914e1438c6861749218893cf655bdbb8
Reviewed-on: https://github.com/flang-compiler/f18/pull/1076


  Commit: 8670e49901d116b2094aeb0a5117edef9e69cdcf
      https://github.com/llvm/llvm-project/commit/8670e49901d116b2094aeb0a5117edef9e69cdcf
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2020-03-19 (Thu, 19 Mar 2020)

  Changed paths:
    M flang/documentation/ParserCombinators.md
    M flang/include/flang/Common/enum-set.h
    M flang/include/flang/Evaluate/call.h
    M flang/include/flang/Evaluate/characteristics.h
    M flang/include/flang/Evaluate/complex.h
    M flang/include/flang/Evaluate/constant.h
    M flang/include/flang/Evaluate/expression.h
    M flang/include/flang/Evaluate/formatting.h
    M flang/include/flang/Evaluate/intrinsics.h
    M flang/include/flang/Evaluate/real.h
    M flang/include/flang/Evaluate/static-data.h
    M flang/include/flang/Evaluate/variable.h
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/include/flang/Parser/char-block.h
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/instrumented-parser.h
    M flang/include/flang/Parser/message.h
    M flang/include/flang/Parser/parsing.h
    M flang/include/flang/Parser/provenance.h
    M flang/include/flang/Parser/source.h
    M flang/include/flang/Parser/unparse.h
    M flang/include/flang/Parser/user-state.h
    M flang/include/flang/Semantics/attr.h
    M flang/include/flang/Semantics/scope.h
    M flang/include/flang/Semantics/semantics.h
    M flang/include/flang/Semantics/symbol.h
    M flang/include/flang/Semantics/type.h
    M flang/include/flang/Semantics/unparse-with-symbols.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Evaluate/complex.cpp
    M flang/lib/Evaluate/expression.cpp
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Evaluate/host.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Evaluate/real.cpp
    M flang/lib/Evaluate/static-data.cpp
    M flang/lib/Evaluate/type.cpp
    M flang/lib/Evaluate/variable.cpp
    M flang/lib/Parser/CMakeLists.txt
    M flang/lib/Parser/char-block.cpp
    M flang/lib/Parser/debug-parser.cpp
    M flang/lib/Parser/instrumented-parser.cpp
    M flang/lib/Parser/message.cpp
    M flang/lib/Parser/parse-tree.cpp
    M flang/lib/Parser/parsing.cpp
    M flang/lib/Parser/preprocessor.cpp
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/provenance.cpp
    M flang/lib/Parser/source.cpp
    M flang/lib/Parser/token-sequence.cpp
    M flang/lib/Parser/token-sequence.h
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/attr.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/mod-file.h
    M flang/lib/Semantics/pointer-assignment.cpp
    M flang/lib/Semantics/resolve-names-utils.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/resolve-names.h
    M flang/lib/Semantics/scope.cpp
    M flang/lib/Semantics/semantics.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/lib/Semantics/type.cpp
    M flang/lib/Semantics/unparse-with-symbols.cpp
    M flang/tools/f18/dump.cpp
    M flang/tools/f18/f18-parse-demo.cpp
    M flang/tools/f18/f18.cpp
    M flang/unittests/Decimal/CMakeLists.txt
    M flang/unittests/Decimal/quick-sanity-test.cpp
    M flang/unittests/Decimal/thorough-test.cpp
    M flang/unittests/Evaluate/CMakeLists.txt
    M flang/unittests/Evaluate/ISO-Fortran-binding.cpp
    M flang/unittests/Evaluate/fp-testing.cpp
    M flang/unittests/Evaluate/intrinsics.cpp
    M flang/unittests/Evaluate/real.cpp
    M flang/unittests/Evaluate/testing.cpp
    M flang/unittests/Evaluate/uint128.cpp
    M flang/unittests/Runtime/CMakeLists.txt
    M flang/unittests/Runtime/format.cpp
    M flang/unittests/Runtime/hello.cpp
    M flang/unittests/Runtime/list-input.cpp
    M flang/unittests/Runtime/testing.cpp
    M flang/unittests/Runtime/testing.h

  Log Message:
  -----------
  [flang] [LLVMify F18] Replace the use std::ostream with LLVM streams llvm::ostream

This patch replaces the occurrence of std::ostream by llvm::raw_ostream.
In  LLVM Coding Standards[1] "All new code should use raw_ostream
instead of ostream".[1]

As a consequence, this patch also replaces the use of:
   std::stringstream by llvm::raw_string_ostream or llvm::raw_ostream*
   std::ofstream by llvm::raw_fd_ostream
   std::endl by '\n' and flush()[2]
   std::cout by llvm::outs()   and
   std::cerr by llvm::errs()

It also replaces  std::strerro by llvm::sys::StrError** , but NOT in  Fortran
runtime libraries

*std::stringstream were replaced by llvm::raw_ostream in all methods that
used std::stringstream as a parameter. Moreover, it removes the pointers to
these streams.

[1]https://llvm.org/docs/CodingStandards.html
[2]https://releases.llvm.org/2.5/docs/CodingStandards.html#ll_avoidendl

Signed-off-by: Caroline Concatto <caroline.concatto at arm.com>

Running clang-format-7

Signed-off-by: Caroline Concatto <caroline.concatto at arm.com>

Removing residue of ostream library

Signed-off-by: Caroline Concatto <caroline.concatto at arm.com>

Original-commit: flang-compiler/f18 at a3507d44b8911e6024033aa583c1dc54e0eb89fd
Reviewed-on: https://github.com/flang-compiler/f18/pull/1047


  Commit: 901198441ffa6dea0953bcef4bc5c238708b384a
      https://github.com/llvm/llvm-project/commit/901198441ffa6dea0953bcef4bc5c238708b384a
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-19 (Thu, 19 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1047 from CarolineConcatto/llvm_ostream

[LLVMify F18] Replace the use std::ostream with LLVM streams llvm::ostream

Original-commit: flang-compiler/f18 at a65b690ef00351bd6bc02593ddbd45fa240e9cbc
Reviewed-on: https://github.com/flang-compiler/f18/pull/1047


  Commit: 13ea73e42db3685091b1028991cf9f68d07fd7ac
      https://github.com/llvm/llvm-project/commit/13ea73e42db3685091b1028991cf9f68d07fd7ac
  Author: David Truby <david.truby at arm.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:
    M flang/include/flang/Parser/source.h
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/provenance.cpp
    M flang/lib/Parser/source.cpp
    M flang/lib/Semantics/mod-file.cpp
    A flang/test/Semantics/empty.f90

  Log Message:
  -----------
  [flang] Replace manual mmap with llvm::MemoryBuffer

The previous code had handling for cases when too many file descriptors may be
opened; this is not necessary with MemoryBuffer as the file descriptors are
closed after the mapping occurs. MemoryBuffer also internally handles the case
where a file is small and therefore an mmap is bad for performance; such files
are simply copied to memory after being opened.

Many places elsewhere in the code assume that the buffer is not empty, and the
old file opening code handles this by replacing an empty file with a buffer
containing a single newline. That behavior is now kept in the new MemoryBuffer
based code.

Original-commit: flang-compiler/f18 at d34df8435127d847867e2c0bb157def9f20f4202
Reviewed-on: https://github.com/flang-compiler/f18/pull/1032


  Commit: 37524c901a82353e8aac3083d6867b7112dac712
      https://github.com/llvm/llvm-project/commit/37524c901a82353e8aac3083d6867b7112dac712
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1032 from DavidTruby/memorybuffer

Replace manual mmap with llvm::MemoryBuffer

Original-commit: flang-compiler/f18 at 35f7defccf98823a930ce5d736c3bcba4f143e2e
Reviewed-on: https://github.com/flang-compiler/f18/pull/1032


  Commit: 3214c18774f9f4574cc00cb9651ea142d7a74d76
      https://github.com/llvm/llvm-project/commit/3214c18774f9f4574cc00cb9651ea142d7a74d76
  Author: David Truby <david.truby at arm.com>
  Date:   2020-03-23 (Mon, 23 Mar 2020)

  Changed paths:
    M flang/.clang-format
    M flang/documentation/C++style.md
    M flang/documentation/PullRequestChecklist.md

  Log Message:
  -----------
  [flang] Remove non-alignment based divergences from LLVM formatting.

This only changs the clang-format file and adds documentation
referring to the new process for formatting code. A future commit
will perform a reformatting according to these new formatting
settings.

Original-commit: flang-compiler/f18 at 02531d788e7550a2455633f87d22e3f30de7a3a7
Reviewed-on: https://github.com/flang-compiler/f18/pull/945


  Commit: 23c227a97157758587a9f95ef6c2b5bfc13f95e2
      https://github.com/llvm/llvm-project/commit/23c227a97157758587a9f95ef6c2b5bfc13f95e2
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#945 from DavidTruby/clang-format

Bump clang-format version and remove some differences from LLVM

Original-commit: flang-compiler/f18 at a999575211e80e2fe9e8cd74a22e0cd3365bde17
Reviewed-on: https://github.com/flang-compiler/f18/pull/945


  Commit: e17e71735e902fbbe3e3845fed18341c1492df0d
      https://github.com/llvm/llvm-project/commit/e17e71735e902fbbe3e3845fed18341c1492df0d
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/attr.h
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/kinds02.f90
    A flang/test/Semantics/resolve78.f90
    A flang/test/Semantics/resolve79.f90
    A flang/test/Semantics/resolve80.f90
    A flang/test/Semantics/resolve81.f90
    A flang/test/Semantics/resolve82.f90
    A flang/test/Semantics/resolve83.f90
    A flang/test/Semantics/resolve84.f90
    A flang/test/Semantics/resolve85.f90

  Log Message:
  -----------
  [flang] Changes to enforce constraints C727 to C730 and most constraints related to attributes

The full list of constraints is C727, C728, C729, C730, C743, C755, C759, C778,
and C1543.

I added a function to tools.cpp to check to see if a symbol name is the name
of an intrinsic type.

The biggest change was to resolve-names.cpp to check to see if attributes were
either duplicated or in conflict with each other.  I changed all locations
where attributes were set to check for duplicates or conflicts.

I also added tests for all checks and annotated the tests and code with the
numbers of the constraints being tested/checked.

Original-commit: flang-compiler/f18 at 3f30e8a61e605b9ca6a67791469053286ae563b2
Reviewed-on: https://github.com/flang-compiler/f18/pull/1084


  Commit: 55a500989aa3928163a8628f9e437344e6540a11
      https://github.com/llvm/llvm-project/commit/55a500989aa3928163a8628f9e437344e6540a11
  Author: Pete Steinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1084 from flang-compiler/ps-typechecks

Constraint checks C727 to C730 and most constraints related to attributes

Original-commit: flang-compiler/f18 at 6dbfb80915bcebb9143f87b9d69b0a2667647b90
Reviewed-on: https://github.com/flang-compiler/f18/pull/1084


  Commit: c42f6314eb799a553dde841e7ab3456e04253c52
      https://github.com/llvm/llvm-project/commit/c42f6314eb799a553dde841e7ab3456e04253c52
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:
    M flang/include/flang/Semantics/symbol.h
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/semantics.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/assign04.f90
    A flang/test/Semantics/entry01.f90

  Log Message:
  -----------
  [flang] Semantics for ENTRY

initial test passes

Move some checks to check-declarations

Fix bugs found in testing

Get tests all passing

Allow declaration statements for function result to follow ENTRY

Fix another bug

Original-commit: flang-compiler/f18 at e82cfee4325f90e3c6ed08e797fa940259948ffd
Reviewed-on: https://github.com/flang-compiler/f18/pull/1086


  Commit: 63fb36c494b9ad98ccd373d32c314edfc5891ff6
      https://github.com/llvm/llvm-project/commit/63fb36c494b9ad98ccd373d32c314edfc5891ff6
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1086 from flang-compiler/pmk-entry

Semantics and test for ENTRY statements

Original-commit: flang-compiler/f18 at 0fafe398b41c3694ca8c7961cdfd1e13970db5e6
Reviewed-on: https://github.com/flang-compiler/f18/pull/1086


  Commit: cc77f818f21371287bf692ca2a3968b81c5dc9f1
      https://github.com/llvm/llvm-project/commit/cc77f818f21371287bf692ca2a3968b81c5dc9f1
  Author: David Truby <david.truby at arm.com>
  Date:   2020-03-25 (Wed, 25 Mar 2020)

  Changed paths:
    M flang/lib/Semantics/check-do-forall.cpp

  Log Message:
  -----------
  [flang] Add explicit nullptr check in initialisation of inDoConstruct.

This explicit check is needed as we are using braced initialisation here so
implicit narrowing conversions (such as pointer to bool) are not allowed.

Original-commit: flang-compiler/f18 at ff8dad10bffb70666ba3b4ff229dc4b608f9e116
Reviewed-on: https://github.com/flang-compiler/f18/pull/1083


  Commit: 53d5d9f631e3a2274a714869e29c1465ced72fe0
      https://github.com/llvm/llvm-project/commit/53d5d9f631e3a2274a714869e29c1465ced72fe0
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-25 (Wed, 25 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1083 from DavidTruby/static_cast

Add explicit nullptr check in initialisation of inDoConstruct.

Original-commit: flang-compiler/f18 at d14e0aa9366030ff801fb0f105b70faee64d1b4c
Reviewed-on: https://github.com/flang-compiler/f18/pull/1083


  Commit: 6c16aa4f67f7938d6bc0ced36d192f5d7f8a3dab
      https://github.com/llvm/llvm-project/commit/6c16aa4f67f7938d6bc0ced36d192f5d7f8a3dab
  Author: Patrick McCormick <pat at lanl.gov>
  Date:   2020-03-26 (Thu, 26 Mar 2020)

  Changed paths:
    M flang/.gitignore
    M flang/CMakeLists.txt
    M flang/README.md
    A flang/cmake/modules/AddFlang.cmake
    A flang/cmake/modules/CMakeLists.txt
    A flang/cmake/modules/FlangConfig.cmake.in
    A flang/include/CMakeLists.txt
    A flang/include/flang/Version.inc.in
    M flang/lib/CMakeLists.txt
    M flang/lib/Common/CMakeLists.txt
    M flang/lib/Decimal/CMakeLists.txt
    M flang/lib/Evaluate/CMakeLists.txt
    M flang/lib/Parser/CMakeLists.txt
    M flang/lib/Semantics/CMakeLists.txt
    M flang/test/CMakeLists.txt
    A flang/test/Semantics/CMakeLists.txt
    M flang/test/Semantics/allocate01.f90
    M flang/test/Semantics/allocate02.f90
    M flang/test/Semantics/allocate03.f90
    M flang/test/Semantics/allocate04.f90
    M flang/test/Semantics/allocate05.f90
    M flang/test/Semantics/allocate06.f90
    M flang/test/Semantics/allocate07.f90
    M flang/test/Semantics/allocate08.f90
    M flang/test/Semantics/allocate09.f90
    M flang/test/Semantics/allocate10.f90
    M flang/test/Semantics/allocate11.f90
    M flang/test/Semantics/allocate12.f90
    M flang/test/Semantics/allocate13.f90
    M flang/test/Semantics/altreturn01.f90
    M flang/test/Semantics/altreturn02.f90
    M flang/test/Semantics/altreturn03.f90
    M flang/test/Semantics/altreturn04.f90
    M flang/test/Semantics/altreturn05.f90
    M flang/test/Semantics/assign01.f90
    M flang/test/Semantics/assign02.f90
    M flang/test/Semantics/assign03.f90
    M flang/test/Semantics/assign04.f90
    M flang/test/Semantics/bad-forward-type.f90
    M flang/test/Semantics/bindings01.f90
    M flang/test/Semantics/block-data01.f90
    M flang/test/Semantics/blockconstruct01.f90
    M flang/test/Semantics/blockconstruct02.f90
    M flang/test/Semantics/blockconstruct03.f90
    M flang/test/Semantics/c_f_pointer.f90
    M flang/test/Semantics/call01.f90
    M flang/test/Semantics/call02.f90
    M flang/test/Semantics/call03.f90
    M flang/test/Semantics/call04.f90
    M flang/test/Semantics/call05.f90
    M flang/test/Semantics/call06.f90
    M flang/test/Semantics/call07.f90
    M flang/test/Semantics/call08.f90
    M flang/test/Semantics/call09.f90
    M flang/test/Semantics/call10.f90
    M flang/test/Semantics/call11.f90
    M flang/test/Semantics/call12.f90
    M flang/test/Semantics/call13.f90
    M flang/test/Semantics/call14.f90
    M flang/test/Semantics/call15.f90
    M flang/test/Semantics/canondo16.f90
    M flang/test/Semantics/coarrays01.f90
    M flang/test/Semantics/complex01.f90
    M flang/test/Semantics/computed-goto01.f90
    M flang/test/Semantics/computed-goto02.f90
    M flang/test/Semantics/critical01.f90
    M flang/test/Semantics/critical02.f90
    M flang/test/Semantics/critical03.f90
    M flang/test/Semantics/data01.f90
    M flang/test/Semantics/data02.f90
    M flang/test/Semantics/deallocate01.f90
    M flang/test/Semantics/deallocate04.f90
    M flang/test/Semantics/deallocate05.f90
    M flang/test/Semantics/doconcurrent01.f90
    M flang/test/Semantics/doconcurrent05.f90
    M flang/test/Semantics/doconcurrent06.f90
    M flang/test/Semantics/doconcurrent08.f90
    M flang/test/Semantics/dosemantics01.f90
    M flang/test/Semantics/dosemantics02.f90
    M flang/test/Semantics/dosemantics03.f90
    M flang/test/Semantics/dosemantics04.f90
    M flang/test/Semantics/dosemantics05.f90
    M flang/test/Semantics/dosemantics06.f90
    M flang/test/Semantics/dosemantics07.f90
    M flang/test/Semantics/dosemantics08.f90
    M flang/test/Semantics/dosemantics09.f90
    M flang/test/Semantics/dosemantics10.f90
    M flang/test/Semantics/dosemantics11.f90
    M flang/test/Semantics/dosemantics12.f90
    M flang/test/Semantics/entry01.f90
    M flang/test/Semantics/equivalence01.f90
    M flang/test/Semantics/expr-errors01.f90
    M flang/test/Semantics/expr-errors02.f90
    M flang/test/Semantics/forall01.f90
    M flang/test/Semantics/if_arith01.f90
    M flang/test/Semantics/if_arith02.f90
    M flang/test/Semantics/if_arith03.f90
    M flang/test/Semantics/if_arith04.f90
    M flang/test/Semantics/if_construct01.f90
    M flang/test/Semantics/if_construct02.f90
    M flang/test/Semantics/if_stmt01.f90
    M flang/test/Semantics/if_stmt02.f90
    M flang/test/Semantics/if_stmt03.f90
    M flang/test/Semantics/implicit01.f90
    M flang/test/Semantics/implicit02.f90
    M flang/test/Semantics/implicit03.f90
    M flang/test/Semantics/implicit04.f90
    M flang/test/Semantics/implicit05.f90
    M flang/test/Semantics/implicit06.f90
    M flang/test/Semantics/implicit07.f90
    M flang/test/Semantics/implicit08.f90
    M flang/test/Semantics/init01.f90
    M flang/test/Semantics/int-literals.f90
    M flang/test/Semantics/io01.f90
    M flang/test/Semantics/io02.f90
    M flang/test/Semantics/io03.f90
    M flang/test/Semantics/io04.f90
    M flang/test/Semantics/io05.f90
    M flang/test/Semantics/io06.f90
    M flang/test/Semantics/io07.f90
    M flang/test/Semantics/io08.f90
    M flang/test/Semantics/io09.f90
    M flang/test/Semantics/io10.f90
    M flang/test/Semantics/kinds02.f90
    M flang/test/Semantics/kinds04.f90
    M flang/test/Semantics/misc-declarations.f90
    M flang/test/Semantics/namelist01.f90
    M flang/test/Semantics/null01.f90
    M flang/test/Semantics/nullify01.f90
    M flang/test/Semantics/nullify02.f90
    M flang/test/Semantics/omp-atomic.f90
    M flang/test/Semantics/omp-clause-validity01.f90
    M flang/test/Semantics/omp-declarative-directive.f90
    M flang/test/Semantics/omp-device-constructs.f90
    M flang/test/Semantics/omp-loop-association.f90
    M flang/test/Semantics/omp-nested01.f90
    M flang/test/Semantics/omp-resolve01.f90
    M flang/test/Semantics/omp-resolve02.f90
    M flang/test/Semantics/omp-resolve03.f90
    M flang/test/Semantics/omp-resolve04.f90
    M flang/test/Semantics/omp-resolve05.f90
    M flang/test/Semantics/resolve01.f90
    M flang/test/Semantics/resolve02.f90
    M flang/test/Semantics/resolve03.f90
    M flang/test/Semantics/resolve04.f90
    M flang/test/Semantics/resolve05.f90
    M flang/test/Semantics/resolve06.f90
    M flang/test/Semantics/resolve07.f90
    M flang/test/Semantics/resolve08.f90
    M flang/test/Semantics/resolve09.f90
    M flang/test/Semantics/resolve10.f90
    M flang/test/Semantics/resolve11.f90
    M flang/test/Semantics/resolve12.f90
    M flang/test/Semantics/resolve13.f90
    M flang/test/Semantics/resolve14.f90
    M flang/test/Semantics/resolve15.f90
    M flang/test/Semantics/resolve16.f90
    M flang/test/Semantics/resolve17.f90
    M flang/test/Semantics/resolve18.f90
    M flang/test/Semantics/resolve19.f90
    M flang/test/Semantics/resolve20.f90
    M flang/test/Semantics/resolve21.f90
    M flang/test/Semantics/resolve22.f90
    M flang/test/Semantics/resolve23.f90
    M flang/test/Semantics/resolve24.f90
    M flang/test/Semantics/resolve25.f90
    M flang/test/Semantics/resolve26.f90
    M flang/test/Semantics/resolve27.f90
    M flang/test/Semantics/resolve28.f90
    M flang/test/Semantics/resolve29.f90
    M flang/test/Semantics/resolve30.f90
    M flang/test/Semantics/resolve31.f90
    M flang/test/Semantics/resolve32.f90
    M flang/test/Semantics/resolve33.f90
    M flang/test/Semantics/resolve34.f90
    M flang/test/Semantics/resolve35.f90
    M flang/test/Semantics/resolve36.f90
    M flang/test/Semantics/resolve37.f90
    M flang/test/Semantics/resolve38.f90
    M flang/test/Semantics/resolve39.f90
    M flang/test/Semantics/resolve40.f90
    M flang/test/Semantics/resolve41.f90
    M flang/test/Semantics/resolve42.f90
    M flang/test/Semantics/resolve43.f90
    M flang/test/Semantics/resolve44.f90
    M flang/test/Semantics/resolve45.f90
    M flang/test/Semantics/resolve46.f90
    M flang/test/Semantics/resolve47.f90
    M flang/test/Semantics/resolve48.f90
    M flang/test/Semantics/resolve49.f90
    M flang/test/Semantics/resolve50.f90
    M flang/test/Semantics/resolve51.f90
    M flang/test/Semantics/resolve52.f90
    M flang/test/Semantics/resolve53.f90
    M flang/test/Semantics/resolve54.f90
    M flang/test/Semantics/resolve55.f90
    M flang/test/Semantics/resolve56.f90
    M flang/test/Semantics/resolve57.f90
    M flang/test/Semantics/resolve58.f90
    M flang/test/Semantics/resolve59.f90
    M flang/test/Semantics/resolve60.f90
    M flang/test/Semantics/resolve61.f90
    M flang/test/Semantics/resolve62.f90
    M flang/test/Semantics/resolve63.f90
    M flang/test/Semantics/resolve64.f90
    M flang/test/Semantics/resolve65.f90
    M flang/test/Semantics/resolve66.f90
    M flang/test/Semantics/resolve67.f90
    M flang/test/Semantics/resolve68.f90
    M flang/test/Semantics/resolve69.f90
    M flang/test/Semantics/resolve70.f90
    M flang/test/Semantics/resolve71.f90
    M flang/test/Semantics/resolve72.f90
    M flang/test/Semantics/resolve73.f90
    M flang/test/Semantics/resolve74.f90
    M flang/test/Semantics/resolve75.f90
    M flang/test/Semantics/resolve76.f90
    M flang/test/Semantics/resolve77.f90
    M flang/test/Semantics/resolve78.f90
    M flang/test/Semantics/resolve79.f90
    M flang/test/Semantics/resolve80.f90
    M flang/test/Semantics/resolve81.f90
    M flang/test/Semantics/resolve82.f90
    M flang/test/Semantics/resolve83.f90
    M flang/test/Semantics/resolve84.f90
    M flang/test/Semantics/resolve85.f90
    M flang/test/Semantics/separate-mp01.f90
    M flang/test/Semantics/separate-mp02.f90
    M flang/test/Semantics/stop01.f90
    M flang/test/Semantics/structconst01.f90
    M flang/test/Semantics/structconst02.f90
    M flang/test/Semantics/structconst03.f90
    M flang/test/Semantics/structconst04.f90
    M flang/test/Semantics/test_any.sh
    R flang/test/Semantics/test_errors.sh
    A flang/test/Semantics/test_errors.sh.in
    M flang/test/lit.cfg.py
    M flang/tools/CMakeLists.txt
    A flang/tools/f18-parse-demo/CMakeLists.txt
    A flang/tools/f18-parse-demo/f18-parse-demo.cpp
    A flang/tools/f18-parse-demo/stub-evaluate.cpp
    M flang/tools/f18/CMakeLists.txt
    R flang/tools/f18/f18-parse-demo.cpp
    R flang/tools/f18/flang.sh
    A flang/tools/f18/flang.sh.in
    R flang/tools/f18/stub-evaluate.cpp
    M flang/unittests/CMakeLists.txt
    M flang/unittests/Decimal/CMakeLists.txt
    M flang/unittests/Evaluate/CMakeLists.txt
    M flang/unittests/Runtime/CMakeLists.txt

  Log Message:
  -----------
  [flang] A rework of the cmake build components for in and out of tree builds.

In general all the basic functionality seems to work and removes some redundancy
and more complicated features in favor of borrowing infrastructure from LLVM
build configurations. Here's a quick summary of details and remaining issues:

  * Testing has spanned Ubuntu 18.04 & 19.10, CentOS 7, RHEL 8, and
    MacOS/darwin.  Architectures include x86_64 and Arm.  Without
    access to Window nothing has been tested there yet.

  * As we change file and directory naming schemes (i.e.,
    capitalization) some odd things can occur on MacOS systems with
    case preserving but not case senstive file system configurations.
    Can be painful and certainly something to watch out for as any
    any such changes continue.

  * Testing infrastructure still needs to be tuned up and worked on.
    Note that there do appear to be cases of some tests hanging (on
    MacOS in particular).  They appear unrelated to the build
    process.

  * Shared library configurations need testing (and probably fixing).

  * Tested both standalone and 'in-mono repo' builds.  Changes for
    supporting the mono repo builds will require LLVM-level changes that
    are straightforward when the time comes.

  * The configuration contains a work-around for LLVM's C++ standard mode
    passing down into Flang/F18 builds (i.e., LLVM CMake configuration would
    force a -std=c++11 flag to show up in command line arguments.  The
    current configuration removes that automatically and is more strict in
    following new CMake guidelines for enforcing C++17 mode across all the
    CMake files.

  * Cleaned up a lot of repetition in the command line arguments.  It
    is likely that more work is still needed to both allow for
    customization and working around CMake defailts (or those
    inherited from LLVM's configuration files). On some platforms agressive
    optimization flags (e.g. -O3) can actually break builds due to the inlining
    of templates in .cpp source files that then no longer are available for use
    cases outside those source files (shows up as link errors).   Sticking at -O2
    appears to fix this.  Currently this CMake configuration forces this in
    release mode but at the cost of stomping on any CMake, or user customized,
    settings for the release flags.

  * Made the lit tests non-source directory dependent where appropriate. This is
    done by configuring certain test shell files to refer to the correct paths
    whether an in or out of tree build is being performed. These configured
    files are output in the build directory. A %B substitution is introduced in
    lit to refer to the build directory, mirroring the %S substitution for the
    source directory, so that the tests can refer to the configured shell scripts.

Co-authored-by: David Truby <david.truby at arm.com>

Original-commit: flang-compiler/f18 at d1c7184159b2d3c542a8f36c58a0c817e7506845
Reviewed-on: https://github.com/flang-compiler/f18/pull/1045


  Commit: 643edd57feb077dd69f44f44127252535c384ef2
      https://github.com/llvm/llvm-project/commit/643edd57feb077dd69f44f44127252535c384ef2
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-26 (Thu, 26 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1045 from pmccormick/master

Reworked CMake infrastructure

Original-commit: flang-compiler/f18 at a4e7adbf8952208b08144ece8020aba7440b5d30
Reviewed-on: https://github.com/flang-compiler/f18/pull/1045


  Commit: 282358fac9e6da68162d13966249ef3f17f2c10c
      https://github.com/llvm/llvm-project/commit/282358fac9e6da68162d13966249ef3f17f2c10c
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-27 (Fri, 27 Mar 2020)

  Changed paths:
    M flang/.drone.star
    M flang/CMakeLists.txt
    M flang/README.md
    M flang/include/flang/Optimizer/Dialect/FIRDialect.h

  Log Message:
  -----------
  [flang] [mlir rebase] Add MLIR config and react to MLIR name changes (flang-compiler/f18#1090)

[mlir rebase] Add MLIR config and react to MLIR name changes

Similar to flang-compiler/f18#1085.  Now use the MLIR package to set up paths for include files and libraries.  Three MLIR names changed:
 * VectorOpsDialect to VectorDialect
 * AffineOpsDialect to AffineDialect
 * createVectorizePass to createSuperVectorizePass

Update README.md to explain how to link with MLIR. Update the example gcc to version 8.3.

Update drone.io config to define -DMLIR_DIR

Co-authored-by: Jean Perier <jperier at nvidia.com>

Original-commit: flang-compiler/f18 at 116f64315f6218a7f74a8ccdc25f94d322ac6344
Reviewed-on: https://github.com/flang-compiler/f18/pull/1090


  Commit: 7a77c20dbd613935d5817bda465f544ec98acc8a
      https://github.com/llvm/llvm-project/commit/7a77c20dbd613935d5817bda465f544ec98acc8a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-27 (Fri, 27 Mar 2020)

  Changed paths:
    M flang/include/flang/Evaluate/integer.h
    M flang/include/flang/Evaluate/logical.h
    M flang/lib/Semantics/CMakeLists.txt
    A flang/lib/Semantics/check-case.cpp
    A flang/lib/Semantics/check-case.h
    M flang/lib/Semantics/semantics.cpp
    A flang/test/Semantics/case01.f90

  Log Message:
  -----------
  [flang] Semantics for SELECT CASE

Prep for review

Respond to review comments

Fix first line in new test

Original-commit: flang-compiler/f18 at 12f6f30600db4cb3902677cd42764450ddeda5e0
Reviewed-on: https://github.com/flang-compiler/f18/pull/1089


  Commit: b2a0e4a235af6a5a42977ed2c5c1b0fec6650f21
      https://github.com/llvm/llvm-project/commit/b2a0e4a235af6a5a42977ed2c5c1b0fec6650f21
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-27 (Fri, 27 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1089 from flang-compiler/pmk-case

Semantics for SELECT CASE

Original-commit: flang-compiler/f18 at 5e26830620e5e6d647fba04ae81077d7148e409f
Reviewed-on: https://github.com/flang-compiler/f18/pull/1089


  Commit: 84a099df05320bf7a3c5d97bcc51d53012f24667
      https://github.com/llvm/llvm-project/commit/84a099df05320bf7a3c5d97bcc51d53012f24667
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-03-27 (Fri, 27 Mar 2020)

  Changed paths:
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Semantics/assignment.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/tools.cpp

  Log Message:
  -----------
  [flang] Fix missing substring bounds (bug flang-compiler/f18#1091)

Original-commit: flang-compiler/f18 at 3b0c150b2e4d194cb5a46b40f41b3be59ef5fa51
Reviewed-on: https://github.com/flang-compiler/f18/pull/1093


  Commit: 8004fd500f3e9853538242fad338ede9da98cecf
      https://github.com/llvm/llvm-project/commit/8004fd500f3e9853538242fad338ede9da98cecf
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-03-27 (Fri, 27 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1093 from flang-compiler/pmk-fix-1091

Fix missing substring bounds (bug flang-compiler/f18#1091)

Original-commit: flang-compiler/f18 at 631524910dec043862dc83eb0678c85ab8059d1b
Reviewed-on: https://github.com/flang-compiler/f18/pull/1093


  Commit: ddb68d248cfd45936cdba52b30f35138fb0e5399
      https://github.com/llvm/llvm-project/commit/ddb68d248cfd45936cdba52b30f35138fb0e5399
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2020-03-28 (Sat, 28 Mar 2020)

  Changed paths:
    M flang/runtime/file.cpp

  Log Message:
  -----------
  [flang] Support windows where mkstemp and ftruncate doesn't exist

Original-commit: flang-compiler/f18 at 7b7e30845df14886342d0d3b7020d34d52256bd8
Reviewed-on: https://github.com/flang-compiler/f18/pull/1069


  Commit: bea851b0fe3726029cbab0715cc66051cb145a97
      https://github.com/llvm/llvm-project/commit/bea851b0fe3726029cbab0715cc66051cb145a97
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-28 (Sat, 28 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1069 from isuruf/mkstemp

Support windows where mkstemp and ftruncate doesn't exist

Original-commit: flang-compiler/f18 at d37462430bd6752493b153a49d91ee72a8b017a2
Reviewed-on: https://github.com/flang-compiler/f18/pull/1069


  Commit: ea5efd1ea87e3d6b86a8e7f940f94dec0a90a004
      https://github.com/llvm/llvm-project/commit/ea5efd1ea87e3d6b86a8e7f940f94dec0a90a004
  Author: Isuru Fernando <isuruf at gmail.com>
  Date:   2020-03-28 (Sat, 28 Mar 2020)

  Changed paths:
    M flang/runtime/CMakeLists.txt
    A flang/runtime/config.h.cmake
    M flang/runtime/io-error.cpp

  Log Message:
  -----------
  [flang] Support platforms without strerror_r

Original-commit: flang-compiler/f18 at 0575b54cc79110ae03f73b136e704f6313e2d63f
Reviewed-on: https://github.com/flang-compiler/f18/pull/1068


  Commit: 10b1addcefef8193cee86876fdd669ff647c284c
      https://github.com/llvm/llvm-project/commit/10b1addcefef8193cee86876fdd669ff647c284c
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-03-28 (Sat, 28 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1068 from isuruf/strerror

Support platforms without strerror_r

Original-commit: flang-compiler/f18 at 85db30375c0c8095befeda6f4f2917d43002e4a4
Reviewed-on: https://github.com/flang-compiler/f18/pull/1068


  Commit: 1f8790050b0e99e7b46cc69518aa84f46f50738e
      https://github.com/llvm/llvm-project/commit/1f8790050b0e99e7b46cc69518aa84f46f50738e
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-28 (Sat, 28 Mar 2020)

  Changed paths:
    M flang/include/flang/Common/Fortran-features.h
    M flang/include/flang/Common/Fortran.h
    M flang/include/flang/Common/bit-population-count.h
    M flang/include/flang/Common/constexpr-bitset.h
    M flang/include/flang/Common/default-kinds.h
    M flang/include/flang/Common/enum-set.h
    M flang/include/flang/Common/format.h
    M flang/include/flang/Common/idioms.h
    M flang/include/flang/Common/indirection.h
    M flang/include/flang/Common/interval.h
    M flang/include/flang/Common/leading-zero-bit-count.h
    M flang/include/flang/Common/real.h
    M flang/include/flang/Common/reference-counted.h
    M flang/include/flang/Common/reference.h
    M flang/include/flang/Common/restorer.h
    M flang/include/flang/Common/template.h
    M flang/include/flang/Common/uint128.h
    M flang/include/flang/Common/unsigned-const-division.h
    M flang/include/flang/Common/unwrap.h
    M flang/include/flang/Decimal/binary-floating-point.h
    M flang/include/flang/Decimal/decimal.h
    M flang/include/flang/Evaluate/call.h
    M flang/include/flang/Evaluate/characteristics.h
    M flang/include/flang/Evaluate/check-expression.h
    M flang/include/flang/Evaluate/common.h
    M flang/include/flang/Evaluate/complex.h
    M flang/include/flang/Evaluate/constant.h
    M flang/include/flang/Evaluate/expression.h
    M flang/include/flang/Evaluate/fold.h
    M flang/include/flang/Evaluate/formatting.h
    M flang/include/flang/Evaluate/intrinsics-library.h
    M flang/include/flang/Evaluate/intrinsics.h
    M flang/include/flang/Evaluate/real.h
    M flang/include/flang/Evaluate/rounding-bits.h
    M flang/include/flang/Evaluate/shape.h
    M flang/include/flang/Evaluate/static-data.h
    M flang/include/flang/Evaluate/traverse.h
    M flang/include/flang/Evaluate/type.h
    M flang/include/flang/Evaluate/variable.h
    M flang/include/flang/ISO_Fortran_binding.h
    M flang/include/flang/Parser/char-block.h
    M flang/include/flang/Parser/char-buffer.h
    M flang/include/flang/Parser/char-set.h
    M flang/include/flang/Parser/characters.h
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/format-specification.h
    M flang/include/flang/Parser/instrumented-parser.h
    M flang/include/flang/Parser/message.h
    M flang/include/flang/Parser/parse-state.h
    M flang/include/flang/Parser/parse-tree-visitor.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Parser/parsing.h
    M flang/include/flang/Parser/provenance.h
    M flang/include/flang/Parser/source.h
    M flang/include/flang/Parser/tools.h
    M flang/include/flang/Parser/unparse.h
    M flang/include/flang/Parser/user-state.h
    M flang/include/flang/Semantics/attr.h
    M flang/include/flang/Semantics/expression.h
    M flang/include/flang/Semantics/scope.h
    M flang/include/flang/Semantics/semantics.h
    M flang/include/flang/Semantics/symbol.h
    M flang/include/flang/Semantics/tools.h
    M flang/include/flang/Semantics/type.h
    M flang/include/flang/Semantics/unparse-with-symbols.h
    M flang/lib/Common/Fortran-features.cpp
    M flang/lib/Common/Fortran.cpp
    M flang/lib/Common/default-kinds.cpp
    M flang/lib/Common/idioms.cpp
    M flang/lib/Decimal/big-radix-floating-point.h
    M flang/lib/Decimal/binary-to-decimal.cpp
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/lib/Evaluate/call.cpp
    M flang/lib/Evaluate/character.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/common.cpp
    M flang/lib/Evaluate/complex.cpp
    M flang/lib/Evaluate/constant.cpp
    M flang/lib/Evaluate/expression.cpp
    M flang/lib/Evaluate/fold-character.cpp
    M flang/lib/Evaluate/fold-complex.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/fold-logical.cpp
    M flang/lib/Evaluate/fold-real.cpp
    M flang/lib/Evaluate/fold.cpp
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Evaluate/host.cpp
    M flang/lib/Evaluate/host.h
    M flang/lib/Evaluate/int-power.h
    M flang/lib/Evaluate/integer.cpp
    M flang/lib/Evaluate/intrinsics-library-templates.h
    M flang/lib/Evaluate/intrinsics-library.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Evaluate/logical.cpp
    M flang/lib/Evaluate/real.cpp
    M flang/lib/Evaluate/shape.cpp
    M flang/lib/Evaluate/static-data.cpp
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Evaluate/type.cpp
    M flang/lib/Evaluate/variable.cpp
    M flang/lib/Optimizer/Dialect/FIRAttr.cpp
    M flang/lib/Optimizer/Dialect/FIRDialect.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/basic-parsers.h
    M flang/lib/Parser/char-block.cpp
    M flang/lib/Parser/char-buffer.cpp
    M flang/lib/Parser/char-set.cpp
    M flang/lib/Parser/characters.cpp
    M flang/lib/Parser/debug-parser.cpp
    M flang/lib/Parser/debug-parser.h
    M flang/lib/Parser/executable-parsers.cpp
    M flang/lib/Parser/expr-parsers.cpp
    M flang/lib/Parser/expr-parsers.h
    M flang/lib/Parser/instrumented-parser.cpp
    M flang/lib/Parser/io-parsers.cpp
    M flang/lib/Parser/message.cpp
    M flang/lib/Parser/misc-parsers.h
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/parse-tree.cpp
    M flang/lib/Parser/parsing.cpp
    M flang/lib/Parser/preprocessor.cpp
    M flang/lib/Parser/preprocessor.h
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/prescan.h
    M flang/lib/Parser/program-parsers.cpp
    M flang/lib/Parser/provenance.cpp
    M flang/lib/Parser/source.cpp
    M flang/lib/Parser/stmt-parser.h
    M flang/lib/Parser/token-parsers.h
    M flang/lib/Parser/token-sequence.cpp
    M flang/lib/Parser/token-sequence.h
    M flang/lib/Parser/tools.cpp
    M flang/lib/Parser/type-parser-implementation.h
    M flang/lib/Parser/type-parsers.h
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Parser/user-state.cpp
    M flang/lib/Semantics/assignment.h
    M flang/lib/Semantics/attr.cpp
    M flang/lib/Semantics/canonicalize-do.cpp
    M flang/lib/Semantics/canonicalize-do.h
    M flang/lib/Semantics/canonicalize-omp.cpp
    M flang/lib/Semantics/canonicalize-omp.h
    M flang/lib/Semantics/check-allocate.cpp
    M flang/lib/Semantics/check-allocate.h
    M flang/lib/Semantics/check-arithmeticif.cpp
    M flang/lib/Semantics/check-arithmeticif.h
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/check-call.h
    M flang/lib/Semantics/check-case.cpp
    M flang/lib/Semantics/check-coarray.cpp
    M flang/lib/Semantics/check-coarray.h
    M flang/lib/Semantics/check-data.cpp
    M flang/lib/Semantics/check-data.h
    M flang/lib/Semantics/check-deallocate.cpp
    M flang/lib/Semantics/check-deallocate.h
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/check-declarations.h
    M flang/lib/Semantics/check-do-forall.cpp
    M flang/lib/Semantics/check-do-forall.h
    M flang/lib/Semantics/check-if-stmt.cpp
    M flang/lib/Semantics/check-if-stmt.h
    M flang/lib/Semantics/check-io.cpp
    M flang/lib/Semantics/check-io.h
    M flang/lib/Semantics/check-namelist.cpp
    M flang/lib/Semantics/check-namelist.h
    M flang/lib/Semantics/check-nullify.cpp
    M flang/lib/Semantics/check-nullify.h
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/check-purity.cpp
    M flang/lib/Semantics/check-purity.h
    M flang/lib/Semantics/check-return.cpp
    M flang/lib/Semantics/check-return.h
    M flang/lib/Semantics/check-stop.cpp
    M flang/lib/Semantics/check-stop.h
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/mod-file.h
    M flang/lib/Semantics/pointer-assignment.cpp
    M flang/lib/Semantics/pointer-assignment.h
    M flang/lib/Semantics/program-tree.cpp
    M flang/lib/Semantics/program-tree.h
    M flang/lib/Semantics/resolve-labels.cpp
    M flang/lib/Semantics/resolve-labels.h
    M flang/lib/Semantics/resolve-names-utils.cpp
    M flang/lib/Semantics/resolve-names-utils.h
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/resolve-names.h
    M flang/lib/Semantics/rewrite-parse-tree.cpp
    M flang/lib/Semantics/rewrite-parse-tree.h
    M flang/lib/Semantics/scope.cpp
    M flang/lib/Semantics/symbol.cpp
    M flang/lib/Semantics/type.cpp
    M flang/lib/Semantics/unparse-with-symbols.cpp
    M flang/runtime/ISO_Fortran_binding.cpp
    M flang/runtime/allocatable.h
    M flang/runtime/buffer.cpp
    M flang/runtime/buffer.h
    M flang/runtime/c-or-cpp.h
    M flang/runtime/connection.cpp
    M flang/runtime/connection.h
    M flang/runtime/derived-type.cpp
    M flang/runtime/derived-type.h
    M flang/runtime/descriptor.cpp
    M flang/runtime/descriptor.h
    M flang/runtime/edit-input.cpp
    M flang/runtime/edit-input.h
    M flang/runtime/edit-output.cpp
    M flang/runtime/edit-output.h
    M flang/runtime/environment.cpp
    M flang/runtime/environment.h
    M flang/runtime/file.cpp
    M flang/runtime/file.h
    M flang/runtime/format-implementation.h
    M flang/runtime/format.cpp
    M flang/runtime/format.h
    M flang/runtime/internal-unit.cpp
    M flang/runtime/internal-unit.h
    M flang/runtime/io-api.cpp
    M flang/runtime/io-api.h
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h
    M flang/runtime/io-stmt.cpp
    M flang/runtime/io-stmt.h
    M flang/runtime/iostat.cpp
    M flang/runtime/iostat.h
    M flang/runtime/lock.h
    M flang/runtime/main.cpp
    M flang/runtime/main.h
    M flang/runtime/memory.cpp
    M flang/runtime/memory.h
    M flang/runtime/stop.cpp
    M flang/runtime/stop.h
    M flang/runtime/terminator.cpp
    M flang/runtime/terminator.h
    M flang/runtime/tools.cpp
    M flang/runtime/tools.h
    M flang/runtime/transformational.cpp
    M flang/runtime/transformational.h
    M flang/runtime/type-code.cpp
    M flang/runtime/type-code.h
    M flang/runtime/unit-map.cpp
    M flang/runtime/unit-map.h
    M flang/runtime/unit.cpp
    M flang/runtime/unit.h
    M flang/tools/f18-parse-demo/f18-parse-demo.cpp
    M flang/tools/f18-parse-demo/stub-evaluate.cpp
    M flang/tools/f18/dump.cpp
    M flang/tools/f18/f18.cpp
    M flang/unittests/Decimal/thorough-test.cpp
    M flang/unittests/Evaluate/ISO-Fortran-binding.cpp
    M flang/unittests/Evaluate/folding.cpp
    M flang/unittests/Evaluate/fp-testing.cpp
    M flang/unittests/Evaluate/fp-testing.h
    M flang/unittests/Evaluate/integer.cpp
    M flang/unittests/Evaluate/intrinsics.cpp
    M flang/unittests/Evaluate/logical.cpp
    M flang/unittests/Evaluate/real.cpp
    M flang/unittests/Evaluate/testing.cpp
    M flang/unittests/Evaluate/testing.h
    M flang/unittests/Evaluate/uint128.cpp
    M flang/unittests/Runtime/hello.cpp
    M flang/unittests/Runtime/testing.h

  Log Message:
  -----------
  [flang] Reformat with latest clang-format and .clang-format

Original-commit: flang-compiler/f18 at 9fe84f45d7fd685051004678d6b5775dcc4c6f8f
Reviewed-on: https://github.com/flang-compiler/f18/pull/1094


  Commit: 34038d3700813288be92941a84877f9d9f063e62
      https://github.com/llvm/llvm-project/commit/34038d3700813288be92941a84877f9d9f063e62
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-03-29 (Sun, 29 Mar 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1094 from flang-compiler/tsk-format

Reformat with latest clang-format and .clang-format

Original-commit: flang-compiler/f18 at 96c6be633ff65ec6d84c18e0d14393137d8097dd
Reviewed-on: https://github.com/flang-compiler/f18/pull/1094


  Commit: 2b790490b61be206164156d441e212583abb662d
      https://github.com/llvm/llvm-project/commit/2b790490b61be206164156d441e212583abb662d
  Author: Pete Steinfeld <psteinfeld at nvidia.com>
  Date:   2020-04-02 (Thu, 02 Apr 2020)

  Changed paths:
    M flang/include/flang/Semantics/scope.h
    M flang/include/flang/Semantics/type.h
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/scope.cpp
    M flang/lib/Semantics/type.cpp
    M flang/test/Semantics/assign02.f90
    M flang/test/Semantics/bad-forward-type.f90
    M flang/test/Semantics/bindings01.f90
    M flang/test/Semantics/label11.f90
    M flang/test/Semantics/modfile33.f90
    M flang/test/Semantics/resolve31.f90
    M flang/test/Semantics/resolve33.f90
    A flang/test/Semantics/resolve86.f90
    A flang/test/Semantics/resolve87.f90

  Log Message:
  -----------
  [flang] Checks for constraints C731 through C740

In most cases, I just added the contraint names to the code and tests.

I implemented the following checks:
  - C736 A child type with a coarray ultimate component must have a parent with
    a coarray ultimate component.
  - C737 A child type with and EVENT_TYPE or LOCK_TYPE component must have a
    parent either which is EVENT_TYPE or LOCK_TYPE or a type with an EVENT_TYPE
    or LOCK_TYPE component.
  - C740 Sequence types must contain at least on component
  - C740 Data components of sequence types must either be of an intrinsic type
    or a sequenced derived type.

After implementing these checks, some tests had new errors unrelated to their
original purpose, so I fixed them.

Original-commit: flang-compiler/f18 at 098f01bc474798ae03bd4dc7de6c929deec6f244
Reviewed-on: https://github.com/flang-compiler/f18/pull/1097


  Commit: af68709acd1e96bb9e208d54af3ee911fded3141
      https://github.com/llvm/llvm-project/commit/af68709acd1e96bb9e208d54af3ee911fded3141
  Author: Pete Steinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2020-04-02 (Thu, 02 Apr 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1097 from flang-compiler/ps-types

Checks for constraints C731 through C740

Original-commit: flang-compiler/f18 at ca9dcf7eab19e460318a94348a3d68516caefa1f
Reviewed-on: https://github.com/flang-compiler/f18/pull/1097


  Commit: 4d54bb7af8ab64575d10331f3cdd902660908d27
      https://github.com/llvm/llvm-project/commit/4d54bb7af8ab64575d10331f3cdd902660908d27
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-04-02 (Thu, 02 Apr 2020)

  Changed paths:
    M flang/documentation/Calls.md
    A flang/documentation/Character.md
    M flang/runtime/CMakeLists.txt
    A flang/runtime/allocatable.cpp
    M flang/runtime/allocatable.h
    A flang/runtime/character.cpp
    A flang/runtime/character.h

  Log Message:
  -----------
  [flang] Define CHARACTER runtime API, establish placeholder implementations

formatting

Original-commit: flang-compiler/f18 at 1d287d9d59eaee357db604dd9986c74c298a7b4d
Reviewed-on: https://github.com/flang-compiler/f18/pull/1096


  Commit: 3638543f55ed6f4e33aaee7b9cfdac4f6c1c21e7
      https://github.com/llvm/llvm-project/commit/3638543f55ed6f4e33aaee7b9cfdac4f6c1c21e7
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-04-02 (Thu, 02 Apr 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1096 from flang-compiler/pmk-char

First draft: runtime API for CHARACTER

Original-commit: flang-compiler/f18 at 5b89dc7e516a86865737d7e69cde312d461e7d50
Reviewed-on: https://github.com/flang-compiler/f18/pull/1096


  Commit: 455ed8de4f878160be9cfd17db891b326fb4a6a2
      https://github.com/llvm/llvm-project/commit/455ed8de4f878160be9cfd17db891b326fb4a6a2
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2020-04-03 (Fri, 03 Apr 2020)

  Changed paths:
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Parser/io-parsers.cpp
    M flang/lib/Semantics/check-io.cpp
    M flang/lib/Semantics/check-io.h
    M flang/lib/Semantics/resolve-labels.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/rewrite-parse-tree.cpp
    M flang/lib/Semantics/semantics.cpp
    A flang/test/Semantics/assign06.f90
    A flang/test/Semantics/assign07.f90
    M flang/test/Semantics/if_arith03.f90
    M flang/test/Semantics/label02.f90
    M flang/test/Semantics/label03.f90
    M flang/test/Semantics/label05.f90
    M flang/test/Semantics/label06.f90
    M flang/test/Semantics/label07.f90
    M flang/test/Semantics/label09.f90
    M flang/test/Semantics/label14.f90

  Log Message:
  -----------
  [flang] Process names in ASSIGN and assigned GOTO

Allow ASSIGNed integer variables as formats

Address review comment

Original-commit: flang-compiler/f18 at 361a151508b4a1940fc0669dead180be67964d8d
Reviewed-on: https://github.com/flang-compiler/f18/pull/1099


  Commit: d7bb15052d5a0b14cb6bc0a697b49036809d4a5a
      https://github.com/llvm/llvm-project/commit/d7bb15052d5a0b14cb6bc0a697b49036809d4a5a
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2020-04-03 (Fri, 03 Apr 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1099 from flang-compiler/pmk-assign

Complete semantics for ASSIGN

Original-commit: flang-compiler/f18 at b539ac9a908d5c9f7232d4635ad543c23947c96f
Reviewed-on: https://github.com/flang-compiler/f18/pull/1099


  Commit: 5c7ecef1e43aff21db1b287a88cd2f0437d236c9
      https://github.com/llvm/llvm-project/commit/5c7ecef1e43aff21db1b287a88cd2f0437d236c9
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2020-04-06 (Mon, 06 Apr 2020)

  Changed paths:
    M flang/README.md

  Log Message:
  -----------
  [flang] Adjust supported compilers statement in F18 readme

This patch is an update of the readme according to compilations done and
also information given in flang dev mailing list.
[F18] Which compilers configurations f18 have being tested/built?

Signed-off-by: Caroline Concatto <caroline.concatto at arm.com>

Original-commit: flang-compiler/f18 at 3749b463dc6d4e2847c272bf2f6b575478391a2a
Reviewed-on: https://github.com/flang-compiler/f18/pull/1087


  Commit: fb8d8414bdf38fd4ff7f2b3e04236f5d4a18f769
      https://github.com/llvm/llvm-project/commit/fb8d8414bdf38fd4ff7f2b3e04236f5d4a18f769
  Author: Steve Scalpone <sscalpone at nvidia.com>
  Date:   2020-04-06 (Mon, 06 Apr 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1087 from CarolineConcatto/update_readme

Adjust supported compilers statement in F18 readme

Original-commit: flang-compiler/f18 at 6e04d35b895dea17d432f2b8137fabee1c625ed3
Reviewed-on: https://github.com/flang-compiler/f18/pull/1087


  Commit: 76d71354dbbba0ed7e86d1c7c6edc7f6f4e44420
      https://github.com/llvm/llvm-project/commit/76d71354dbbba0ed7e86d1c7c6edc7f6f4e44420
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-04-03 (Fri, 03 Apr 2020)

  Changed paths:
    M flang/include/flang/Parser/message.h
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/shape.cpp
    M flang/lib/Evaluate/variable.cpp
    M flang/lib/Semantics/assignment.cpp
    M flang/lib/Semantics/check-io.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/symbol.cpp

  Log Message:
  -----------
  [flang] Add message formatting for std::int64_t

There is no printf formatting string for std::int64_t. Instead we have
to cast to std::intmax_t and use `%jd`. This change simplifies that by
automatically converting std::int64_t to std::intmax_t when formatting
messages.

Original-commit: flang-compiler/f18 at 8a2343dfffc9ccb04bdfe4c16ca47128255d47bd
Reviewed-on: https://github.com/flang-compiler/f18/pull/1101
Tree-same-pre-rewrite: false


  Commit: 0bd73f2c38ac73069f6644d4920cf47916ad88e4
      https://github.com/llvm/llvm-project/commit/0bd73f2c38ac73069f6644d4920cf47916ad88e4
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-04-06 (Mon, 06 Apr 2020)

  Changed paths:
    M flang/include/flang/Parser/message.h

  Log Message:
  -----------
  [flang] Convert std::uint64_t to std::uintmax_t as well

Original-commit: flang-compiler/f18 at 92a1ef6810f02b65b5fafcde2130b1482d373995
Reviewed-on: https://github.com/flang-compiler/f18/pull/1101


  Commit: 87f3bc978f7325e7cf88073bda51c27a00f5e455
      https://github.com/llvm/llvm-project/commit/87f3bc978f7325e7cf88073bda51c27a00f5e455
  Author: Tim Keith <tkeith at nvidia.com>
  Date:   2020-04-07 (Tue, 07 Apr 2020)

  Changed paths:

  Log Message:
  -----------
  [flang] Merge pull request flang-compiler/f18#1101 from flang-compiler/tsk-msg-format

Add message formatting for std::int64_t

Original-commit: flang-compiler/f18 at 72dad8cae1f287d1183f535aec8207781d967505
Reviewed-on: https://github.com/flang-compiler/f18/pull/1101


  Commit: 2d65baf845ba3c76c63d7cb47022379b2958b00f
      https://github.com/llvm/llvm-project/commit/2d65baf845ba3c76c63d7cb47022379b2958b00f
  Author: David Truby <david.truby at arm.com>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

  Changed paths:
    M flang/README.md

  Log Message:
  -----------
  [flang] Adjust README.md for upstreaming to LLVM.

Original-commit: flang-compiler/f18 at 24d23963b879d6586a7e19b89a905341627fe5b1


  Commit: 55d5e6cbe2509a24132d056e1f361dc39312929b
      https://github.com/llvm/llvm-project/commit/55d5e6cbe2509a24132d056e1f361dc39312929b
  Author: David Truby <david.truby at arm.com>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

  Changed paths:
    R flang/flatten.cpp

  Log Message:
  -----------
  [flang] Remove flatten and merge upstreaming script.

Original-commit: flang-compiler/f18 at 21f3c455e842e0dab4a92db7ed8282f08eac930d


  Commit: b98ad941a40c96c841bceb171725c925500fce6c
      https://github.com/llvm/llvm-project/commit/b98ad941a40c96c841bceb171725c925500fce6c
  Author: David Truby <david.truby at arm.com>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

  Changed paths:
    A flang/.clang-format
    A flang/.drone.star
    A flang/.gitignore
    A flang/CMakeLists.txt
    A flang/CODE_OWNERS.TXT
    A flang/LICENSE.txt
    A flang/README.md
    A flang/cmake/modules/AddFlang.cmake
    A flang/cmake/modules/CMakeLists.txt
    A flang/cmake/modules/FlangConfig.cmake.in
    A flang/documentation/ArrayComposition.md
    A flang/documentation/C++17.md
    A flang/documentation/C++style.md
    A flang/documentation/Calls.md
    A flang/documentation/Character.md
    A flang/documentation/ControlFlowGraph.md
    A flang/documentation/Directives.md
    A flang/documentation/Extensions.md
    A flang/documentation/FortranForCProgrammers.md
    A flang/documentation/FortranIR.md
    A flang/documentation/IORuntimeInternals.md
    A flang/documentation/ImplementingASemanticCheck.md
    A flang/documentation/Intrinsics.md
    A flang/documentation/LabelResolution.md
    A flang/documentation/ModFiles.md
    A flang/documentation/OpenMP-4.5-grammar.txt
    A flang/documentation/OpenMP-semantics.md
    A flang/documentation/OptionComparison.md
    A flang/documentation/Overview.md
    A flang/documentation/ParserCombinators.md
    A flang/documentation/Parsing.md
    A flang/documentation/Preprocessing.md
    A flang/documentation/PullRequestChecklist.md
    A flang/documentation/RuntimeDescriptor.md
    A flang/documentation/Semantics.md
    A flang/documentation/f2018-grammar.txt
    A flang/documentation/flang-c-style.el
    A flang/include/CMakeLists.txt
    A flang/include/flang/CMakeLists.txt
    A flang/include/flang/Common/Fortran-features.h
    A flang/include/flang/Common/Fortran.h
    A flang/include/flang/Common/bit-population-count.h
    A flang/include/flang/Common/constexpr-bitset.h
    A flang/include/flang/Common/default-kinds.h
    A flang/include/flang/Common/enum-set.h
    A flang/include/flang/Common/format.h
    A flang/include/flang/Common/idioms.h
    A flang/include/flang/Common/indirection.h
    A flang/include/flang/Common/interval.h
    A flang/include/flang/Common/leading-zero-bit-count.h
    A flang/include/flang/Common/real.h
    A flang/include/flang/Common/reference-counted.h
    A flang/include/flang/Common/reference.h
    A flang/include/flang/Common/restorer.h
    A flang/include/flang/Common/template.h
    A flang/include/flang/Common/uint128.h
    A flang/include/flang/Common/unsigned-const-division.h
    A flang/include/flang/Common/unwrap.h
    A flang/include/flang/Config/config.h.cmake
    A flang/include/flang/Decimal/binary-floating-point.h
    A flang/include/flang/Decimal/decimal.h
    A flang/include/flang/Evaluate/call.h
    A flang/include/flang/Evaluate/characteristics.h
    A flang/include/flang/Evaluate/check-expression.h
    A flang/include/flang/Evaluate/common.h
    A flang/include/flang/Evaluate/complex.h
    A flang/include/flang/Evaluate/constant.h
    A flang/include/flang/Evaluate/expression.h
    A flang/include/flang/Evaluate/fold.h
    A flang/include/flang/Evaluate/formatting.h
    A flang/include/flang/Evaluate/integer.h
    A flang/include/flang/Evaluate/intrinsics-library.h
    A flang/include/flang/Evaluate/intrinsics.h
    A flang/include/flang/Evaluate/logical.h
    A flang/include/flang/Evaluate/real.h
    A flang/include/flang/Evaluate/rounding-bits.h
    A flang/include/flang/Evaluate/shape.h
    A flang/include/flang/Evaluate/static-data.h
    A flang/include/flang/Evaluate/tools.h
    A flang/include/flang/Evaluate/traverse.h
    A flang/include/flang/Evaluate/type.h
    A flang/include/flang/Evaluate/variable.h
    A flang/include/flang/ISO_Fortran_binding.h
    A flang/include/flang/Lower/.clang-format
    A flang/include/flang/Lower/PFTBuilder.h
    A flang/include/flang/Optimizer/.clang-format
    A flang/include/flang/Optimizer/CMakeLists.txt
    A flang/include/flang/Optimizer/Dialect/CMakeLists.txt
    A flang/include/flang/Optimizer/Dialect/FIRAttr.h
    A flang/include/flang/Optimizer/Dialect/FIRDialect.h
    A flang/include/flang/Optimizer/Dialect/FIROps.h
    A flang/include/flang/Optimizer/Dialect/FIROps.td
    A flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
    A flang/include/flang/Optimizer/Dialect/FIRType.h
    A flang/include/flang/Optimizer/Support/KindMapping.h
    A flang/include/flang/Parser/char-block.h
    A flang/include/flang/Parser/char-buffer.h
    A flang/include/flang/Parser/char-set.h
    A flang/include/flang/Parser/characters.h
    A flang/include/flang/Parser/dump-parse-tree.h
    A flang/include/flang/Parser/format-specification.h
    A flang/include/flang/Parser/instrumented-parser.h
    A flang/include/flang/Parser/message.h
    A flang/include/flang/Parser/parse-state.h
    A flang/include/flang/Parser/parse-tree-visitor.h
    A flang/include/flang/Parser/parse-tree.h
    A flang/include/flang/Parser/parsing.h
    A flang/include/flang/Parser/provenance.h
    A flang/include/flang/Parser/source.h
    A flang/include/flang/Parser/tools.h
    A flang/include/flang/Parser/unparse.h
    A flang/include/flang/Parser/user-state.h
    A flang/include/flang/Semantics/attr.h
    A flang/include/flang/Semantics/expression.h
    A flang/include/flang/Semantics/scope.h
    A flang/include/flang/Semantics/semantics.h
    A flang/include/flang/Semantics/symbol.h
    A flang/include/flang/Semantics/tools.h
    A flang/include/flang/Semantics/type.h
    A flang/include/flang/Semantics/unparse-with-symbols.h
    A flang/include/flang/Version.inc.in
    A flang/lib/CMakeLists.txt
    A flang/lib/Common/CMakeLists.txt
    A flang/lib/Common/Fortran-features.cpp
    A flang/lib/Common/Fortran.cpp
    A flang/lib/Common/default-kinds.cpp
    A flang/lib/Common/idioms.cpp
    A flang/lib/Decimal/CMakeLists.txt
    A flang/lib/Decimal/big-radix-floating-point.h
    A flang/lib/Decimal/binary-to-decimal.cpp
    A flang/lib/Decimal/decimal-to-binary.cpp
    A flang/lib/Evaluate/CMakeLists.txt
    A flang/lib/Evaluate/call.cpp
    A flang/lib/Evaluate/character.h
    A flang/lib/Evaluate/characteristics.cpp
    A flang/lib/Evaluate/check-expression.cpp
    A flang/lib/Evaluate/common.cpp
    A flang/lib/Evaluate/complex.cpp
    A flang/lib/Evaluate/constant.cpp
    A flang/lib/Evaluate/expression.cpp
    A flang/lib/Evaluate/fold-character.cpp
    A flang/lib/Evaluate/fold-complex.cpp
    A flang/lib/Evaluate/fold-implementation.h
    A flang/lib/Evaluate/fold-integer.cpp
    A flang/lib/Evaluate/fold-logical.cpp
    A flang/lib/Evaluate/fold-real.cpp
    A flang/lib/Evaluate/fold.cpp
    A flang/lib/Evaluate/formatting.cpp
    A flang/lib/Evaluate/host.cpp
    A flang/lib/Evaluate/host.h
    A flang/lib/Evaluate/int-power.h
    A flang/lib/Evaluate/integer.cpp
    A flang/lib/Evaluate/intrinsics-library-templates.h
    A flang/lib/Evaluate/intrinsics-library.cpp
    A flang/lib/Evaluate/intrinsics.cpp
    A flang/lib/Evaluate/logical.cpp
    A flang/lib/Evaluate/real.cpp
    A flang/lib/Evaluate/shape.cpp
    A flang/lib/Evaluate/static-data.cpp
    A flang/lib/Evaluate/tools.cpp
    A flang/lib/Evaluate/type.cpp
    A flang/lib/Evaluate/variable.cpp
    A flang/lib/Lower/.clang-format
    A flang/lib/Lower/CMakeLists.txt
    A flang/lib/Lower/PFTBuilder.cpp
    A flang/lib/Optimizer/.clang-format
    A flang/lib/Optimizer/CMakeLists.txt
    A flang/lib/Optimizer/Dialect/CMakeLists.txt
    A flang/lib/Optimizer/Dialect/FIRAttr.cpp
    A flang/lib/Optimizer/Dialect/FIRDialect.cpp
    A flang/lib/Optimizer/Dialect/FIROps.cpp
    A flang/lib/Optimizer/Dialect/FIRType.cpp
    A flang/lib/Optimizer/Support/CMakeLists.txt
    A flang/lib/Optimizer/Support/KindMapping.cpp
    A flang/lib/Parser/CMakeLists.txt
    A flang/lib/Parser/Fortran-parsers.cpp
    A flang/lib/Parser/basic-parsers.h
    A flang/lib/Parser/char-block.cpp
    A flang/lib/Parser/char-buffer.cpp
    A flang/lib/Parser/char-set.cpp
    A flang/lib/Parser/characters.cpp
    A flang/lib/Parser/debug-parser.cpp
    A flang/lib/Parser/debug-parser.h
    A flang/lib/Parser/executable-parsers.cpp
    A flang/lib/Parser/expr-parsers.cpp
    A flang/lib/Parser/expr-parsers.h
    A flang/lib/Parser/instrumented-parser.cpp
    A flang/lib/Parser/io-parsers.cpp
    A flang/lib/Parser/message.cpp
    A flang/lib/Parser/misc-parsers.h
    A flang/lib/Parser/openmp-parsers.cpp
    A flang/lib/Parser/parse-tree.cpp
    A flang/lib/Parser/parsing.cpp
    A flang/lib/Parser/preprocessor.cpp
    A flang/lib/Parser/preprocessor.h
    A flang/lib/Parser/prescan.cpp
    A flang/lib/Parser/prescan.h
    A flang/lib/Parser/program-parsers.cpp
    A flang/lib/Parser/provenance.cpp
    A flang/lib/Parser/source.cpp
    A flang/lib/Parser/stmt-parser.h
    A flang/lib/Parser/token-parsers.h
    A flang/lib/Parser/token-sequence.cpp
    A flang/lib/Parser/token-sequence.h
    A flang/lib/Parser/tools.cpp
    A flang/lib/Parser/type-parser-implementation.h
    A flang/lib/Parser/type-parsers.h
    A flang/lib/Parser/unparse.cpp
    A flang/lib/Parser/user-state.cpp
    A flang/lib/Semantics/CMakeLists.txt
    A flang/lib/Semantics/assignment.cpp
    A flang/lib/Semantics/assignment.h
    A flang/lib/Semantics/attr.cpp
    A flang/lib/Semantics/canonicalize-do.cpp
    A flang/lib/Semantics/canonicalize-do.h
    A flang/lib/Semantics/canonicalize-omp.cpp
    A flang/lib/Semantics/canonicalize-omp.h
    A flang/lib/Semantics/check-allocate.cpp
    A flang/lib/Semantics/check-allocate.h
    A flang/lib/Semantics/check-arithmeticif.cpp
    A flang/lib/Semantics/check-arithmeticif.h
    A flang/lib/Semantics/check-call.cpp
    A flang/lib/Semantics/check-call.h
    A flang/lib/Semantics/check-case.cpp
    A flang/lib/Semantics/check-case.h
    A flang/lib/Semantics/check-coarray.cpp
    A flang/lib/Semantics/check-coarray.h
    A flang/lib/Semantics/check-data.cpp
    A flang/lib/Semantics/check-data.h
    A flang/lib/Semantics/check-deallocate.cpp
    A flang/lib/Semantics/check-deallocate.h
    A flang/lib/Semantics/check-declarations.cpp
    A flang/lib/Semantics/check-declarations.h
    A flang/lib/Semantics/check-do-forall.cpp
    A flang/lib/Semantics/check-do-forall.h
    A flang/lib/Semantics/check-if-stmt.cpp
    A flang/lib/Semantics/check-if-stmt.h
    A flang/lib/Semantics/check-io.cpp
    A flang/lib/Semantics/check-io.h
    A flang/lib/Semantics/check-namelist.cpp
    A flang/lib/Semantics/check-namelist.h
    A flang/lib/Semantics/check-nullify.cpp
    A flang/lib/Semantics/check-nullify.h
    A flang/lib/Semantics/check-omp-structure.cpp
    A flang/lib/Semantics/check-omp-structure.h
    A flang/lib/Semantics/check-purity.cpp
    A flang/lib/Semantics/check-purity.h
    A flang/lib/Semantics/check-return.cpp
    A flang/lib/Semantics/check-return.h
    A flang/lib/Semantics/check-stop.cpp
    A flang/lib/Semantics/check-stop.h
    A flang/lib/Semantics/expression.cpp
    A flang/lib/Semantics/mod-file.cpp
    A flang/lib/Semantics/mod-file.h
    A flang/lib/Semantics/pointer-assignment.cpp
    A flang/lib/Semantics/pointer-assignment.h
    A flang/lib/Semantics/program-tree.cpp
    A flang/lib/Semantics/program-tree.h
    A flang/lib/Semantics/resolve-labels.cpp
    A flang/lib/Semantics/resolve-labels.h
    A flang/lib/Semantics/resolve-names-utils.cpp
    A flang/lib/Semantics/resolve-names-utils.h
    A flang/lib/Semantics/resolve-names.cpp
    A flang/lib/Semantics/resolve-names.h
    A flang/lib/Semantics/rewrite-parse-tree.cpp
    A flang/lib/Semantics/rewrite-parse-tree.h
    A flang/lib/Semantics/scope.cpp
    A flang/lib/Semantics/semantics.cpp
    A flang/lib/Semantics/symbol.cpp
    A flang/lib/Semantics/tools.cpp
    A flang/lib/Semantics/type.cpp
    A flang/lib/Semantics/unparse-with-symbols.cpp
    A flang/module/__fortran_builtins.f90
    A flang/module/ieee_arithmetic.f90
    A flang/module/ieee_exceptions.f90
    A flang/module/ieee_features.f90
    A flang/module/iso_c_binding.f90
    A flang/module/iso_fortran_env.f90
    A flang/module/omp_lib.f90
    A flang/module/omp_lib.h
    A flang/runtime/CMakeLists.txt
    A flang/runtime/ISO_Fortran_binding.cpp
    A flang/runtime/allocatable.cpp
    A flang/runtime/allocatable.h
    A flang/runtime/buffer.cpp
    A flang/runtime/buffer.h
    A flang/runtime/c-or-cpp.h
    A flang/runtime/character.cpp
    A flang/runtime/character.h
    A flang/runtime/config.h.cmake
    A flang/runtime/connection.cpp
    A flang/runtime/connection.h
    A flang/runtime/derived-type.cpp
    A flang/runtime/derived-type.h
    A flang/runtime/descriptor.cpp
    A flang/runtime/descriptor.h
    A flang/runtime/edit-input.cpp
    A flang/runtime/edit-input.h
    A flang/runtime/edit-output.cpp
    A flang/runtime/edit-output.h
    A flang/runtime/entry-names.h
    A flang/runtime/environment.cpp
    A flang/runtime/environment.h
    A flang/runtime/file.cpp
    A flang/runtime/file.h
    A flang/runtime/format-implementation.h
    A flang/runtime/format.cpp
    A flang/runtime/format.h
    A flang/runtime/internal-unit.cpp
    A flang/runtime/internal-unit.h
    A flang/runtime/io-api.cpp
    A flang/runtime/io-api.h
    A flang/runtime/io-error.cpp
    A flang/runtime/io-error.h
    A flang/runtime/io-stmt.cpp
    A flang/runtime/io-stmt.h
    A flang/runtime/iostat.cpp
    A flang/runtime/iostat.h
    A flang/runtime/lock.h
    A flang/runtime/magic-numbers.h
    A flang/runtime/main.cpp
    A flang/runtime/main.h
    A flang/runtime/memory.cpp
    A flang/runtime/memory.h
    A flang/runtime/stop.cpp
    A flang/runtime/stop.h
    A flang/runtime/terminator.cpp
    A flang/runtime/terminator.h
    A flang/runtime/tools.cpp
    A flang/runtime/tools.h
    A flang/runtime/transformational.cpp
    A flang/runtime/transformational.h
    A flang/runtime/type-code.cpp
    A flang/runtime/type-code.h
    A flang/runtime/unit-map.cpp
    A flang/runtime/unit-map.h
    A flang/runtime/unit.cpp
    A flang/runtime/unit.h
    A flang/test/CMakeLists.txt
    A flang/test/Driver/version_test.f90
    A flang/test/Evaluate/folding01.f90
    A flang/test/Evaluate/folding02.f90
    A flang/test/Evaluate/folding03.f90
    A flang/test/Evaluate/folding04.f90
    A flang/test/Evaluate/folding05.f90
    A flang/test/Evaluate/folding06.f90
    A flang/test/Evaluate/folding07.f90
    A flang/test/Evaluate/folding08.f90
    A flang/test/Evaluate/folding09.f90
    A flang/test/Evaluate/test_folding.sh
    A flang/test/Fir/fir-ops.fir
    A flang/test/Fir/fir-types.fir
    A flang/test/Lower/pre-fir-tree01.f90
    A flang/test/Lower/pre-fir-tree02.f90
    A flang/test/Lower/pre-fir-tree03.f90
    A flang/test/Lower/pre-fir-tree04.f90
    A flang/test/Preprocessing/lit.local.cfg.py
    A flang/test/Preprocessing/pp001.F
    A flang/test/Preprocessing/pp002.F
    A flang/test/Preprocessing/pp003.F
    A flang/test/Preprocessing/pp004.F
    A flang/test/Preprocessing/pp005.F
    A flang/test/Preprocessing/pp006.F
    A flang/test/Preprocessing/pp007.F
    A flang/test/Preprocessing/pp008.F
    A flang/test/Preprocessing/pp009.F
    A flang/test/Preprocessing/pp010.F
    A flang/test/Preprocessing/pp011.F
    A flang/test/Preprocessing/pp012.F
    A flang/test/Preprocessing/pp013.F
    A flang/test/Preprocessing/pp014.F
    A flang/test/Preprocessing/pp015.F
    A flang/test/Preprocessing/pp016.F
    A flang/test/Preprocessing/pp017.F
    A flang/test/Preprocessing/pp018.F
    A flang/test/Preprocessing/pp019.F
    A flang/test/Preprocessing/pp020.F
    A flang/test/Preprocessing/pp021.F
    A flang/test/Preprocessing/pp022.F
    A flang/test/Preprocessing/pp023.F
    A flang/test/Preprocessing/pp024.F
    A flang/test/Preprocessing/pp025.F
    A flang/test/Preprocessing/pp026.F
    A flang/test/Preprocessing/pp027.F
    A flang/test/Preprocessing/pp028.F
    A flang/test/Preprocessing/pp029.F
    A flang/test/Preprocessing/pp030.F
    A flang/test/Preprocessing/pp031.F
    A flang/test/Preprocessing/pp032.F
    A flang/test/Preprocessing/pp033.F
    A flang/test/Preprocessing/pp034.F
    A flang/test/Preprocessing/pp035.F
    A flang/test/Preprocessing/pp036.F
    A flang/test/Preprocessing/pp037.F
    A flang/test/Preprocessing/pp038.F
    A flang/test/Preprocessing/pp039.F
    A flang/test/Preprocessing/pp040.F
    A flang/test/Preprocessing/pp041.F
    A flang/test/Preprocessing/pp042.F
    A flang/test/Preprocessing/pp043.F
    A flang/test/Preprocessing/pp044.F
    A flang/test/Preprocessing/pp101.F90
    A flang/test/Preprocessing/pp102.F90
    A flang/test/Preprocessing/pp103.F90
    A flang/test/Preprocessing/pp104.F90
    A flang/test/Preprocessing/pp105.F90
    A flang/test/Preprocessing/pp106.F90
    A flang/test/Preprocessing/pp107.F90
    A flang/test/Preprocessing/pp108.F90
    A flang/test/Preprocessing/pp109.F90
    A flang/test/Preprocessing/pp110.F90
    A flang/test/Preprocessing/pp111.F90
    A flang/test/Preprocessing/pp112.F90
    A flang/test/Preprocessing/pp113.F90
    A flang/test/Preprocessing/pp114.F90
    A flang/test/Preprocessing/pp115.F90
    A flang/test/Preprocessing/pp116.F90
    A flang/test/Preprocessing/pp117.F90
    A flang/test/Preprocessing/pp118.F90
    A flang/test/Preprocessing/pp119.F90
    A flang/test/Preprocessing/pp120.F90
    A flang/test/Preprocessing/pp121.F90
    A flang/test/Preprocessing/pp122.F90
    A flang/test/Preprocessing/pp123.F90
    A flang/test/Preprocessing/pp124.F90
    A flang/test/Preprocessing/pp125.F90
    A flang/test/Preprocessing/pp126.F90
    A flang/test/Preprocessing/pp127.F90
    A flang/test/Preprocessing/pp128.F90
    A flang/test/Preprocessing/pp129.F90
    A flang/test/Preprocessing/pp130.F90
    A flang/test/Semantics/CMakeLists.txt
    A flang/test/Semantics/Inputs/getdefinition03-b.f90
    A flang/test/Semantics/Inputs/getsymbols02-a.f90
    A flang/test/Semantics/Inputs/getsymbols02-b.f90
    A flang/test/Semantics/Inputs/getsymbols02-c.f90
    A flang/test/Semantics/Inputs/getsymbols03-b.f90
    A flang/test/Semantics/Inputs/mod-file-changed.f90
    A flang/test/Semantics/Inputs/mod-file-unchanged.f90
    A flang/test/Semantics/Inputs/modfile09-a.f90
    A flang/test/Semantics/Inputs/modfile09-b.f90
    A flang/test/Semantics/Inputs/modfile09-c.f90
    A flang/test/Semantics/Inputs/modfile09-d.f90
    A flang/test/Semantics/allocate01.f90
    A flang/test/Semantics/allocate02.f90
    A flang/test/Semantics/allocate03.f90
    A flang/test/Semantics/allocate04.f90
    A flang/test/Semantics/allocate05.f90
    A flang/test/Semantics/allocate06.f90
    A flang/test/Semantics/allocate07.f90
    A flang/test/Semantics/allocate08.f90
    A flang/test/Semantics/allocate09.f90
    A flang/test/Semantics/allocate10.f90
    A flang/test/Semantics/allocate11.f90
    A flang/test/Semantics/allocate12.f90
    A flang/test/Semantics/allocate13.f90
    A flang/test/Semantics/altreturn01.f90
    A flang/test/Semantics/altreturn02.f90
    A flang/test/Semantics/altreturn03.f90
    A flang/test/Semantics/altreturn04.f90
    A flang/test/Semantics/altreturn05.f90
    A flang/test/Semantics/assign01.f90
    A flang/test/Semantics/assign02.f90
    A flang/test/Semantics/assign03.f90
    A flang/test/Semantics/assign04.f90
    A flang/test/Semantics/assign06.f90
    A flang/test/Semantics/assign07.f90
    A flang/test/Semantics/bad-forward-type.f90
    A flang/test/Semantics/bindings01.f90
    A flang/test/Semantics/block-data01.f90
    A flang/test/Semantics/blockconstruct01.f90
    A flang/test/Semantics/blockconstruct02.f90
    A flang/test/Semantics/blockconstruct03.f90
    A flang/test/Semantics/c_f_pointer.f90
    A flang/test/Semantics/call01.f90
    A flang/test/Semantics/call02.f90
    A flang/test/Semantics/call03.f90
    A flang/test/Semantics/call04.f90
    A flang/test/Semantics/call05.f90
    A flang/test/Semantics/call06.f90
    A flang/test/Semantics/call07.f90
    A flang/test/Semantics/call08.f90
    A flang/test/Semantics/call09.f90
    A flang/test/Semantics/call10.f90
    A flang/test/Semantics/call11.f90
    A flang/test/Semantics/call12.f90
    A flang/test/Semantics/call13.f90
    A flang/test/Semantics/call14.f90
    A flang/test/Semantics/call15.f90
    A flang/test/Semantics/canondo01.f90
    A flang/test/Semantics/canondo02.f90
    A flang/test/Semantics/canondo03.f90
    A flang/test/Semantics/canondo04.f90
    A flang/test/Semantics/canondo05.f90
    A flang/test/Semantics/canondo06.f90
    A flang/test/Semantics/canondo07.f90
    A flang/test/Semantics/canondo08.f90
    A flang/test/Semantics/canondo09.f90
    A flang/test/Semantics/canondo10.f90
    A flang/test/Semantics/canondo11.f90
    A flang/test/Semantics/canondo12.f90
    A flang/test/Semantics/canondo13.f90
    A flang/test/Semantics/canondo14.f90
    A flang/test/Semantics/canondo15.f90
    A flang/test/Semantics/canondo16.f90
    A flang/test/Semantics/canondo17.f90
    A flang/test/Semantics/canondo18.f90
    A flang/test/Semantics/canondo19.f90
    A flang/test/Semantics/case01.f90
    A flang/test/Semantics/coarrays01.f90
    A flang/test/Semantics/common.sh
    A flang/test/Semantics/complex01.f90
    A flang/test/Semantics/computed-goto01.f90
    A flang/test/Semantics/computed-goto02.f90
    A flang/test/Semantics/critical01.f90
    A flang/test/Semantics/critical02.f90
    A flang/test/Semantics/critical03.f90
    A flang/test/Semantics/critical04.f90
    A flang/test/Semantics/data01.f90
    A flang/test/Semantics/data02.f90
    A flang/test/Semantics/deallocate01.f90
    A flang/test/Semantics/deallocate04.f90
    A flang/test/Semantics/deallocate05.f90
    A flang/test/Semantics/doconcurrent01.f90
    A flang/test/Semantics/doconcurrent02.f90
    A flang/test/Semantics/doconcurrent03.f90
    A flang/test/Semantics/doconcurrent04.f90
    A flang/test/Semantics/doconcurrent05.f90
    A flang/test/Semantics/doconcurrent06.f90
    A flang/test/Semantics/doconcurrent07.f90
    A flang/test/Semantics/doconcurrent08.f90
    A flang/test/Semantics/dosemantics01.f90
    A flang/test/Semantics/dosemantics02.f90
    A flang/test/Semantics/dosemantics03.f90
    A flang/test/Semantics/dosemantics04.f90
    A flang/test/Semantics/dosemantics05.f90
    A flang/test/Semantics/dosemantics06.f90
    A flang/test/Semantics/dosemantics07.f90
    A flang/test/Semantics/dosemantics08.f90
    A flang/test/Semantics/dosemantics09.f90
    A flang/test/Semantics/dosemantics10.f90
    A flang/test/Semantics/dosemantics11.f90
    A flang/test/Semantics/dosemantics12.f90
    A flang/test/Semantics/empty.f90
    A flang/test/Semantics/entry01.f90
    A flang/test/Semantics/equivalence01.f90
    A flang/test/Semantics/expr-errors01.f90
    A flang/test/Semantics/expr-errors02.f90
    A flang/test/Semantics/forall01.f90
    A flang/test/Semantics/getdefinition01.f90
    A flang/test/Semantics/getdefinition02.f
    A flang/test/Semantics/getdefinition03-a.f90
    A flang/test/Semantics/getdefinition04.f90
    A flang/test/Semantics/getdefinition05.f90
    A flang/test/Semantics/getsymbols01.f90
    A flang/test/Semantics/getsymbols02.f90
    A flang/test/Semantics/getsymbols03-a.f90
    A flang/test/Semantics/getsymbols04.f90
    A flang/test/Semantics/getsymbols05.f90
    A flang/test/Semantics/if_arith01.f90
    A flang/test/Semantics/if_arith02.f90
    A flang/test/Semantics/if_arith03.f90
    A flang/test/Semantics/if_arith04.f90
    A flang/test/Semantics/if_construct01.f90
    A flang/test/Semantics/if_construct02.f90
    A flang/test/Semantics/if_stmt01.f90
    A flang/test/Semantics/if_stmt02.f90
    A flang/test/Semantics/if_stmt03.f90
    A flang/test/Semantics/implicit01.f90
    A flang/test/Semantics/implicit02.f90
    A flang/test/Semantics/implicit03.f90
    A flang/test/Semantics/implicit04.f90
    A flang/test/Semantics/implicit05.f90
    A flang/test/Semantics/implicit06.f90
    A flang/test/Semantics/implicit07.f90
    A flang/test/Semantics/implicit08.f90
    A flang/test/Semantics/init01.f90
    A flang/test/Semantics/int-literals.f90
    A flang/test/Semantics/io01.f90
    A flang/test/Semantics/io02.f90
    A flang/test/Semantics/io03.f90
    A flang/test/Semantics/io04.f90
    A flang/test/Semantics/io05.f90
    A flang/test/Semantics/io06.f90
    A flang/test/Semantics/io07.f90
    A flang/test/Semantics/io08.f90
    A flang/test/Semantics/io09.f90
    A flang/test/Semantics/io10.f90
    A flang/test/Semantics/kinds01.f90
    A flang/test/Semantics/kinds02.f90
    A flang/test/Semantics/kinds03.f90
    A flang/test/Semantics/kinds04.f90
    A flang/test/Semantics/label01.F90
    A flang/test/Semantics/label02.f90
    A flang/test/Semantics/label03.f90
    A flang/test/Semantics/label04.f90
    A flang/test/Semantics/label05.f90
    A flang/test/Semantics/label06.f90
    A flang/test/Semantics/label07.f90
    A flang/test/Semantics/label08.f90
    A flang/test/Semantics/label09.f90
    A flang/test/Semantics/label10.f90
    A flang/test/Semantics/label11.f90
    A flang/test/Semantics/label12.f90
    A flang/test/Semantics/label13.f90
    A flang/test/Semantics/label14.f90
    A flang/test/Semantics/misc-declarations.f90
    A flang/test/Semantics/mod-file-rewriter.f90
    A flang/test/Semantics/modfile01.f90
    A flang/test/Semantics/modfile02.f90
    A flang/test/Semantics/modfile03.f90
    A flang/test/Semantics/modfile04.f90
    A flang/test/Semantics/modfile05.f90
    A flang/test/Semantics/modfile06.f90
    A flang/test/Semantics/modfile07.f90
    A flang/test/Semantics/modfile08.f90
    A flang/test/Semantics/modfile09.f90
    A flang/test/Semantics/modfile10.f90
    A flang/test/Semantics/modfile11.f90
    A flang/test/Semantics/modfile12.f90
    A flang/test/Semantics/modfile13.f90
    A flang/test/Semantics/modfile14.f90
    A flang/test/Semantics/modfile15.f90
    A flang/test/Semantics/modfile16.f90
    A flang/test/Semantics/modfile17.f90
    A flang/test/Semantics/modfile18.f90
    A flang/test/Semantics/modfile19.f90
    A flang/test/Semantics/modfile20.f90
    A flang/test/Semantics/modfile21.f90
    A flang/test/Semantics/modfile22.f90
    A flang/test/Semantics/modfile23.f90
    A flang/test/Semantics/modfile24.f90
    A flang/test/Semantics/modfile25.f90
    A flang/test/Semantics/modfile26.f90
    A flang/test/Semantics/modfile27.f90
    A flang/test/Semantics/modfile28.f90
    A flang/test/Semantics/modfile29.f90
    A flang/test/Semantics/modfile30.f90
    A flang/test/Semantics/modfile31.f90
    A flang/test/Semantics/modfile32.f90
    A flang/test/Semantics/modfile33.f90
    A flang/test/Semantics/modfile34.f90
    A flang/test/Semantics/modfile35.f90
    A flang/test/Semantics/namelist01.f90
    A flang/test/Semantics/null01.f90
    A flang/test/Semantics/nullify01.f90
    A flang/test/Semantics/nullify02.f90
    A flang/test/Semantics/omp-atomic.f90
    A flang/test/Semantics/omp-clause-validity01.f90
    A flang/test/Semantics/omp-declarative-directive.f90
    A flang/test/Semantics/omp-device-constructs.f90
    A flang/test/Semantics/omp-loop-association.f90
    A flang/test/Semantics/omp-nested01.f90
    A flang/test/Semantics/omp-resolve01.f90
    A flang/test/Semantics/omp-resolve02.f90
    A flang/test/Semantics/omp-resolve03.f90
    A flang/test/Semantics/omp-resolve04.f90
    A flang/test/Semantics/omp-resolve05.f90
    A flang/test/Semantics/omp-symbol01.f90
    A flang/test/Semantics/omp-symbol02.f90
    A flang/test/Semantics/omp-symbol03.f90
    A flang/test/Semantics/omp-symbol04.f90
    A flang/test/Semantics/omp-symbol05.f90
    A flang/test/Semantics/omp-symbol06.f90
    A flang/test/Semantics/omp-symbol07.f90
    A flang/test/Semantics/omp-symbol08.f90
    A flang/test/Semantics/procinterface01.f90
    A flang/test/Semantics/resolve01.f90
    A flang/test/Semantics/resolve02.f90
    A flang/test/Semantics/resolve03.f90
    A flang/test/Semantics/resolve04.f90
    A flang/test/Semantics/resolve05.f90
    A flang/test/Semantics/resolve06.f90
    A flang/test/Semantics/resolve07.f90
    A flang/test/Semantics/resolve08.f90
    A flang/test/Semantics/resolve09.f90
    A flang/test/Semantics/resolve10.f90
    A flang/test/Semantics/resolve11.f90
    A flang/test/Semantics/resolve12.f90
    A flang/test/Semantics/resolve13.f90
    A flang/test/Semantics/resolve14.f90
    A flang/test/Semantics/resolve15.f90
    A flang/test/Semantics/resolve16.f90
    A flang/test/Semantics/resolve17.f90
    A flang/test/Semantics/resolve18.f90
    A flang/test/Semantics/resolve19.f90
    A flang/test/Semantics/resolve20.f90
    A flang/test/Semantics/resolve21.f90
    A flang/test/Semantics/resolve22.f90
    A flang/test/Semantics/resolve23.f90
    A flang/test/Semantics/resolve24.f90
    A flang/test/Semantics/resolve25.f90
    A flang/test/Semantics/resolve26.f90
    A flang/test/Semantics/resolve27.f90
    A flang/test/Semantics/resolve28.f90
    A flang/test/Semantics/resolve29.f90
    A flang/test/Semantics/resolve30.f90
    A flang/test/Semantics/resolve31.f90
    A flang/test/Semantics/resolve32.f90
    A flang/test/Semantics/resolve33.f90
    A flang/test/Semantics/resolve34.f90
    A flang/test/Semantics/resolve35.f90
    A flang/test/Semantics/resolve36.f90
    A flang/test/Semantics/resolve37.f90
    A flang/test/Semantics/resolve38.f90
    A flang/test/Semantics/resolve39.f90
    A flang/test/Semantics/resolve40.f90
    A flang/test/Semantics/resolve41.f90
    A flang/test/Semantics/resolve42.f90
    A flang/test/Semantics/resolve43.f90
    A flang/test/Semantics/resolve44.f90
    A flang/test/Semantics/resolve45.f90
    A flang/test/Semantics/resolve46.f90
    A flang/test/Semantics/resolve47.f90
    A flang/test/Semantics/resolve48.f90
    A flang/test/Semantics/resolve49.f90
    A flang/test/Semantics/resolve50.f90
    A flang/test/Semantics/resolve51.f90
    A flang/test/Semantics/resolve52.f90
    A flang/test/Semantics/resolve53.f90
    A flang/test/Semantics/resolve54.f90
    A flang/test/Semantics/resolve55.f90
    A flang/test/Semantics/resolve56.f90
    A flang/test/Semantics/resolve57.f90
    A flang/test/Semantics/resolve58.f90
    A flang/test/Semantics/resolve59.f90
    A flang/test/Semantics/resolve60.f90
    A flang/test/Semantics/resolve61.f90
    A flang/test/Semantics/resolve62.f90
    A flang/test/Semantics/resolve63.f90
    A flang/test/Semantics/resolve64.f90
    A flang/test/Semantics/resolve65.f90
    A flang/test/Semantics/resolve66.f90
    A flang/test/Semantics/resolve67.f90
    A flang/test/Semantics/resolve68.f90
    A flang/test/Semantics/resolve69.f90
    A flang/test/Semantics/resolve70.f90
    A flang/test/Semantics/resolve71.f90
    A flang/test/Semantics/resolve72.f90
    A flang/test/Semantics/resolve73.f90
    A flang/test/Semantics/resolve74.f90
    A flang/test/Semantics/resolve75.f90
    A flang/test/Semantics/resolve76.f90
    A flang/test/Semantics/resolve77.f90
    A flang/test/Semantics/resolve78.f90
    A flang/test/Semantics/resolve79.f90
    A flang/test/Semantics/resolve80.f90
    A flang/test/Semantics/resolve81.f90
    A flang/test/Semantics/resolve82.f90
    A flang/test/Semantics/resolve83.f90
    A flang/test/Semantics/resolve84.f90
    A flang/test/Semantics/resolve85.f90
    A flang/test/Semantics/resolve86.f90
    A flang/test/Semantics/resolve87.f90
    A flang/test/Semantics/separate-mp01.f90
    A flang/test/Semantics/separate-mp02.f90
    A flang/test/Semantics/stop01.f90
    A flang/test/Semantics/structconst01.f90
    A flang/test/Semantics/structconst02.f90
    A flang/test/Semantics/structconst03.f90
    A flang/test/Semantics/structconst04.f90
    A flang/test/Semantics/symbol01.f90
    A flang/test/Semantics/symbol02.f90
    A flang/test/Semantics/symbol03.f90
    A flang/test/Semantics/symbol05.f90
    A flang/test/Semantics/symbol06.f90
    A flang/test/Semantics/symbol07.f90
    A flang/test/Semantics/symbol08.f90
    A flang/test/Semantics/symbol09.f90
    A flang/test/Semantics/symbol10.f90
    A flang/test/Semantics/symbol11.f90
    A flang/test/Semantics/symbol12.f90
    A flang/test/Semantics/symbol13.f90
    A flang/test/Semantics/symbol14.f90
    A flang/test/Semantics/symbol15.f90
    A flang/test/Semantics/symbol16.f90
    A flang/test/Semantics/symbol17.f90
    A flang/test/Semantics/test_any.sh
    A flang/test/Semantics/test_errors.sh.in
    A flang/test/Semantics/test_modfile.sh
    A flang/test/Semantics/test_symbols.sh
    A flang/test/lit.cfg.py
    A flang/test/lit.site.cfg.py.in
    A flang/tools/CMakeLists.txt
    A flang/tools/bbc/.clang-format
    A flang/tools/f18-parse-demo/CMakeLists.txt
    A flang/tools/f18-parse-demo/f18-parse-demo.cpp
    A flang/tools/f18-parse-demo/stub-evaluate.cpp
    A flang/tools/f18/CMakeLists.txt
    A flang/tools/f18/dump.cpp
    A flang/tools/f18/f18.cpp
    A flang/tools/f18/flang.sh.in
    A flang/tools/tco/.clang-format
    A flang/tools/tco/CMakeLists.txt
    A flang/tools/tco/tco.cpp
    A flang/unittests/CMakeLists.txt
    A flang/unittests/Decimal/CMakeLists.txt
    A flang/unittests/Decimal/quick-sanity-test.cpp
    A flang/unittests/Decimal/thorough-test.cpp
    A flang/unittests/Evaluate/CMakeLists.txt
    A flang/unittests/Evaluate/ISO-Fortran-binding.cpp
    A flang/unittests/Evaluate/bit-population-count.cpp
    A flang/unittests/Evaluate/expression.cpp
    A flang/unittests/Evaluate/folding.cpp
    A flang/unittests/Evaluate/fp-testing.cpp
    A flang/unittests/Evaluate/fp-testing.h
    A flang/unittests/Evaluate/integer.cpp
    A flang/unittests/Evaluate/intrinsics.cpp
    A flang/unittests/Evaluate/leading-zero-bit-count.cpp
    A flang/unittests/Evaluate/logical.cpp
    A flang/unittests/Evaluate/real.cpp
    A flang/unittests/Evaluate/reshape.cpp
    A flang/unittests/Evaluate/testing.cpp
    A flang/unittests/Evaluate/testing.h
    A flang/unittests/Evaluate/uint128.cpp
    A flang/unittests/Runtime/CMakeLists.txt
    A flang/unittests/Runtime/external-hello.cpp
    A flang/unittests/Runtime/format.cpp
    A flang/unittests/Runtime/hello.cpp
    A flang/unittests/Runtime/list-input.cpp
    A flang/unittests/Runtime/testing.cpp
    A flang/unittests/Runtime/testing.h

  Log Message:
  -----------
  [flang] Merge flang-compiler/f18

This is the initial merge of flang-compiler, which is done in this way
principally to preserve the history and git-blame, without generating a large
number of commits on the first-parent history of LLVM.

If you don't care about the flang history during a bisect remember that you can
supply paths to git-bisect, e.g. `git bisect start clang llvm`.

The history of f18 was rewritten to:

* Put the code under /flang/.
* Linearize the history.
* Rewrite commit messages so that issue and PR numbers point to the old repository.

Credit to Peter Waller for writing the flatten and merge script.

Updates: flang-compiler/f18#876 (submission into llvm-project)
Mailing-list: http://lists.llvm.org/pipermail/llvm-dev/2020-January/137989.html ([llvm-dev] Flang landing in the monorepo - next Monday!)
Mailing-list: http://lists.llvm.org/pipermail/llvm-dev/2019-December/137661.html ([llvm-dev] Flang landing in the monorepo)

Co-authored-by: Peter Waller <peter.waller at arm.com>


  Commit: d4579b7ef696dc932f3174896ee5de7d235c6462
      https://github.com/llvm/llvm-project/commit/d4579b7ef696dc932f3174896ee5de7d235c6462
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

  Changed paths:
    M llvm/CMakeLists.txt
    M llvm/tools/CMakeLists.txt

  Log Message:
  -----------
  [Flang] add flang as a new subproject in cmake

Summary: This patch is some minor prep work for merging the flang(f18) project into the monorepo.  This patch adds "flang" as a supported target for the LLVM_ENABLE_PROJECTS option.

Reviewers: fhahn, tstellar, jdoerfert, beanz, DavidTruby

Reviewed By: DavidTruby

Subscribers: hfinkel, DavidTruby, aartbik, mgorny, llvm-commits

Tags: #flang, #llvm

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


Compare: https://github.com/llvm/llvm-project/compare/d08105482e15...d4579b7ef696


More information about the All-commits mailing list