platform/upstream/llvm.git
4 years ago[flang] Fix checking of pointer target with association
Tim Keith [Wed, 15 Jan 2020 21:43:05 +0000 (13:43 -0800)]
[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@c81c6baedd41d6ca2d36c81ca745a144c02be369
Reviewed-on: https://github.com/flang-compiler/f18/pull/937

4 years ago[flang] Merge pull request flang-compiler/f18#927 from flang-compiler/pmk-format
Peter Klausler [Wed, 15 Jan 2020 22:08:24 +0000 (14:08 -0800)]
[flang] Merge pull request flang-compiler/f18#927 from flang-compiler/pmk-format

Runtime FORMAT scanning

Original-commit: flang-compiler/f18@538d4a1dea9d2301fe36b13d1b248fde5c010f83
Reviewed-on: https://github.com/flang-compiler/f18/pull/927

4 years ago[flang] begin processing format strings
peter klausler [Thu, 9 Jan 2020 16:10:57 +0000 (08:10 -0800)]
[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@4a0d39b0398974ade4367a5a96e11a90e853c18c
Reviewed-on: https://github.com/flang-compiler/f18/pull/927

4 years ago[flang] Merge pull request flang-compiler/f18#926 from flang-compiler/pmk-bd
Peter Klausler [Wed, 15 Jan 2020 19:14:53 +0000 (11:14 -0800)]
[flang] Merge pull request flang-compiler/f18#926 from flang-compiler/pmk-bd

BLOCK DATA semantics

Original-commit: flang-compiler/f18@4954b95527a48d5242731c91a7181a001bf64283
Reviewed-on: https://github.com/flang-compiler/f18/pull/926

4 years ago[flang] Comments
peter klausler [Wed, 15 Jan 2020 00:16:32 +0000 (16:16 -0800)]
[flang] Comments

Original-commit: flang-compiler/f18@0c12188e8437abf820381fea787c625eda7e2d1f
Reviewed-on: https://github.com/flang-compiler/f18/pull/926

4 years ago[flang] Better EQUIVALENCE handling
peter klausler [Tue, 14 Jan 2020 23:59:29 +0000 (15:59 -0800)]
[flang] Better EQUIVALENCE handling

Original-commit: flang-compiler/f18@7c55097e81c9ab76953c1c652128bc9b969e6a33
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Better fix; clean up redundant utilities
peter klausler [Tue, 14 Jan 2020 23:08:37 +0000 (15:08 -0800)]
[flang] Better fix; clean up redundant utilities

Original-commit: flang-compiler/f18@531db4932155f53f14805b8a6617e31803ab6435
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Fix unrelated build error found in testing
peter klausler [Tue, 14 Jan 2020 22:19:42 +0000 (14:19 -0800)]
[flang] Fix unrelated build error found in testing

Original-commit: flang-compiler/f18@5a00d77827feda979f2b11a33a22b7c7b05e824a
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Update a test
peter klausler [Tue, 14 Jan 2020 19:38:09 +0000 (11:38 -0800)]
[flang] Update a test

Original-commit: flang-compiler/f18@5f32183eed19560a57a68ae9fd0eec72d18c7a40
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Address review comments
peter klausler [Tue, 14 Jan 2020 19:24:49 +0000 (11:24 -0800)]
[flang] Address review comments

Original-commit: flang-compiler/f18@d179c796bd7271916c52d8478e60a88bff809564
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Better check for variables in DATA
peter klausler [Tue, 14 Jan 2020 19:11:15 +0000 (11:11 -0800)]
[flang] Better check for variables in DATA

Original-commit: flang-compiler/f18@92e20baaa89fd20cd724bb4414e84670843cc442
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Fix bug
peter klausler [Mon, 13 Jan 2020 23:39:18 +0000 (15:39 -0800)]
[flang] Fix bug

Original-commit: flang-compiler/f18@662b8139b5d17b39222b2d297114606e86fa83d7
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] More comments addressed
peter klausler [Mon, 13 Jan 2020 23:13:09 +0000 (15:13 -0800)]
[flang] More comments addressed

Original-commit: flang-compiler/f18@9c863a572b39beca7f1f3e86edb239e6d3b72d4f
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Address review comments
peter klausler [Mon, 13 Jan 2020 22:30:31 +0000 (14:30 -0800)]
[flang] Address review comments

Original-commit: flang-compiler/f18@59e5565cb87eebd2c4f44defd22484ca83777942
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] BLOCK DATA
peter klausler [Fri, 10 Jan 2020 01:12:46 +0000 (17:12 -0800)]
[flang] BLOCK DATA

add test

Original-commit: flang-compiler/f18@91c084b698b0617da5d7592a5b1830adc5c5d84e
Reviewed-on: https://github.com/flang-compiler/f18/pull/926
Tree-same-pre-rewrite: false

