Peter Klausler [Tue, 5 Mar 2019 00:29:48 +0000 (16:29 -0800)]
[flang] Merge pull request flang-compiler/f18#314 from flang-compiler/pmk-indirection
Add `ForwardReference<>` class template
Original-commit: flang-compiler/f18@
b541a4d167530138025b8a0c8dd1031144ab8435
Reviewed-on: https://github.com/flang-compiler/f18/pull/314
peter klausler [Mon, 4 Mar 2019 23:15:08 +0000 (15:15 -0800)]
[flang] Add ForwardReference<> + documentation + clean-up
Original-commit: flang-compiler/f18@
09e9501951499625fdabdc04f3bcf7ae85b37467
Reviewed-on: https://github.com/flang-compiler/f18/pull/314
peter klausler [Mon, 4 Mar 2019 21:42:00 +0000 (13:42 -0800)]
[flang] checkpoint
Original-commit: flang-compiler/f18@
65abebd838ef6b20960f69595709db55f3e5a9b7
Reviewed-on: https://github.com/flang-compiler/f18/pull/314
Tree-same-pre-rewrite: false
Peter Klausler [Mon, 4 Mar 2019 21:46:24 +0000 (13:46 -0800)]
[flang] Merge pull request flang-compiler/f18#313 from flang-compiler/pmk-fix312
Fix flang-compiler/f18#312
Original-commit: flang-compiler/f18@
74a9426adf29b21a0971f6db224efbd77da989af
Reviewed-on: https://github.com/flang-compiler/f18/pull/313
peter klausler [Mon, 4 Mar 2019 21:44:59 +0000 (13:44 -0800)]
[flang] Fix a typo in documentation
Original-commit: flang-compiler/f18@
3248ec1cf93a18a7172eaeb90688de9fae4ab753
Reviewed-on: https://github.com/flang-compiler/f18/pull/313
peter klausler [Mon, 4 Mar 2019 21:44:04 +0000 (13:44 -0800)]
[flang] Fix accidentally modified comment
Original-commit: flang-compiler/f18@
7d0b365a6dcd02df245ee6ea2fcbadbdb31e86f6
Reviewed-on: https://github.com/flang-compiler/f18/pull/313
Tree-same-pre-rewrite: false
peter klausler [Mon, 4 Mar 2019 19:55:10 +0000 (11:55 -0800)]
[flang] check out with all versions
Original-commit: flang-compiler/f18@
0b1369ce5511d728c10c1b00ca14a2c9c4572ac7
Reviewed-on: https://github.com/flang-compiler/f18/pull/313
Tree-same-pre-rewrite: false
peter klausler [Mon, 4 Mar 2019 19:23:50 +0000 (11:23 -0800)]
[flang] Fix flang-compiler/f18#312
Original-commit: flang-compiler/f18@
625ffb4f1a09343725907fe51597e88e28a0ca91
Reviewed-on: https://github.com/flang-compiler/f18/pull/313
Tree-same-pre-rewrite: false
psteinfeld [Fri, 1 Mar 2019 19:06:20 +0000 (11:06 -0800)]
[flang] Merge pull request flang-compiler/f18#310 from flang-compiler/psteinfeld
Fixed reference to a header file
Original-commit: flang-compiler/f18@
658bc758d7c4bcea7ffbf06968a2faa3f4c8a124
Reviewed-on: https://github.com/flang-compiler/f18/pull/310
Peter Steinfeld [Fri, 1 Mar 2019 18:28:17 +0000 (10:28 -0800)]
[flang] Fixed reference to a header file
Original-commit: flang-compiler/f18@
22f93f0b307384ebe022aa300771fef40039c11e
Reviewed-on: https://github.com/flang-compiler/f18/pull/310
Peter Klausler [Thu, 28 Feb 2019 20:04:50 +0000 (12:04 -0800)]
[flang] Merge pull request flang-compiler/f18#308 from flang-compiler/pmk-cleanups
Rename to Fortran.h, update style guide, run clang-format on everything
Original-commit: flang-compiler/f18@
0cf07c3ace6b713f8ec0fb348af99a4ef04dd9e3
Reviewed-on: https://github.com/flang-compiler/f18/pull/308
peter klausler [Thu, 28 Feb 2019 19:47:33 +0000 (11:47 -0800)]
[flang] Missed a fortran.h instance
Original-commit: flang-compiler/f18@
3a9a185383fb4bf967624258f59e2f22cd143ed5
Reviewed-on: https://github.com/flang-compiler/f18/pull/308
peter klausler [Thu, 28 Feb 2019 18:48:41 +0000 (10:48 -0800)]
[flang] Rename to Fortran.h, update style guide, run clang-format
Original-commit: flang-compiler/f18@
aa2907d2260c34085360917e7fab43d8ee79b6e4
Reviewed-on: https://github.com/flang-compiler/f18/pull/308
Tree-same-pre-rewrite: false
Tim Keith [Thu, 28 Feb 2019 19:06:32 +0000 (11:06 -0800)]
[flang] Merge pull request flang-compiler/f18#309 from flang-compiler/tsk2c
Fix bug in test_modfile.sh
Original-commit: flang-compiler/f18@
6e95724f0e2efda36c0efc16d7f6bfde90975a00
Reviewed-on: https://github.com/flang-compiler/f18/pull/309
Tim Keith [Thu, 28 Feb 2019 19:05:49 +0000 (11:05 -0800)]
[flang] Fix bug in test_modfile.sh
The expected mod files specified in the test do not necessarily
appear in sorted order, and the desired order depends on what the
`comm` command expects. So sort them to be sure it is right.
Original-commit: flang-compiler/f18@
730d0d0562dd0a4eabfde020fef9fe371d401ff5
Reviewed-on: https://github.com/flang-compiler/f18/pull/309
Tim Keith [Thu, 28 Feb 2019 18:38:17 +0000 (10:38 -0800)]
[flang] Merge pull request flang-compiler/f18#305 from flang-compiler/tsk2
Various name resolution bug fixes
Original-commit: flang-compiler/f18@
fc831f600e5d37f646d4a83fbec7befc4d5dffda
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tim Keith [Thu, 28 Feb 2019 17:53:49 +0000 (09:53 -0800)]
[flang] Fix bug handling function prefix type
This showed up in procinterface01. A function can have more than one
PrefixSpec (e.g. `real elemental f()`). We need to ignore that ones
that aren't types.
Also, process the type after the ImplicitPart rather than after the
SpecificationPart. The type of the function result variable could
be accessed between those places.
Original-commit: flang-compiler/f18@
df85eedb925b6f8739d6f6ccd9820ff5d9e4f4c5
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tim Keith [Tue, 26 Feb 2019 22:52:39 +0000 (14:52 -0800)]
[flang] Fix bug with host-association in module procedure interface body
A module procedure interface body can access entities in its host
without an IMPORT statement. So the `ImportKind` of the scope created
for such an interface body should be `Default`, not `None` as it is
for other interface bodies.
Original-commit: flang-compiler/f18@
24bb2668fdb626a4df76719345b02e533d015d79
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tree-same-pre-rewrite: false
Tim Keith [Tue, 26 Feb 2019 21:28:53 +0000 (13:28 -0800)]
[flang] Allow module procedure and generic with same name
The `GenericDetails::CheckSpecific()` check was happening too early.
We have to wait until all procedures of the generic have been seen.
The generic can have the same name as a module procedure only if that
module procedure is a specific procedure of the generic.
Improve the `SayAlreadyDeclared` error message when the previous
declaration is a use-association
Original-commit: flang-compiler/f18@
269e3db6020a5acc51a291dfea98455e6a97d2d5
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tree-same-pre-rewrite: false
Tim Keith [Tue, 26 Feb 2019 21:08:59 +0000 (13:08 -0800)]
[flang] Fix .mod file for symbols with same name as generic
When a generic has the same name as a module procedure or derived type,
the latter weren't being written to the `.mod` file. Fix that by calling
`PutSymbol()` on those symbols from the generic. Change `PutSymbol()` to
accept `Symbol *` to make that more convenient.
Original-commit: flang-compiler/f18@
1778efe981812b1d1d1b684647c72085f44c3209
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tree-same-pre-rewrite: false
Tim Keith [Sun, 24 Feb 2019 18:05:43 +0000 (10:05 -0800)]
[flang] Fix resolution of function prefix type
When a function-stmt has a type in the prefix (`type(t) function f()`),
the type cannot be resolve until after processing the USE and IMPLICIT
statements. So save the parse-tree of the type and process it at the
end of the specification section.
Add `ProcessTypeSpec()` to handle the process of setting up to walk
a type spec, walking it, restoring the state, and returning the type
spec. We do this several other places too.
Original-commit: flang-compiler/f18@
bcde294d0e62c6ef8506392f66816814ae976dff
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tree-same-pre-rewrite: false
Tim Keith [Fri, 22 Feb 2019 23:56:39 +0000 (15:56 -0800)]
[flang] Fix bug determining type of statement entity
A statement entity (`data-i-do-variable` or `ac-do-variable`) that
doesn't have a type specified gets the type it would have in the
enclosing scope. That means if there is a visible variable with the
same name, the statement entity gets its type. We were failing to
do that and just applying the implicit rules.
Original-commit: flang-compiler/f18@
72bc7c29ba8d4be6a7c93080bb7fac7a3bc73577
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tree-same-pre-rewrite: false
Tim Keith [Fri, 22 Feb 2019 19:38:43 +0000 (11:38 -0800)]
[flang] Handle subprogram declaration after call
If an external subprogram is called and then declared, we have to
replace the `ProcEntityDetails` with `SubprogramDetails` in the symbol.
While doing so we can also check that the call was consistent with the
declaration for function vs. subprogram.
Original-commit: flang-compiler/f18@
e43a2dae790cd0f54ecaec2ffc1235fd2b7754e9
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tree-same-pre-rewrite: false
Tim Keith [Thu, 21 Feb 2019 23:01:39 +0000 (15:01 -0800)]
[flang] Fix bug determining function vs. subroutine
We were setting `expectedProcFlag_` to indicate if a `ProcedureDesignator`
was used in a function or subroutine context. That didn't work if they
were nested, for example: `call f(g())`.
Instead, at the point we know function vs. subroutine (i.e. in the
`CallStmt` and `FunctionReference` nodes), explicitly walk the children,
passing in the flag.
Original-commit: flang-compiler/f18@
8a13283f98c366b74b35bc003f7bc908212a0c6c
Reviewed-on: https://github.com/flang-compiler/f18/pull/305
Tree-same-pre-rewrite: false
Peter Klausler [Thu, 28 Feb 2019 17:48:50 +0000 (09:48 -0800)]
[flang] Merge pull request flang-compiler/f18#307 from flang-compiler/pmk-fixes
fix flang-compiler/f18#303, better error recovery for misplaced type parameter declarat…
Original-commit: flang-compiler/f18@
79684ed2ebd3d1a3670fad87de69f104305116cc
Reviewed-on: https://github.com/flang-compiler/f18/pull/307
peter klausler [Thu, 28 Feb 2019 01:03:40 +0000 (17:03 -0800)]
[flang] fix flang-compiler/f18#303, better error recovery for misplaced type parameter declarations
Original-commit: flang-compiler/f18@
ebaa23cbcd91ba83b65b8dd174baffab1395bc65
Reviewed-on: https://github.com/flang-compiler/f18/pull/307
Peter Klausler [Thu, 28 Feb 2019 17:30:27 +0000 (09:30 -0800)]
[flang] Merge pull request flang-compiler/f18#306 from flang-compiler/pmk-documentation
Small edits to C++17 usage notes
Original-commit: flang-compiler/f18@
0e51862dd2646ee763d8f31628ba61f0621072ea
Reviewed-on: https://github.com/flang-compiler/f18/pull/306
peter klausler [Thu, 28 Feb 2019 00:00:37 +0000 (16:00 -0800)]
[flang] Small edits to C++17 usage notes
Original-commit: flang-compiler/f18@
bdf62ac90020c84516400085b75109979d599dd7
Reviewed-on: https://github.com/flang-compiler/f18/pull/306
Eric Schweitz [Thu, 28 Feb 2019 17:15:05 +0000 (09:15 -0800)]
[flang] Merge pull request flang-compiler/f18#294 from flang-compiler/ir2
Fortran IR: part 2, lowest layer of the IR hierarchy. Specifically, Basic Blocks
Original-commit: flang-compiler/f18@
5bae9491740cf402218233fd1bc69ee9c92d8a8b
Reviewed-on: https://github.com/flang-compiler/f18/pull/294
Eric Schweitz [Fri, 22 Feb 2019 23:38:57 +0000 (15:38 -0800)]
[flang] address review comments
Original-commit: flang-compiler/f18@
b1c731b0266576d103f2dc44dfdb3410795cd81d
Reviewed-on: https://github.com/flang-compiler/f18/pull/294
Eric Schweitz [Thu, 21 Feb 2019 19:58:59 +0000 (11:58 -0800)]
[flang] respond to review comments - part 2
Original-commit: flang-compiler/f18@
5e4ed6a3128eb32cf93558c97ce116f7f18e4b92
Reviewed-on: https://github.com/flang-compiler/f18/pull/294
Tree-same-pre-rewrite: false
Eric Schweitz [Wed, 20 Feb 2019 20:12:17 +0000 (12:12 -0800)]
[flang] Fortran IR: lowest layer of the IR hierarchy. Specifically, Basic Blocks
contain Statements. This layer is still evolving as the IR takes better
shape and other code in the compiler is written.
Original-commit: flang-compiler/f18@
e1a282296b4dc90d05acb7d67f536f169fa36a39
Reviewed-on: https://github.com/flang-compiler/f18/pull/294
Tree-same-pre-rewrite: false
Eric Schweitz [Thu, 28 Feb 2019 17:14:41 +0000 (09:14 -0800)]
[flang] Merge pull request flang-compiler/f18#293 from flang-compiler/ir1
Fortran IR: part 1. staged pull request for the "upper layers" of the IR. The
Original-commit: flang-compiler/f18@
f978be5b8ed77bd3ce62ca1b5c99d3bd42863b82
Reviewed-on: https://github.com/flang-compiler/f18/pull/293
Eric Schweitz [Fri, 22 Feb 2019 23:17:57 +0000 (15:17 -0800)]
[flang] code review comments
Original-commit: flang-compiler/f18@
ef9bfa4bd7bed6a5cb3a78ae7abc9fb428f8d7e2
Reviewed-on: https://github.com/flang-compiler/f18/pull/293
Eric Schweitz [Thu, 21 Feb 2019 19:49:51 +0000 (11:49 -0800)]
[flang] Address review comments on part 1
Original-commit: flang-compiler/f18@
854e9836c37d0b2f0dd28749227a2b1e80ff893b
Reviewed-on: https://github.com/flang-compiler/f18/pull/293
Tree-same-pre-rewrite: false
Eric Schweitz [Wed, 20 Feb 2019 19:46:41 +0000 (11:46 -0800)]
[flang] Fortran IR: staged pull request for the "upper layers" of the IR. The
Fortran IR is hierarchical: A Program contains Procedures. Procedures
contain Basic Blocks. Groups of Basic Blocks can be grouped as Regions.
This structure follows those one finds in SIL and LLVM IR, etc.
Original-commit: flang-compiler/f18@
e2291016dffe76728879ba97d0bfadf2fcb557ed
Reviewed-on: https://github.com/flang-compiler/f18/pull/293
Tree-same-pre-rewrite: false
Eric Schweitz [Thu, 28 Feb 2019 16:57:09 +0000 (08:57 -0800)]
[flang] Merge pull request flang-compiler/f18#297 from flang-compiler/ir5
Fotran IR: part 5. Afforestation is the lowering of concrete parse trees
Original-commit: flang-compiler/f18@
20da0d93e9c8d18ee44b4dfa4dff43c96576df45
Reviewed-on: https://github.com/flang-compiler/f18/pull/297
Eric Schweitz [Fri, 22 Feb 2019 23:51:44 +0000 (15:51 -0800)]
[flang] changes per review comments
Original-commit: flang-compiler/f18@
3868f0c934d8ca8c19d567e011bdcc7c652a7ad9
Reviewed-on: https://github.com/flang-compiler/f18/pull/297
Eric Schweitz [Thu, 21 Feb 2019 21:13:16 +0000 (13:13 -0800)]
[flang] address code review for part 5
Original-commit: flang-compiler/f18@
43aa5084608773f5625f163d5d50a8cf5ee4d300
Reviewed-on: https://github.com/flang-compiler/f18/pull/297
Tree-same-pre-rewrite: false
Eric Schweitz [Wed, 20 Feb 2019 21:10:38 +0000 (13:10 -0800)]
[flang] Fotran IR: part 5. Afforestation is the lowering of concrete parse trees
and semantics information into the Fortran IR.
Original-commit: flang-compiler/f18@
d1dde126409d53864118b96363979d6dbcbd1b97
Reviewed-on: https://github.com/flang-compiler/f18/pull/297
Tree-same-pre-rewrite: false
Eric Schweitz [Thu, 28 Feb 2019 16:52:37 +0000 (08:52 -0800)]
[flang] Merge pull request flang-compiler/f18#296 from flang-compiler/ir4
Fortran IR: part 4. Dotty graph visualization and other miscellaneous
Original-commit: flang-compiler/f18@
6277e67c2770f26e288707bbaddf17aa022872b4
Reviewed-on: https://github.com/flang-compiler/f18/pull/296
Eric Schweitz [Fri, 22 Feb 2019 23:48:45 +0000 (15:48 -0800)]
[flang] address review comments
Original-commit: flang-compiler/f18@
d1a213ae5522f4ee3967dd53dc1ef90805062237
Reviewed-on: https://github.com/flang-compiler/f18/pull/296
Eric Schweitz [Thu, 21 Feb 2019 20:51:54 +0000 (12:51 -0800)]
[flang] address review comments from part 4
Original-commit: flang-compiler/f18@
64408ede56a47de39c84094655bfec08538b5744
Reviewed-on: https://github.com/flang-compiler/f18/pull/296
Tree-same-pre-rewrite: false
Eric Schweitz [Wed, 20 Feb 2019 21:07:49 +0000 (13:07 -0800)]
[flang] Fortran IR: part 4. Dotty graph visualization and other miscellaneous
headers.
Original-commit: flang-compiler/f18@
d7d9515f20557608ad7df45ef90647a318441e68
Reviewed-on: https://github.com/flang-compiler/f18/pull/296
Tree-same-pre-rewrite: false
Eric Schweitz [Thu, 28 Feb 2019 16:36:31 +0000 (08:36 -0800)]
[flang] Merge pull request flang-compiler/f18#295 from flang-compiler/ir3
Fortran IR: part 3, the FIR builder. This is a factory class for
Original-commit: flang-compiler/f18@
3e0cb83f037a6f2ded88e99d0e82722d68d49b37
Reviewed-on: https://github.com/flang-compiler/f18/pull/295
Eric Schweitz [Fri, 22 Feb 2019 23:43:03 +0000 (15:43 -0800)]
[flang] address review comments
Original-commit: flang-compiler/f18@
4dd4766f4d52319b6da47288134dd1b80aa425eb
Reviewed-on: https://github.com/flang-compiler/f18/pull/295
Eric Schweitz [Thu, 21 Feb 2019 20:05:26 +0000 (12:05 -0800)]
[flang] respond to review comments for part 3
Original-commit: flang-compiler/f18@
bcf0a6fa20c587d66be36f18c85d966d67c1d020
Reviewed-on: https://github.com/flang-compiler/f18/pull/295
Tree-same-pre-rewrite: false
Eric Schweitz [Wed, 20 Feb 2019 20:18:04 +0000 (12:18 -0800)]
[flang] Fortran IR: part 3, the FIR builder. This is a factory class for
helping to build a FIR representation.
Original-commit: flang-compiler/f18@
9d937065ac52dc08ad34009c2f8beb6f4757b06f
Reviewed-on: https://github.com/flang-compiler/f18/pull/295
Tree-same-pre-rewrite: false
Peter Klausler [Wed, 27 Feb 2019 21:14:18 +0000 (13:14 -0800)]
[flang] Merge pull request flang-compiler/f18#304 from flang-compiler/pmk-proc-interface
Procedure(id) semantics
Original-commit: flang-compiler/f18@
19151264445524e311b3b7734dae334697932e7d
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
peter klausler [Wed, 27 Feb 2019 20:30:57 +0000 (12:30 -0800)]
[flang] unparse interfaces as PROCEDURE(TYPE(REAL)) to avoid ambiguity
Original-commit: flang-compiler/f18@
efef1f1ad13acc65b37e73efa25b9402ab6c0bb5
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
peter klausler [Wed, 27 Feb 2019 19:12:16 +0000 (11:12 -0800)]
[flang] address review comments
Original-commit: flang-compiler/f18@
6f4af0fc1b0179808f8d4583de300564ef7f64c4
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
Tree-same-pre-rewrite: false
peter klausler [Wed, 27 Feb 2019 00:12:10 +0000 (16:12 -0800)]
[flang] prep for review
Original-commit: flang-compiler/f18@
794e6a42ec618702b43a21798782c8824d3ba499
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
Tree-same-pre-rewrite: false
peter klausler [Wed, 27 Feb 2019 00:02:34 +0000 (16:02 -0800)]
[flang] rebasing
Original-commit: flang-compiler/f18@
ff6c0be908e28c967668d2aea144508c76309574
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
Tree-same-pre-rewrite: false
peter klausler [Tue, 26 Feb 2019 23:59:25 +0000 (15:59 -0800)]
[flang] Clean up DynamicType, link it to symbol table character length
Original-commit: flang-compiler/f18@
833f5f52e24895ccd48a35dbcc999633fc7d26b4
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
Tree-same-pre-rewrite: false
peter klausler [Tue, 26 Feb 2019 22:26:28 +0000 (14:26 -0800)]
[flang] checkpoint
Original-commit: flang-compiler/f18@
4d907e3184da8e236d7a3c524cbb4630886f75c9
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
Tree-same-pre-rewrite: false
peter klausler [Fri, 22 Feb 2019 23:45:30 +0000 (15:45 -0800)]
[flang] checkpoint
Original-commit: flang-compiler/f18@
e7b0f456c9bba153c51c6e775a60e6d01e488271
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
Tree-same-pre-rewrite: false
peter klausler [Fri, 22 Feb 2019 01:05:46 +0000 (17:05 -0800)]
[flang] checkpoint
Original-commit: flang-compiler/f18@
a2b1c94ddbec8bd5c311ebb0c086b8aa7a032bf5
Reviewed-on: https://github.com/flang-compiler/f18/pull/304
Tree-same-pre-rewrite: false
psteinfeld [Tue, 26 Feb 2019 21:56:05 +0000 (13:56 -0800)]
[flang] Merge pull request flang-compiler/f18#301 from flang-compiler/psteinfeld
Cleanup of the documentation directory
Original-commit: flang-compiler/f18@
d9cd68e0783ba81c9d7f4441a61a0b8cb442bb1d
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
psteinfeld [Mon, 25 Feb 2019 18:47:17 +0000 (10:47 -0800)]
[flang] Update ControlFlowGraph.md
Original-commit: flang-compiler/f18@
50ce01185f708c3d80fd87579d28adc72dcf1555
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
psteinfeld [Mon, 25 Feb 2019 18:45:08 +0000 (10:45 -0800)]
[flang] Update C++style.md
Original-commit: flang-compiler/f18@
85215c871b6d728e7b97e393ff26b577c6cec2e7
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 18:38:55 +0000 (10:38 -0800)]
[flang] Update Overview.md
Original-commit: flang-compiler/f18@
9a26677adc1f1b2c5b3dd2a328b24df3713fb08f
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 18:27:50 +0000 (10:27 -0800)]
[flang] Rename Mod-files.md to ModFiles.md
Original-commit: flang-compiler/f18@
587a376f24a5d28abfdad20f3c7fda598f49f77d
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 18:23:55 +0000 (10:23 -0800)]
[flang] Update and rename Fortran-ir.md to FortranIR.md
Original-commit: flang-compiler/f18@
00a99b81e4a6b145d0831c3300456b7c5c32d8b4
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 17:39:27 +0000 (09:39 -0800)]
[flang] Update README.md
Original-commit: flang-compiler/f18@
230e9ad3a0877ce528d3a0fb034677bc9c819dc4
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:10:47 +0000 (08:10 -0800)]
[flang] Rename semantics.md to Semantics.md
Original-commit: flang-compiler/f18@
98dd9af648ac0b8cc2329d901650919ce5a486f3
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:10:14 +0000 (08:10 -0800)]
[flang] Rename preprocessing.md to Preprocessing.md
Original-commit: flang-compiler/f18@
ad305fd2d54940da44e02c1390d8ca6b3ce25491
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:09:46 +0000 (08:09 -0800)]
[flang] Rename parsing.md to Parsing.md
Original-commit: flang-compiler/f18@
d547949caac202b9c845b96d52065c979f542fe0
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:09:12 +0000 (08:09 -0800)]
[flang] Rename mod-files.md to Mod-files.md
Original-commit: flang-compiler/f18@
92ba4284e9984ce2b64c76a2de4b4e779574fbe2
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:08:43 +0000 (08:08 -0800)]
[flang] Rename intrinsics.md to Intrinsics.md
Original-commit: flang-compiler/f18@
1d2bcb2183fdd290a2c96d784833b18873ec99a8
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:08:11 +0000 (08:08 -0800)]
[flang] Rename fortran-ir.md to Fortran-ir.md
Original-commit: flang-compiler/f18@
f597e03e9ce098c38eb5ab010490145174d81341
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:07:27 +0000 (08:07 -0800)]
[flang] Rename extensions.md to Extensions.md
Original-commit: flang-compiler/f18@
6f935754b877007269928247642a38174d12fe1e
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
psteinfeld [Mon, 25 Feb 2019 16:06:04 +0000 (08:06 -0800)]
[flang] Rename directives.md to Directives.md
Original-commit: flang-compiler/f18@
752d757e1ca0b437875ea5a2eddf3e0d18ff376d
Reviewed-on: https://github.com/flang-compiler/f18/pull/301
Tree-same-pre-rewrite: false
Tim Keith [Fri, 22 Feb 2019 03:15:40 +0000 (19:15 -0800)]
[flang] Merge pull request flang-compiler/f18#299 from flang-compiler/tsk1
Fix build problem with clang
Original-commit: flang-compiler/f18@
d32605822f58b24c3c46405cdf5ea0fbc7bc3062
Reviewed-on: https://github.com/flang-compiler/f18/pull/299
Tim Keith [Fri, 22 Feb 2019 03:14:28 +0000 (19:14 -0800)]
[flang] Fix build problem with clang
Moving one of the `Pre(ImplicitStmt)` functions up to
`DeclarationVisitor` seemed to cause clang to complain that the `Pre`
call from the `Walk` function was ambiguous. So this change moves
it back to `ResolveNameVisitor`.
Also, remove an unused variable that was causing a warning.
Original-commit: flang-compiler/f18@
766d000e2507d92b7774ad2c37732bafccc7cbcb
Reviewed-on: https://github.com/flang-compiler/f18/pull/299
Tim Keith [Thu, 21 Feb 2019 22:52:24 +0000 (14:52 -0800)]
[flang] Merge pull request flang-compiler/f18#298 from flang-compiler/tsk2b
Implement SAVE, more work on COMMON and BIND
Original-commit: flang-compiler/f18@
dde1a2dd22f9016a268e2093394c37ae94d3eddd
Reviewed-on: https://github.com/flang-compiler/f18/pull/298
Tim Keith [Thu, 21 Feb 2019 01:45:39 +0000 (17:45 -0800)]
[flang] Handle SAVE attribute and statement
As with COMMON blocks, we can't completely check SAVE statements and
attributes until the end of the specification part when we have seen
full declarations of entities. So when SAVE is specified, add it to one
of the two sets in `saveInfo_`. At the end of the specification part,
check that those entities can have SAVE applied and set it if it is
not already implicitly set (e.g. due to being in a module). Also apply
the "global" SAVE if present (i.e. setting it on every applicable
entity).
Add `IsDummy()` and `IsFuncResult()` to `Symbol` to simplify some of
the checks. Also detect attempts to put a function result in a common
block.
Original-commit: flang-compiler/f18@
af19c02baca371ffff13722fa17792a1f26e7bcd
Reviewed-on: https://github.com/flang-compiler/f18/pull/298
Tim Keith [Wed, 20 Feb 2019 19:39:11 +0000 (11:39 -0800)]
[flang] Remove TODO for saved-entity
The parser can't distinguish `saved-entity -> object-name` from
`saved-entity -> proc-pointer-name`. So just use `kind` == `Entity`
for those cases. Name resolution will verify it is the right kind
of entity name.
Original-commit: flang-compiler/f18@
69d7c0e025fe8182ee1e62661b87c3be61b186cf
Reviewed-on: https://github.com/flang-compiler/f18/pull/298
Tree-same-pre-rewrite: false
Tim Keith [Mon, 18 Feb 2019 19:39:46 +0000 (11:39 -0800)]
[flang] More work on COMMON blocks
Common block names can't clash with other names, so add `commonBlocks_`
to `Scope` to record the common blocks of a scoping unit. This requires
changes to how scopes are dumped and written to `.mod` files.
Support common blocks in BIND statements. Add optional bind-name to
`CommonBlockDetails`.
Add `CheckNotInBlock()` for checking statements that are not allowed in
block constructs.
In `rewrite-parse-tree.cc`, no longer skip check for resolved names in
common statements. But do skip the checks in compiler directives.
Original-commit: flang-compiler/f18@
805a1ffd9b7f33ce95d334ef5fe3e864b9f3d69e
Reviewed-on: https://github.com/flang-compiler/f18/pull/298
Tree-same-pre-rewrite: false
Tim Keith [Fri, 15 Feb 2019 18:16:25 +0000 (10:16 -0800)]
[flang] Change handling of BIND attributes
Previously `BIND(C, NAME="...")` caused `bindName` to be set but not
the `BIND` attribute. This made writing the `.mod` file easier, but it
makes it hard to ask: does this symbol have a C binding.
This change causes the `BIND` attribute to be set whenever there is
`BIND(C)` in the source, regardless of whether there is a name or not.
`bindName` is only set when the `BIND` attribute is also set.
Original-commit: flang-compiler/f18@
5a6706ffcbb96c4439a6af5a1f739ad4e7b8c00a
Reviewed-on: https://github.com/flang-compiler/f18/pull/298
Tree-same-pre-rewrite: false
Peter Klausler [Tue, 19 Feb 2019 18:08:42 +0000 (10:08 -0800)]
[flang] Merge pull request flang-compiler/f18#291 from flang-compiler/pmk-recursive-type
Fix recursive use of parameterized derived types (issue flang-compiler/f18#283)
Original-commit: flang-compiler/f18@
4da7f01f077167da2a4734d019b6b15e260adac3
Reviewed-on: https://github.com/flang-compiler/f18/pull/291
peter klausler [Tue, 19 Feb 2019 18:08:10 +0000 (10:08 -0800)]
[flang] address review comments
Original-commit: flang-compiler/f18@
a27f240bd4d5e390e4114be9837db9d264024e08
Reviewed-on: https://github.com/flang-compiler/f18/pull/291
peter klausler [Sat, 16 Feb 2019 00:21:43 +0000 (16:21 -0800)]
[flang] Check for recursive EXTENDS()
Original-commit: flang-compiler/f18@
8d0a9bb36008fdbc5ad86d4857e6ea1a6da6d024
Reviewed-on: https://github.com/flang-compiler/f18/pull/291
Tree-same-pre-rewrite: false
peter klausler [Sat, 16 Feb 2019 00:08:32 +0000 (16:08 -0800)]
[flang] fix flang-compiler/f18#283 - recursive use of derived types
Original-commit: flang-compiler/f18@
f8889b83fcca8630c773dc52482b8236a30254c9
Reviewed-on: https://github.com/flang-compiler/f18/pull/291
Tree-same-pre-rewrite: false
Peter Klausler [Mon, 18 Feb 2019 22:12:57 +0000 (14:12 -0800)]
[flang] Merge pull request flang-compiler/f18#287 from flang-compiler/pmk-struct
Structure constructor semantics
Original-commit: flang-compiler/f18@
b1a822276693abc60d3688ee1262ec553cce4c23
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
peter klausler [Mon, 18 Feb 2019 21:47:34 +0000 (13:47 -0800)]
[flang] Address review comments
Original-commit: flang-compiler/f18@
7662121287a4317e1090e3ca360e2e214d3698cd
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
peter klausler [Fri, 15 Feb 2019 22:26:23 +0000 (14:26 -0800)]
[flang] push for review
Original-commit: flang-compiler/f18@
17dc73591104ee0c171b1d66ef24703ff612d909
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Fri, 15 Feb 2019 20:20:30 +0000 (12:20 -0800)]
[flang] Fix CHECK() on wa22 by implementing PGI language extension
Original-commit: flang-compiler/f18@
03fcb58977878ace2cd81cd404d8f6751bd9739b
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Thu, 14 Feb 2019 22:37:55 +0000 (14:37 -0800)]
[flang] complete transfer of struct constructor code to expression.cc
Original-commit: flang-compiler/f18@
e6178b2fc73bf7c98bb0519be8866ba799c17029
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Thu, 14 Feb 2019 20:51:20 +0000 (12:51 -0800)]
[flang] checkpoint, much code moved out of name resolution
Original-commit: flang-compiler/f18@
8a081e82fa8174414ca07b0b5126dd5e96bb0588
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Wed, 13 Feb 2019 20:02:42 +0000 (12:02 -0800)]
[flang] catch up with master
Original-commit: flang-compiler/f18@
e66ef3699c6f4c9c1053305aafeae0eefbe19b9b
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Wed, 13 Feb 2019 01:24:43 +0000 (17:24 -0800)]
[flang] checkpoint, tests pass
Original-commit: flang-compiler/f18@
d90d5d92442533b6ebb8c7a9336770347aeed57b
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Tue, 12 Feb 2019 00:02:14 +0000 (16:02 -0800)]
[flang] checkpoint
Original-commit: flang-compiler/f18@
6146957713a67d2975ffb295c495578d928b9f8c
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Mon, 11 Feb 2019 22:56:03 +0000 (14:56 -0800)]
[flang] Rework Constant<character>
Original-commit: flang-compiler/f18@
fc807bfd7d93895b4f097fae9974d11cd8cc170b
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Sat, 9 Feb 2019 00:35:02 +0000 (16:35 -0800)]
[flang] checkpoint
Original-commit: flang-compiler/f18@
156791b2885a455d30f7c78533a7a410188b17b0
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Fri, 8 Feb 2019 18:39:10 +0000 (10:39 -0800)]
[flang] checkpoint array/struct constructor work
Original-commit: flang-compiler/f18@
b0a574fa359938936712eada41994601c8df2713
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Thu, 7 Feb 2019 20:41:04 +0000 (12:41 -0800)]
[flang] merged with new master
Original-commit: flang-compiler/f18@
03944d5052227c8d738b72fc7f093672c398e0ec
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Thu, 7 Feb 2019 20:05:27 +0000 (12:05 -0800)]
[flang] checkpoint Constant<SomeDerived> based on StructureConstructor
Original-commit: flang-compiler/f18@
47986f0c7e1c5e47ac1aa0830c08e1dafe186fd8
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Wed, 6 Feb 2019 20:25:28 +0000 (12:25 -0800)]
[flang] Name resolution for structure constructors
Original-commit: flang-compiler/f18@
9d60038f0395464ef73f2f28e27281fb9e72be20
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Tue, 5 Feb 2019 18:48:26 +0000 (10:48 -0800)]
[flang] Eliminate DerivedTypeDetails::extends_ since it is front of component list
Original-commit: flang-compiler/f18@
15150225f83545c76cdb02c83e7be4843d388f94
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false
peter klausler [Mon, 4 Feb 2019 20:24:25 +0000 (12:24 -0800)]
[flang] begin work on structure constructors
Original-commit: flang-compiler/f18@
7131a2f91d8bfeed4d675be1db53b52e99acc83f
Reviewed-on: https://github.com/flang-compiler/f18/pull/287
Tree-same-pre-rewrite: false