https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105542
Jerry DeLisle <jvdelisle at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Known to work| |15.1.1
Last reconfirmed| |2025-11-04
Known to fail| |16.0
Keywords| |rejects-valid
--- Comment #7 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
I just ran this with gcc version 15.1.1 20250712 (GCC)
$ fpm clean --all
+ rm -rf build
$ fpm test
+ mkdir -p build/dependencies
assert_m.F90 done.
sp_resource_m.f90 done.
specification_expression_finalization.Fdone.
test_result_m.f90 done.
assert_s.F90 done.
sp_reference_counter_m.f90 done.
test_m.F90 done.
sp_reference_counter_s.f90 done.
sp_smart_pointer_m.f90 done.
compiler_test_m.F90 done.
smart_pointer_m.f90 done.
sp_smart_pointer_s.F90 done.
libSmart-Pointers.a done.
user_object_smart_pointer.f90 done.
shallow_m.f90 done.
user_object_smart_pointer done.
specification_expression_finalization done.
sp_smart_pointer_test_m.F90 done.
main.f90 done.
Smart-Pointers-test done.
[100%] Project compiled successfully.
The compiler
Pass: finalizes a non-allocatable object on the LHS of an intrinsic
assignment
Pass: finalizes an allocated allocatable LHS of an intrinsic assignment
Pass: finalizes a target when the associated pointer is deallocated
Pass: finalizes an object upon explicit deallocation
Pass: finalizes a non-pointer non-allocatable object at the END statement
Pass: finalizes a non-pointer non-allocatable object at END BLOCK statement
Pass: finalizes a function reference on the RHS of an intrinsic assignment
Pass: finalizes a specification expression function result
Pass: finalizes an intent(out) derived type dummy argument
Pass: finalizes an allocatable component object
A smart_pointer
Pass: creates a resource when constructed
Pass: removes the resource when the object goes out of scope
Pass: copy points to the same resource as the original
Pass: has zero references after a shallow copy goes out of scope
$
Which means we had it fixed and now it is broken. I am going to try to bisect
this.