[Patch, Fortran] Fix DECL of namelist I/O function; fix FINALIZATION

Tobias Burnus burnus@net-b.de
Fri Aug 15 22:10:00 GMT 2014


This patch fixes two minor issues

a) The argument issue mentioned in 
https://gcc.gnu.org/ml/fortran/2014-08/msg00007.html
The main issue is that the decl uses "void" as argument; the FE passes 
IARG() alias gfc_array_index_type while the library expects a 
GFC_INTEGER_4. As n_dim and ts->kind are small, I have chosen to keep 
GFC_INTEGER_4 in the library and use int32_t for the argument and in the 
decl.

b) resolve_finalizer calls at the end the function, which obtains the 
vtab, which in turns calls the vtab function of the parent, which tries 
to generate the _final entry, which requires that the finalizers are 
resolved. In the test case, the parent's finalizer wasn't ready, leading 
to an ICE in an assert. The patch now first resolves the parent's 
finalizers before taking care of its own.

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

Tobias
-------------- next part --------------
A non-text attachment was scrubbed...
Name: io.diff
Type: text/x-patch
Size: 1945 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20140815/5f305e3c/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: final.diff
Type: text/x-patch
Size: 1446 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20140815/5f305e3c/attachment-0001.bin>


More information about the Fortran mailing list