|
| 1 | +Compiler Support Status |
| 2 | +======================= |
| 3 | + |
| 4 | +This directory contains two categories of unit tests separated into two files: |
| 5 | +* `compiler_test.f90` checks whether a compiler performs finalizes objects in |
| 6 | + each scenario that the Fortran 2018 standard requires. |
| 7 | +* `usage_test.f90` exercises the reference-counter library. |
| 8 | +The compiler tests verify the compiler in isolation, making _no_ use of the |
| 9 | +reference-counter library. |
| 10 | + |
| 11 | +`nagfor` 7.1.0 |
| 12 | +-------------- |
| 13 | +The Numerical Algorithms Group [(NAG]) Fortran compiler] passes all of the tests in the |
| 14 | +reference-counter test suite. :trophy: |
| 15 | + |
| 16 | +`gfortran` 12.2.0 |
| 17 | +----------------- |
| 18 | +Because the first usage test below causes a segmentation fault, |
| 19 | +exposing `gfortran`'s test failures requires running each test individually |
| 20 | +as follows: |
| 21 | +``` |
| 22 | +fpm test -- -f "<description>" |
| 23 | +``` |
| 24 | +where one must replace <description> above with one of the enumerated |
| 25 | +descriptions below (or a corresponding unambiguous substring). |
| 26 | + |
| 27 | +Failing checks in `compiler_test.f90`: |
| 28 | +1. finalizes a non-allocatable object on the LHS of an intrinsic assignment |
| 29 | +2. finalizes an allocated allocatable LHS of an intrinsic assignment |
| 30 | +3. finalizes a function reference on the RHS of an intrinsic assignment |
| 31 | +4. finalizes a function reference on the RHS of an intrinsic assignment |
| 32 | +5. finalizes a specification expression function result |
| 33 | + |
| 34 | +Failing checks in `usage_test.f90`: |
| 35 | +1. copy points to the same resource as the original |
| 36 | +2. has zero references after a shallow copy goes out of scope |
| 37 | + |
| 38 | +[(NAG) Fortran compiler]: https://www.nag.com/content/nag-fortran-compiler |
| 39 | + |
0 commit comments