This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, Fortran, 4.9] Minor FINAL preparation patch


*ping *

Tobias Burnus wrote:
Dear all,

this small patch fixes some small issues with the current FINAL implementation, which is still disabled. Namely:

(a) class.c: TRANSFER has an optional size= argument; if one doesn't has an actual-argument (which can be expr == NULL), it segfaults. (b) class.c: SIZE needs to return an index-size-kind integer not a default-kind integer (tree checking error, but potentially also wrong code) (c) trans.c: Scalar coarrays (with -fcoarray=lib) were mishandled - they also use an array descriptor

Build and regtested on x86-64-gnu-linux.
OK?

(I target 4.9 with this patch; in principle, it could also be applied to 4.8: The code is not used, yet, and thus it shouldn't harm on 4.8 but there is also no benefit.)


The full patch, which enables finalization and regtests is available at: https://userpage.physik.fu-berlin.de/~tburnus/final/ â The patch still requires some clean up. In addition, finalization (with a user FINAL subroutine) is mishandled for allocatable INTENT(OUT) as gfortran handles it (at least partially) in the caller (trans-expr.c's gfc_conv_procedure_call) and not in the callee (trans-decl.c). That will lead to not finalizing and segfaults at run time. There are more issues, but for an experimental implementation, fixing this issue should be enough. (Note: the .mod version should be bumped to force recompilation, which is required due to the ABI change of the vtable.)

Tobias


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]