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.

Reply via email to