[Bug fortran/71798] New: failure to finalise fortran temporary
jonathan.hogg at stfc dot ac.uk
gcc-bugzilla@gcc.gnu.org
Thu Jul 7 13:25:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71798
Bug ID: 71798
Summary: failure to finalise fortran temporary
Product: gcc
Version: 6.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: jonathan.hogg at stfc dot ac.uk
Target Milestone: ---
Created attachment 38855
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38855&action=edit
test case
Compiling and running the attached code we get:
$ gfortran-6 -o assign_final assign_final.f90 && ./assign_final
Creating 1
Assigned 2 1
This seems like a missing finalisation on copy assignment?
1) One might expect there to be a move assignment, and to get the following
output:
Creating 1 [created in-place for x]
Finalised 1 [may not happen if final not called on exit from program?]
2) Or a copy assignment, and to get the following:
Creating 1 [create as temporary]
Assigned 2 1 [copy temporary to x]
Finalised 1 [temporary destroyed]
Finalised 2 [may not happen if final not called on exit from program?]
I note that the intel compiler gives the second sequence, minus cleanup on
exit.
$ ifort -o assign_final assign_final.f90 && ./assign_final
Creating 1
Assigned 2 1
Finalised 1
I'm using the following version of gfortran:
GNU Fortran (Ubuntu 6.1.1-3ubuntu11~14.04.1) 6.1.1 20160511
More information about the Gcc-bugs
mailing list