@@ -15,7 +15,7 @@ Summary
15
15
16
16
* [ AMD] ( #amd ) : unsupported (fails to build Smart-Pointers)
17
17
* [ Cray] ( #cray ) : partial support (3 test failures)
18
- * [ GCC] ( #gnu ) : partial support (6 test failures)
18
+ * [ GCC] ( #gnu ) : full support : trophy :
19
19
* [ IBM] ( #ibm ) : partial support (1 test failure)
20
20
* [ Intel] ( #intel ) : partial support (1 test failure)
21
21
* [ LLVM] ( #llvm ) : unsupported (fails to build Smart-Pointers)
@@ -57,31 +57,43 @@ ftn compile_me_only.f90
57
57
The number of unit test failures for the remainder of the Smart-Pointers test suite is unknown.
58
58
59
59
### GCC
60
- - Version: 12.2.0
61
- - Result: 4 test failures.
60
+ - Version: 13.0.1 20230321 (experimental)
61
+ - Result: 0 test failures.
62
62
```
63
63
% fpm test
64
64
Project is up to date
65
65
66
66
The compiler
67
- Fail : finalizes a non-allocatable object on the LHS of an intrinsic assignment
68
- Fail : finalizes an allocated allocatable LHS of an intrinsic assignment
67
+ Pass : finalizes a non-allocatable object on the LHS of an intrinsic assignment
68
+ Pass : finalizes an allocated allocatable LHS of an intrinsic assignment
69
69
Pass: finalizes a target when the associated pointer is deallocated
70
70
Pass: finalizes an object upon explicit deallocation
71
71
Pass: finalizes a non-pointer non-allocatable object at the END statement
72
72
Pass: finalizes a non-pointer non-allocatable object at END BLOCK statement
73
- Fail : finalizes a function reference on the RHS of an intrinsic assignment
74
- Fail : finalizes a specification expression function result
73
+ Pass : finalizes a function reference on the RHS of an intrinsic assignment
74
+ Pass : finalizes a specification expression function result
75
75
Pass: finalizes an intent(out) derived type dummy argument
76
76
Pass: finalizes an allocatable component object
77
77
78
78
A smart_pointer
79
- (skipped copy of declared reference due to a gfortran bug that would cause a segmentation fault)
80
79
Pass: creates a resource when constructed
81
80
Pass: removes the resource when the object goes out of scope
82
- Fail: copy points to the same resource as the original
83
- Fail: has zero references after a shallow copy goes out of scope
81
+ Pass: copy points to the same resource as the original
82
+ Pass: has zero references after a shallow copy goes out of scope
83
+ ```
84
+
85
+ The above gfortran version was built from source using commands of the following form:
86
+ ```
87
+ git clone [email protected] :sourceryinstitute/opencoarrays
88
+ cd opencoarrays
89
+ ./install.sh -p gcc -b master -j <num-threads>
90
+ export LD_LIBRARY_PATH="${PWD}/prerequisites/installations/lib"
91
+ export PATH="${PWD}/prerequisites/installations/bin:$PATH"
84
92
```
93
+ after replacing ` <num-threads> ` with the desired number of threads for an accelerated,
94
+ multithreaded build. Producing the above test results requires GCC commit
95
+ [ d7caf313525a46f200d7f5db1ba893f853774aee] , which reduced the number of gfortran test
96
+ failures from six to zero.
85
97
86
98
### IBM
87
99
- Version: IBM Open XL Fortran for AIX 17.1.0
@@ -176,3 +188,4 @@ Project is up to date
176
188
[ compiler_test_m.f90 ] : ./compiler_test_m.f90
177
189
[ sp_smart_pointer_test_m.f90 ] : ./sp_smart_pointer_test_m.F90
178
190
[ branch ] : https://github.com/BerkeleyLab/llvm-test-suite/tree/fortran-type-finalization/Fortran/UnitTests/finalization
191
+ [ d7caf313525a46f200d7f5db1ba893f853774aee] : https://github.com/gcc-mirror/gcc/commit/5889c7bd46a45dc07ffb77ec0d698e18e0b99840
0 commit comments