Skip to content

Commit 31b04be

Browse files
authored
Merge pull request #60 from sourceryinstitute/doc-and-refactor
Doc: report GCC 13 passes all tests; Feat: impure elemental `free` procedure
2 parents 016447c + 300cb59 commit 31b04be

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,17 @@ summarizes the observed compiler behaviors:
6868
| :--- | :---: | :--- |
6969
| AMD | N.A. (see Note 1.) | `flang` 13.0.0 (AOCC_3.2.0-Build\#128 2021\_11\_12) |
7070
| Cray | >= 3 (see Note 2.) | `ftn` 13.0.1 |
71-
| GCC :trophy: | 0 (see Note 3.) | `gfortran` 13.0.1 20230321 (experimental) |
71+
| GCC :trophy: | 0 | `gfortran` 13.1.0 |
7272
| IBM | 1 | `xlf2008_r` 17.1.0 on AIX |
7373
| Intel | 1 | `ifort` 2021.7.0 Build 20220726_000000 |
74-
| LLVM | N.A. (see Note 4.) | `git` commit `f5253058144aca1e9fcacd` (9/20/2022)
74+
| LLVM | N.A. (see Note 3.) | `git` commit `f5253058144aca1e9fcacd` (9/20/2022)
7575
| NAG :trophy: | 0 | `nagfor` 7.1 Build 7113 |
7676
| NVIDIA | 2 | `nvfortran` 22.7-0 |
7777

7878
**Notes**
7979
1. Fails to build due to an internal compiler error (ICE).
8080
2. Fails to build due to `fpm` issue [767]. See [test/README.md#cray] for a lower bound on the Cray compiler test failures.
81-
3. See [test/README.md#gnu](./test/README.md#gnu) for instructions on building a current GCC from source.
82-
4. Fails to build due to type finalization not yet being supported.
81+
3. Fails to build due to polymorphism not yet being supported. However, a refactored version of 10 the 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.
@@ -144,3 +143,5 @@ class diagram below of the three derived types in Smart-Pointers.
144143
[767]: https://github.com/fortran-lang/fpm/issues/767
145144
[test/README.md#cray]: ./test/README.md#cray
146145
[Sourcery]: https://github.com/sourceryinstitute/sourcery
146+
[./tests/compiler_test_m.F90]: ./tests/compiler_test_m.F90
147+
[llvm-test-suite]: https://github.com/llvm/llvm-test-suite

example/user_object_smart_pointer.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module function construct(user_object) result(user_object_ptr)
2626

2727
interface
2828

29-
module subroutine free(self)
29+
impure elemental module subroutine free(self)
3030
implicit none
3131
class(user_object_ptr_t), intent(inout) :: self
3232
end subroutine

src/smart_pointer/sp_resource_m.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ module sp_resource_m
1111

1212
abstract interface
1313

14-
subroutine free_interface(self)
14+
impure elemental subroutine free_interface(self)
1515
import sp_resource_t
1616
class(sp_resource_t), intent(inout) :: self
1717
end subroutine

test/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ ftn compile_me_only.f90
5757
The number of unit test failures for the remainder of the Smart-Pointers test suite is unknown.
5858

5959
### GCC
60-
- Version: 13.0.1 20230321 (experimental)
60+
- Version: 13.1.0
6161
- Result: 0 test failures.
6262
```
6363
% fpm test

0 commit comments

Comments
 (0)