4 years ago[flang] Merge pull request flang-compiler/f18#928 from flang-compiler/tsk-assignment3
Tim Keith [Tue, 14 Jan 2020 21:09:08 +0000 (13:09 -0800)]
[flang] Merge pull request flang-compiler/f18#928 from flang-compiler/tsk-assignment3

Pointer assignment semantic checks

Original-commit: flang-compiler/f18@fc600af81e1a5c75d4f619bed3feb6194117b54d
Reviewed-on: https://github.com/flang-compiler/f18/pull/928

4 years ago[flang] Pointer assignment semantic checks
Tim Keith [Tue, 14 Jan 2020 00:39:00 +0000 (16:39 -0800)]
[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@3dc5fd6d9e58d1ef0efd1deefcbaa52499ad93f9
Reviewed-on: https://github.com/flang-compiler/f18/pull/928

4 years ago[flang] C1027: procedure pointer may not be coindexed object
Tim Keith [Mon, 13 Jan 2020 23:41:23 +0000 (15:41 -0800)]
[flang] C1027: procedure pointer may not be coindexed object

Original-commit: flang-compiler/f18@4261daf352edefabee5c97f0ed0da09280240a86
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false

4 years ago[flang] Add IntrinsicProcTable::IsSpecificIntrinsicFunction
Tim Keith [Mon, 6 Jan 2020 23:56:32 +0000 (15:56 -0800)]
[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@4cb1ee10b90bbc5e3c4899ab136fad4d1e841195
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false

4 years ago[flang] Make Fortran form of intrinsic types uppercase
Tim Keith [Mon, 6 Jan 2020 22:04:17 +0000 (14:04 -0800)]
[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@e16909d67f16425b267511e5fe33f2ff72f69ee9
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false

4 years ago[flang] Move pointer assignment checking to its own file
Tim Keith [Mon, 6 Jan 2020 17:16:18 +0000 (09:16 -0800)]
[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@1658aba81f24fe3913298e76ae8b9c938bd4d248
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false

4 years ago[flang] Clean up AssignmentContext
Tim Keith [Sat, 4 Jan 2020 20:38:35 +0000 (12:38 -0800)]
[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@e171029ccdb9efe874cad3a3d91adcfa200a6550
Reviewed-on: https://github.com/flang-compiler/f18/pull/928
Tree-same-pre-rewrite: false

4 years ago[flang] Merge pull request flang-compiler/f18#933 from flang-compiler/tsk-issues
Tim Keith [Tue, 14 Jan 2020 21:06:06 +0000 (13:06 -0800)]
[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@7cf6f6137d93a6faca40a835cdabaecebe02d219
Reviewed-on: https://github.com/flang-compiler/f18/pull/933

4 years ago[flang] Move checks for valid array-spec to check-declarations.cc
Tim Keith [Tue, 14 Jan 2020 20:06:52 +0000 (12:06 -0800)]
[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@c596d2fef7628236676c1939659f4eb956e4df35
Reviewed-on: https://github.com/flang-compiler/f18/pull/933

4 years ago[flang] Merge pull request flang-compiler/f18#932 from flang-compiler/pmk-fix-931
Peter Klausler [Tue, 14 Jan 2020 19:37:20 +0000 (11:37 -0800)]
[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@6adae0b7f4196e54b874c4d0aca93c5cb2d01bd7
Reviewed-on: https://github.com/flang-compiler/f18/pull/932

4 years ago[flang] Fix bug flang-compiler/f18#931: spurious error reported on CSHIFT
peter klausler [Tue, 14 Jan 2020 18:53:36 +0000 (10:53 -0800)]
[flang] Fix bug flang-compiler/f18#931: spurious error reported on CSHIFT

Original-commit: flang-compiler/f18@bd9bd788652975ac11a24fd5d10197be80c78603
Reviewed-on: https://github.com/flang-compiler/f18/pull/932

4 years ago[flang] Regression tests configuration for f18 repository (flang-compiler/f18#861)
CarolineConcatto [Tue, 14 Jan 2020 16:20:49 +0000 (16:20 +0000)]
[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@arm.com>
Original-commit: flang-compiler/f18@a58c6067a1ab5cd02dfb5b6fb9919a20b960d984
Reviewed-on: https://github.com/flang-compiler/f18/pull/861

4 years ago[flang] Outline operator<< for CharBlock. (flang-compiler/f18#916)
David Truby [Tue, 14 Jan 2020 06:08:56 +0000 (06:08 +0000)]
[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@3ad75d123b666a5081540f2afedbedde930b2518
Reviewed-on: https://github.com/flang-compiler/f18/pull/916

4 years ago[flang] Merge pull request flang-compiler/f18#924 from flang-compiler/ps-cleanup...
psteinfeld [Sun, 12 Jan 2020 17:08:17 +0000 (09:08 -0800)]
[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@538a6dd5e27e3a159b84cd167f46bbbf656c8cfe
Reviewed-on: https://github.com/flang-compiler/f18/pull/924

4 years ago[flang] Removed an unnecessary check after Tim fixed issue flang-compiler/f18#915.
Pete Steinfeld [Sun, 12 Jan 2020 16:31:54 +0000 (08:31 -0800)]
[flang] Removed an unnecessary check after Tim fixed issue flang-compiler/f18#915.

Original-commit: flang-compiler/f18@348b04bc1c313d5d18ebb133441967547d4c7d6d
Reviewed-on: https://github.com/flang-compiler/f18/pull/924

4 years ago[flang] Merge pull request flang-compiler/f18#918 from flang-compiler/ps-do-func
psteinfeld [Fri, 10 Jan 2020 23:43:33 +0000 (15:43 -0800)]
[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@ab8fd34a718ca93d6e621b8818cfa6c2e1e948bf
Reviewed-on: https://github.com/flang-compiler/f18/pull/918

4 years ago[flang] Checks for DO variables passed to INTENT(OUT) dummies in functions
Pete Steinfeld [Thu, 9 Jan 2020 19:37:51 +0000 (11:37 -0800)]
[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@815dbed75c2cae778b4a65022a9c1f6ad4cf3d47
Reviewed-on: https://github.com/flang-compiler/f18/pull/918

4 years ago[flang] Merge pull request flang-compiler/f18#923 from flang-compiler/tsk-expr2
Tim Keith [Fri, 10 Jan 2020 22:52:36 +0000 (14:52 -0800)]
[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@b29f284325f95efbba2b9da35282b2e066f65446
Reviewed-on: https://github.com/flang-compiler/f18/pull/923

4 years ago[flang] Detect incorrect use of assumed-type dummy arguments
Tim Keith [Fri, 10 Jan 2020 22:09:39 +0000 (14:09 -0800)]
[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@679ef69905e39f39454768264059afd85b615840
Reviewed-on: https://github.com/flang-compiler/f18/pull/923

4 years ago[flang] Merge pull request flang-compiler/f18#922 from flang-compiler/gak-fix-comments
Gary Klimowicz [Fri, 10 Jan 2020 21:05:23 +0000 (13:05 -0800)]
[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@9c7406324dc3768886ec8d2baf92b0d9395291be
Reviewed-on: https://github.com/flang-compiler/f18/pull/922

4 years ago[flang] Minor format change to LLVM license lines
Gary Klimowicz [Fri, 10 Jan 2020 20:12:03 +0000 (12:12 -0800)]
[flang] Minor format change to LLVM license lines

Replace comment lines containing all dashes with the
proper ===-----....----=== markers.

Original-commit: flang-compiler/f18@a8936b0d4187a9a9ef43f9d34055a3213beeb9d2
Reviewed-on: https://github.com/flang-compiler/f18/pull/922

4 years ago[flang] Merge pull request flang-compiler/f18#919 from flang-compiler/pmk-fix-power...
Peter Klausler [Fri, 10 Jan 2020 17:15:29 +0000 (09:15 -0800)]
[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@5b7f08abd79d3c59723dad6e8de0568c834479e1
Reviewed-on: https://github.com/flang-compiler/f18/pull/919

4 years ago[flang] Dodge build problem in some Power environments
peter klausler [Thu, 9 Jan 2020 22:01:40 +0000 (14:01 -0800)]
[flang] Dodge build problem in some Power environments

Original-commit: flang-compiler/f18@f24abf19c4aac3869459cd0984473ea3b5232d12
Reviewed-on: https://github.com/flang-compiler/f18/pull/919

4 years ago[flang] Merge pull request flang-compiler/f18#914 from flang-compiler/pmk-runtime-1
Peter Klausler [Thu, 9 Jan 2020 21:07:34 +0000 (13:07 -0800)]
[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@42ff2d005242d71f80a9460c00cbcec3e8323971
Reviewed-on: https://github.com/flang-compiler/f18/pull/914

4 years ago[flang] Runtime starting and stopping
peter klausler [Wed, 8 Jan 2020 21:27:32 +0000 (13:27 -0800)]
[flang] Runtime starting and stopping

Define ImageTerminator as a mixin-able class

Turn start.cc into main.cc

Original-commit: flang-compiler/f18@cbc6225213075a0bdd778fd25721aa8388908e07
Reviewed-on: https://github.com/flang-compiler/f18/pull/914

4 years ago[flang] Merge pull request flang-compiler/f18#917 from flang-compiler/pmk-fix-912
Peter Klausler [Thu, 9 Jan 2020 20:28:39 +0000 (12:28 -0800)]
[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@66025c14e432ee3f2ceab9ad5176bd1c64cd147c
Reviewed-on: https://github.com/flang-compiler/f18/pull/917

4 years ago[flang] Address complaints in bug flang-compiler/f18#912
peter klausler [Thu, 9 Jan 2020 17:39:09 +0000 (09:39 -0800)]
[flang] Address complaints in bug flang-compiler/f18#912

Original-commit: flang-compiler/f18@829f5647d67131af57dcb84b0ed2d63a5324900d
Reviewed-on: https://github.com/flang-compiler/f18/pull/917

4 years ago[flang] Merge pull request flang-compiler/f18#911 from flang-compiler/pmk-fold-trim
Peter Klausler [Wed, 8 Jan 2020 17:04:30 +0000 (09:04 -0800)]
[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@2c6480a62dfb75884373a4fb8b00eadb2d09adf9
Reviewed-on: https://github.com/flang-compiler/f18/pull/911

4 years ago[flang] Fold TRIM
peter klausler [Tue, 7 Jan 2020 21:39:42 +0000 (13:39 -0800)]
[flang] Fold TRIM

Accept IS_CONTIGUOUS and fold it

test folding is_contiguous

Original-commit: flang-compiler/f18@c75a0791b14811477572c6a82a961071ed82c01e
Reviewed-on: https://github.com/flang-compiler/f18/pull/911

4 years ago[flang] Merge pull request flang-compiler/f18#910 from flang-compiler/pmk-fold-more
Peter Klausler [Tue, 7 Jan 2020 21:08:51 +0000 (13:08 -0800)]
[flang] Merge pull request flang-compiler/f18#910 from flang-compiler/pmk-fold-more

Fold more intrinsic functions

Original-commit: flang-compiler/f18@4f737d4cf684fe84abaa3b44c70187f1f8b53072
Reviewed-on: https://github.com/flang-compiler/f18/pull/910

4 years ago[flang] Implement folding of INDEX, SCAN, & VERIFY
peter klausler [Mon, 6 Jan 2020 23:29:53 +0000 (15:29 -0800)]
[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@36769996fa9559b84dda59f3f9eceee9d2269e74
Reviewed-on: https://github.com/flang-compiler/f18/pull/910

4 years ago[flang] Merge pull request flang-compiler/f18#907 from flang-compiler/pmk-enable...
Peter Klausler [Tue, 7 Jan 2020 19:42:20 +0000 (11:42 -0800)]
[flang] Merge pull request flang-compiler/f18#907 from flang-compiler/pmk-enable-semantics

Enable semantic analysis by default

Original-commit: flang-compiler/f18@26ab8745110bcd8909024bb02720cc0f23b9ed9b
Reviewed-on: https://github.com/flang-compiler/f18/pull/907

4 years ago[flang] enable semantic analysis by default
peter klausler [Sat, 4 Jan 2020 00:32:23 +0000 (16:32 -0800)]
[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@57058a5b163eaa90c7e0f387ea4918f9efa8184c
Reviewed-on: https://github.com/flang-compiler/f18/pull/907

4 years ago[flang] Merge pull request flang-compiler/f18#897 from kiranchandramohan/critical-3
Peter Klausler [Sat, 4 Jan 2020 15:55:26 +0000 (07:55 -0800)]
[flang] Merge pull request flang-compiler/f18#897 from kiranchandramohan/critical-3

Semantic Checks for critical construct

Original-commit: flang-compiler/f18@b17ab7f7bda573d33d6ca554ef1e46144148cf57
Reviewed-on: https://github.com/flang-compiler/f18/pull/897

4 years ago[flang] Semantic checks for critical construct
Kiran Chandramohan [Thu, 26 Dec 2019 05:18:47 +0000 (05:18 +0000)]
[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@4b7a007ff3d4a3e519c85e960fc262bb382f3af4
Reviewed-on: https://github.com/flang-compiler/f18/pull/897

4 years ago[flang] Merge pull request flang-compiler/f18#905 from flang-compiler/pmk-folding
Peter Klausler [Sat, 4 Jan 2020 00:22:18 +0000 (16:22 -0800)]
[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@ccb3ae517be766436e1cd7bcdcbb06d494fe614b
Reviewed-on: https://github.com/flang-compiler/f18/pull/905

4 years ago[flang] Fold FLOOR, CEILING, NINT, and ANINT
peter klausler [Fri, 3 Jan 2020 19:34:16 +0000 (11:34 -0800)]
[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@f663d4fef4b4c561f99e8126ff3f1d5b8e868c84
Reviewed-on: https://github.com/flang-compiler/f18/pull/905

4 years ago[flang] Merge pull request flang-compiler/f18#906 from flang-compiler/pmk-fix
Peter Klausler [Fri, 3 Jan 2020 23:22:15 +0000 (15:22 -0800)]
[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@a4540324a32d60cd5dd82f765256b1e6d57d9504
Reviewed-on: https://github.com/flang-compiler/f18/pull/906

4 years ago[flang] Another attempt to fix bug flang-compiler/f18#877
peter klausler [Fri, 3 Jan 2020 21:15:18 +0000 (13:15 -0800)]
[flang] Another attempt to fix bug flang-compiler/f18#877

Original-commit: flang-compiler/f18@2ad2330cda59459ccfe63a62f1f944a6151f436c
Reviewed-on: https://github.com/flang-compiler/f18/pull/906

4 years ago[flang] Merge pull request flang-compiler/f18#904 from flang-compiler/tsk-assignment3
Tim Keith [Fri, 3 Jan 2020 22:11:14 +0000 (14:11 -0800)]
[flang] Merge pull request flang-compiler/f18#904 from flang-compiler/tsk-assignment3

Add analyzed form of pointer assignment

Original-commit: flang-compiler/f18@1f6cc18c7c1252026b2b673b138cefedd87b2a04
Reviewed-on: https://github.com/flang-compiler/f18/pull/904

4 years ago[flang] Add analyzed form of pointer assignment
Tim Keith [Fri, 3 Jan 2020 18:38:51 +0000 (10:38 -0800)]
[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@140c983423d3f49fad66bc67317af3684e96ba1b
Reviewed-on: https://github.com/flang-compiler/f18/pull/904

4 years ago[flang] Use common SymbolSet type
Tim Keith [Fri, 27 Dec 2019 17:02:28 +0000 (09:02 -0800)]
[flang] Use common SymbolSet type

Replace `std::set<const Symbol *>` with `SymbolSet` from `symbol.h`.

Original-commit: flang-compiler/f18@78e3ff33cc21999a73a061daaf772ae5f14c8e02
Reviewed-on: https://github.com/flang-compiler/f18/pull/904
Tree-same-pre-rewrite: false

4 years ago[flang] Fix type resolution in ConcurrentHeader
Tim Keith [Mon, 23 Dec 2019 22:19:24 +0000 (14:19 -0800)]
[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@8c0d890eb8852e460ea247c0c0e873dfe2da0200
Reviewed-on: https://github.com/flang-compiler/f18/pull/904
Tree-same-pre-rewrite: false

4 years ago[flang] Move forall01 to ERROR_TESTS
Tim Keith [Mon, 23 Dec 2019 18:40:20 +0000 (10:40 -0800)]
[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@99376d77a07aa04173bd20dcc45d08b76cae4a73
Reviewed-on: https://github.com/flang-compiler/f18/pull/904
Tree-same-pre-rewrite: false

4 years ago[flang] Merge pull request flang-compiler/f18#903 from flang-compiler/pmk-fix
Peter Klausler [Fri, 3 Jan 2020 19:33:12 +0000 (11:33 -0800)]
[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@85f5cbecf16642b7be7416c1f6d83f85f8fbc9f2
Reviewed-on: https://github.com/flang-compiler/f18/pull/903

4 years ago[flang] Remove needless std::move() that breaks clang build
peter klausler [Fri, 3 Jan 2020 18:30:14 +0000 (10:30 -0800)]
[flang] Remove needless std::move() that breaks clang build

Add the std::move() to where it should have been

Original-commit: flang-compiler/f18@54fe9b39a1551313da06e5c40ca2aa523288292d
Reviewed-on: https://github.com/flang-compiler/f18/pull/903

4 years ago[flang] Merge pull request flang-compiler/f18#902 from flang-compiler/ps-do-call
psteinfeld [Fri, 3 Jan 2020 17:09:02 +0000 (09:09 -0800)]
[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@27220661c3ac15c3135510b551458bc01a0a8ba5
Reviewed-on: https://github.com/flang-compiler/f18/pull/902

4 years ago[flang] Check for passing DO variables to OUT arguments in a CALL statement
Pete Steinfeld [Thu, 2 Jan 2020 20:26:47 +0000 (12:26 -0800)]
[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@0ff1d264284c51a0142df0b785eb5f6409e8ad51
Reviewed-on: https://github.com/flang-compiler/f18/pull/902

4 years ago[flang] Merge pull request flang-compiler/f18#901 from flang-compiler/pmk-operator-tbp
Peter Klausler [Thu, 2 Jan 2020 20:27:12 +0000 (12:27 -0800)]
[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@db63c87fb0ba8784c6b16cef80d6ae715900fa67
Reviewed-on: https://github.com/flang-compiler/f18/pull/901

4 years ago[flang] Handle type-bound user-defined operators
peter klausler [Thu, 2 Jan 2020 17:55:03 +0000 (09:55 -0800)]
[flang] Handle type-bound user-defined operators

Pre-review clean-up

Original-commit: flang-compiler/f18@1d4e85563aad3fc28c4decdc27f4c52af229c3d4
Reviewed-on: https://github.com/flang-compiler/f18/pull/901

4 years ago[flang] Merge pull request flang-compiler/f18#899 from flang-compiler/deps
Tim Keith [Thu, 2 Jan 2020 16:29:19 +0000 (08:29 -0800)]
[flang] Merge pull request flang-compiler/f18#899 from flang-compiler/deps

Add .mod file dependencies

Original-commit: flang-compiler/f18@74617f1d489ad211a81b91881ab8d4c199860fd8
Reviewed-on: https://github.com/flang-compiler/f18/pull/899

4 years ago[flang] Add .mod file dependencies
Tim Keith [Tue, 31 Dec 2019 22:08:12 +0000 (14:08 -0800)]
[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@8209ad3d32909573e9ef72327ba61932f8967587
Reviewed-on: https://github.com/flang-compiler/f18/pull/899

4 years ago[flang] Merge pull request flang-compiler/f18#900 from flang-compiler/pmk-fold
Peter Klausler [Tue, 31 Dec 2019 23:25:47 +0000 (15:25 -0800)]
[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@372c82219a7b6cd355bf6d785b81daaf39790ac4
Reviewed-on: https://github.com/flang-compiler/f18/pull/900

4 years ago[flang] Prep for review
peter klausler [Tue, 31 Dec 2019 22:10:28 +0000 (14:10 -0800)]
[flang] Prep for review

Original-commit: flang-compiler/f18@25cb92e9903dfd97a8b5b8ecd2b60ce22ecd3659
Reviewed-on: https://github.com/flang-compiler/f18/pull/900

4 years ago[flang] Put templates back into implementation header
peter klausler [Tue, 31 Dec 2019 21:58:26 +0000 (13:58 -0800)]
[flang] Put templates back into implementation header

Original-commit: flang-compiler/f18@89499243510d44d94ac47d41db34c0e6822801b0
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false

4 years ago[flang] More restructuring
peter klausler [Tue, 31 Dec 2019 21:43:15 +0000 (13:43 -0800)]
[flang] More restructuring

Original-commit: flang-compiler/f18@6e4aca113a7d744af8b2566a52e270d59743084e
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false

4 years ago[flang] Break up fold.cc along per-type fault lines
peter klausler [Tue, 31 Dec 2019 20:20:42 +0000 (12:20 -0800)]
[flang] Break up fold.cc along per-type fault lines

Original-commit: flang-compiler/f18@8022c143d9283d670350e9d2d68b21325becf8c6
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false

4 years ago[flang] Make SHAPE= argument to C_F_POINTER() sensitive to -Mlargearray
peter klausler [Tue, 31 Dec 2019 19:06:07 +0000 (11:06 -0800)]
[flang] Make SHAPE= argument to C_F_POINTER() sensitive to -Mlargearray

Original-commit: flang-compiler/f18@daaa74bbc85f0d1625d1aecd89a0b428209c5c4c
Reviewed-on: https://github.com/flang-compiler/f18/pull/900
Tree-same-pre-rewrite: false

4 years ago[flang] Merge pull request flang-compiler/f18#898 from flang-compiler/pmk-patch
Peter Klausler [Tue, 31 Dec 2019 18:52:56 +0000 (10:52 -0800)]
[flang] Merge pull request flang-compiler/f18#898 from flang-compiler/pmk-patch

Patch build problem

Original-commit: flang-compiler/f18@07318b5c8936060d6f0602da5e555d951b6abd29
Reviewed-on: https://github.com/flang-compiler/f18/pull/898

4 years ago[flang] Patch build problem
peter klausler [Tue, 31 Dec 2019 17:19:08 +0000 (09:19 -0800)]
[flang] Patch build problem

Original-commit: flang-compiler/f18@a66851210028d1cf31ba4875a2eb71eebb333a91
Reviewed-on: https://github.com/flang-compiler/f18/pull/898

4 years ago[flang] Merge pull request flang-compiler/f18#896 from flang-compiler/pmk-c_f_pointer
Peter Klausler [Tue, 31 Dec 2019 16:53:40 +0000 (08:53 -0800)]
[flang] Merge pull request flang-compiler/f18#896 from flang-compiler/pmk-c_f_pointer

C_F_POINTER

Original-commit: flang-compiler/f18@f4d48e852543a02ba19d8b9cce9fe18ee749d2d5
Reviewed-on: https://github.com/flang-compiler/f18/pull/896

4 years ago[flang] C_F_POINTER
peter klausler [Wed, 25 Dec 2019 20:29:50 +0000 (12:29 -0800)]
[flang] C_F_POINTER

Emit INTRINSIC statements in module files

Argument checking utility

Complete error checking

Original-commit: flang-compiler/f18@9c6a88f0482c1f222b37e0cc548c822f80ad00e7
Reviewed-on: https://github.com/flang-compiler/f18/pull/896

4 years ago[flang] Merge pull request flang-compiler/f18#893 from flang-compiler/pmk-fixes
Peter Klausler [Wed, 25 Dec 2019 02:08:03 +0000 (18:08 -0800)]
[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@86ae6e6cc85c46958c2446d754650026ba26ff86
Reviewed-on: https://github.com/flang-compiler/f18/pull/893

4 years ago[flang] Fix test for assignment to host-associated object in PURE
peter klausler [Tue, 24 Dec 2019 01:12:53 +0000 (17:12 -0800)]
[flang] Fix test for assignment to host-associated object in PURE

Original-commit: flang-compiler/f18@019e61aa85ce55298d233dbb3af6399a8ce974b6
Reviewed-on: https://github.com/flang-compiler/f18/pull/893

4 years ago[flang] The #! sequence must be at the start of the script file. (flang-compiler...
Steve Scalpone [Wed, 25 Dec 2019 00:58:28 +0000 (16:58 -0800)]
[flang] The #! sequence must be at the start of the script file. (flang-compiler/f18#894)

Original-commit: flang-compiler/f18@b1ff232730778d6de62036711afb34fd3ded0bd6
Reviewed-on: https://github.com/flang-compiler/f18/pull/894

4 years ago[flang] Merge pull request flang-compiler/f18#860 from flang-compiler/ps-do-redefine
psteinfeld [Tue, 24 Dec 2019 23:19:01 +0000 (15:19 -0800)]
[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@6715b162fa234b8836e34b216886d4de80ca4568
Reviewed-on: https://github.com/flang-compiler/f18/pull/860

4 years ago[flang] Semantic checks to see if a DO variable is modified
Pete Steinfeld [Sat, 7 Dec 2019 03:59:54 +0000 (19:59 -0800)]
[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@1bbfcca61b94dccfbbe943b511f846acc1c33997
Reviewed-on: https://github.com/flang-compiler/f18/pull/860

4 years ago[flang] Merge pull request flang-compiler/f18#891 from flang-compiler/pmk-spec
Peter Klausler [Tue, 24 Dec 2019 00:35:54 +0000 (16:35 -0800)]
[flang] Merge pull request flang-compiler/f18#891 from flang-compiler/pmk-spec

Some fixes

Original-commit: flang-compiler/f18@e3ee4a658ad4236a6683e8cbec8c24345dab9805
Reviewed-on: https://github.com/flang-compiler/f18/pull/891

4 years ago[flang] Fix off-by-one error in preprocessing expressions
peter klausler [Fri, 20 Dec 2019 21:03:30 +0000 (13:03 -0800)]
[flang] Fix off-by-one error in preprocessing expressions

Original-commit: flang-compiler/f18@4c08a4a1be9fb398a8fc7561da114dc9d2a3accc
Reviewed-on: https://github.com/flang-compiler/f18/pull/891

4 years ago[flang] Merge pull request flang-compiler/f18#890 from flang-compiler/gak-format...
Gary Klimowicz [Mon, 23 Dec 2019 19:47:55 +0000 (11:47 -0800)]
[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@a04295dc36f8685447bd83dffdd037dc2e819f2e
Reviewed-on: https://github.com/flang-compiler/f18/pull/890

4 years ago[flang] Fix clang-format issues identified during relicensing
Gary Klimowicz [Mon, 23 Dec 2019 19:16:00 +0000 (11:16 -0800)]
[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@b308f9e35a6d386b53ded90e84bbfac600f38867
Reviewed-on: https://github.com/flang-compiler/f18/pull/890

4 years ago[flang] Merge pull request flang-compiler/f18#887 from flang-compiler/gak-relicense
Gary Klimowicz [Mon, 23 Dec 2019 19:07:30 +0000 (11:07 -0800)]
[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@e06be2faa64a52471b3cfb2829dc05888236aa68
Reviewed-on: https://github.com/flang-compiler/f18/pull/887

4 years ago[flang] Flang relicensing changes for LLVM Apache 2.0 license
Gary Klimowicz [Fri, 20 Dec 2019 20:52:07 +0000 (12:52 -0800)]
[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@add6cde7244b926ca457a1c74c21fea071b85329
Reviewed-on: https://github.com/flang-compiler/f18/pull/887

4 years ago[flang] Merge pull request flang-compiler/f18#886 from kiranchandramohan/elemental
Peter Klausler [Fri, 20 Dec 2019 20:53:06 +0000 (12:53 -0800)]
[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@a694b62c6d464ef2fc17046497a0aa0a0b14a756
Reviewed-on: https://github.com/flang-compiler/f18/pull/886

4 years ago[flang] Mark ieee_get_flag and ieee_get_halting_mode as elemental
Kiran Chandramohan [Fri, 20 Dec 2019 20:28:18 +0000 (20:28 +0000)]
[flang] Mark ieee_get_flag and ieee_get_halting_mode as elemental

Original-commit: flang-compiler/f18@d6237fa31112acc7bd864b9f732cb288014e6cf7
Reviewed-on: https://github.com/flang-compiler/f18/pull/886

4 years ago[flang] Merge pull request flang-compiler/f18#885 from flang-compiler/pmk-fixes
Peter Klausler [Fri, 20 Dec 2019 20:24:30 +0000 (12:24 -0800)]
[flang] Merge pull request flang-compiler/f18#885 from flang-compiler/pmk-fixes

Two small fixes

Original-commit: flang-compiler/f18@2d8a4815a338b3c21cc9882ebbb165fe1204ed93
Reviewed-on: https://github.com/flang-compiler/f18/pull/885

4 years ago[flang] Fix kind of REAL(complex) to be the same as the argument by default
peter klausler [Fri, 20 Dec 2019 18:44:43 +0000 (10:44 -0800)]
[flang] Fix kind of REAL(complex) to be the same as the argument by default

Fixes for expression formatting

Original-commit: flang-compiler/f18@13e8909587f2284e0093cdfaab5ac8335b060ec9
Reviewed-on: https://github.com/flang-compiler/f18/pull/885

4 years ago[flang] Merge pull request flang-compiler/f18#884 from flang-compiler/pmk-warn-size
Peter Klausler [Fri, 20 Dec 2019 18:09:49 +0000 (10:09 -0800)]
[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@c88694b36eeb0ac0010127d8751627f000800000
Reviewed-on: https://github.com/flang-compiler/f18/pull/884

4 years ago[flang] Auto conversion of integer scalar actual argument exprs
peter klausler [Fri, 20 Dec 2019 03:13:16 +0000 (19:13 -0800)]
[flang] Auto conversion of integer scalar actual argument exprs

Add documentation

Original-commit: flang-compiler/f18@c1b200d23891cff4eca1991deec58c1adf65842e
Reviewed-on: https://github.com/flang-compiler/f18/pull/884

4 years ago[flang] Merge pull request flang-compiler/f18#883 from flang-compiler/pmk-spec-fixes
Peter Klausler [Fri, 20 Dec 2019 02:35:17 +0000 (18:35 -0800)]
[flang] Merge pull request flang-compiler/f18#883 from flang-compiler/pmk-spec-fixes

Misc fixes from SPEC

Original-commit: flang-compiler/f18@9e91c635d7c706b78ed8f3776e7bfac1e20b559f
Reviewed-on: https://github.com/flang-compiler/f18/pull/883

4 years ago[flang] Roll up fixes for semantic analysis of SPEC CPU codes
peter klausler [Thu, 19 Dec 2019 01:06:13 +0000 (17:06 -0800)]
[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@34b64db7da9e90109b1dfec5347b344eae7dd8ad
Reviewed-on: https://github.com/flang-compiler/f18/pull/883

4 years ago[flang] Save CallStmt::typedCall (flang-compiler/f18#879)
Tim Keith [Thu, 19 Dec 2019 17:52:15 +0000 (09:52 -0800)]
[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@2cc226f66ec51b38056c779494a7b6104557f9a8
Reviewed-on: https://github.com/flang-compiler/f18/pull/879

4 years ago[flang] Merge pull request flang-compiler/f18#878 from flang-compiler/tsk-dump-parse...
Tim Keith [Thu, 19 Dec 2019 01:26:49 +0000 (17:26 -0800)]
[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@0855ba8baa5c6e9afc62f96fd4cba5d9a32d56d5
Reviewed-on: https://github.com/flang-compiler/f18/pull/878

4 years ago[flang] Remove extraneous occurences of parser::
Tim Keith [Wed, 18 Dec 2019 23:49:42 +0000 (15:49 -0800)]
[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@e8e7ffcae88c3be8fecf4188896736790217578c
Reviewed-on: https://github.com/flang-compiler/f18/pull/878

4 years ago[flang] Include analyzed exprs in parse tree dump
Tim Keith [Wed, 18 Dec 2019 23:36:14 +0000 (15:36 -0800)]
[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@823b044d2a009f43fe5ce15755a8ae23f70dfed8
Reviewed-on: https://github.com/flang-compiler/f18/pull/878
Tree-same-pre-rewrite: false