Skip to content

Commit 1b01017

Browse files
authored
Merge pull request #71 from sourceryinstitute/doc-flang-test
Documentation: detail LLVM flang test results
2 parents 4b76950 + f041d01 commit 1b01017

File tree

2 files changed

+35
-16
lines changed

2 files changed

+35
-16
lines changed

README.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ respectively.
2828

2929
To use Smart-Pointers, define a non-abstract derived type that
3030

31-
1. Extends Smart Pointer's `sp_smart_pointer_t` type,
31+
1. Extends Smart-Pointer's `sp_smart_pointer_t` type,
3232
2. Implements the inherited `free` deferred binding, and
3333
3. Invokes the inherited `start_count` procedure inside object constructors.
3434

@@ -61,25 +61,24 @@ Supported Compilers
6161
Correct execution of the Smart Pointers library depends critically on comprehensive
6262
compiler support for type finalization. The unit test suite verifies the relevant
6363
compiler standard-conformance, including a test for each scenario in which the
64-
the Fortran 2018 standard requires that an object be finalized. The table below
64+
the Fortran 2023 standard requires that an object be finalized. The table below
6565
summarizes the observed compiler behaviors:
6666

67-
| _Compiler_ | _Test failures_ | _Version tested_ |
68-
| :--- | :---: | :--- |
69-
| AMD `flang` | N.A. (see Note 1.) | 13.0.0 (AOCC_3.2.0-Build\#128 2021\_11\_12) |
70-
| Cray `ftn` | >= 3 (see Note 2.) | 13.0.1 |
71-
| GCC `gfortran` :trophy: | 0 | 13.1.0 |
72-
| IBM `xlf2008_r` | 1 | 17.1.0 on AIX |
73-
| Intel `ifort` | 1 | 2021.7.0 Build 20220726_000000 |
74-
| Intel `ifx` | 1 | 2024.0.0 Build 20231017 |
75-
| LLVM `flang` :trophy: | 0 | `git` commit `f5253058144aca1e9fcacd` (9/20/2022) |
76-
| NAG `nagfor` :trophy: | 0 | 7.1 Build 7113 |
77-
| NVIDIA `nvfortran` | 2 | 22.7-0 |
67+
| _Compiler_ | _Test failures_ | _Version tested_ |
68+
| :--- | :---: | :--- |
69+
| AMD `flang` | N.A. (see Note 1.) | 13.0.0 (AOCC_3.2.0-Build\#128 2021\_11\_12) |
70+
| Cray `ftn` | >= 3 (see Note 2.) | 13.0.1 |
71+
| GCC `gfortran` :trophy: | 0 | 13.1.0 |
72+
| IBM `xlf2008_r` | 1 | 17.1.0 on AIX |
73+
| Intel `ifort` | 1 | 2021.7.0 Build 20220726_000000 |
74+
| Intel `ifx` | 1 | 2024.0.0 Build 20231017 |
75+
| LLVM `flang` :trophy: | 0 | 19.0.0 `git` commit 325f5123 |
76+
| NAG `nagfor` :trophy: | 0 | 7.1 Build 7113 |
77+
| NVIDIA `nvfortran` | 2 | 22.7-0 |
7878

7979
**Notes**
8080
1. Fails to build due to an internal compiler error (ICE).
8181
2. Fails to build due to `fpm` issue [767]. See [test/README.md#cray] for a lower bound on the Cray compiler test failures.
82-
3. Fails to build due to polymorphism not yet being supported. However, a refactored version of the 10 compiler tests in [./tests/compiler_test_m.f90] pass when incorporated into the [llvm-test-suite].
8382

8483
See the [test suite README.md](./test/README.md) for more details on each compiler's test
8584
results.

test/README.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,28 @@ Project is up to date
153153
```
154154

155155
### LLVM
156-
- Version tested: `git` commit `76911b5f75907eef53a30cc3` (9/20/2022)
157-
- Result: Fails with the error message `not yet implemented: derived type finalization`
156+
- Version tested: 19.0.0 git commit 325f51237252e6dab8e4e1ea1fa7acbb4faee1cd
157+
- Result: 0 test failures. :trophy:
158+
```
159+
The compiler
160+
Pass: finalizes a non-allocatable object on the LHS of an intrinsic assignme
161+
nt
162+
Pass: finalizes an allocated allocatable LHS of an intrinsic assignment
163+
Pass: finalizes a target when the associated pointer is deallocated
164+
Pass: finalizes an object upon explicit deallocation
165+
Pass: finalizes a non-pointer non-allocatable object at the END statement
166+
Pass: finalizes a non-pointer non-allocatable object at END BLOCK statement
167+
Pass: finalizes a function reference on the RHS of an intrinsic assignment
168+
Pass: finalizes a specification expression function result
169+
Pass: finalizes an intent(out) derived type dummy argument
170+
Pass: finalizes an allocatable component object
171+
172+
A smart_pointer
173+
Pass: creates a resource when constructed
174+
Pass: removes the resource when the object goes out of scope
175+
Pass: copy points to the same resource as the original
176+
Pass: has zero references after a shallow copy goes out of scope
177+
```
158178

159179
### NAG
160180
- Version: 7.1 (Build 7113)

0 commit comments

Comments
 (0)