-
- Downloads
Fortran: Add user defined error messages for UDTIO.
The defines IOMSG_LEN and MSGLEN were redundant so these are combined into IOMSG_LEN as defined in io.h. The remainder of the patch adds checks for when a user defined derived type IO procedure sets the IOSTAT or IOMSG variables independent of the librrary defined I/O messages. PR libfortran/105456 libgfortran/ChangeLog: * io/io.h (IOMSG_LEN): Moved to here. * io/list_read.c (MSGLEN): Removed MSGLEN. (convert_integer): Changed MSGLEN to IOMSG_LEN. (parse_repeat): Likewise. (read_logical): Likewise. (read_integer): Likewise. (read_character): Likewise. (parse_real): Likewise. (read_complex): Likewise. (read_real): Likewise. (check_type): Likewise. (list_formatted_read_scalar): Adjust to IOMSG_LEN. (nml_read_obj): Add user defined error message. * io/transfer.c (unformatted_read): Add user defined error message. (unformatted_write): Add user defined error message. (formatted_transfer_scalar_read): Add user defined error message. (formatted_transfer_scalar_write): Add user defined error message. * io/write.c (list_formatted_write_scalar): Add user defined error message. (nml_write_obj): Add user defined error message. gcc/testsuite/ChangeLog: * gfortran.dg/pr105456-nmlr.f90: New test. * gfortran.dg/pr105456-nmlw.f90: New test. * gfortran.dg/pr105456-ruf.f90: New test. * gfortran.dg/pr105456-wf.f90: New test. * gfortran.dg/pr105456-wuf.f90: New test.
Showing
- gcc/testsuite/gfortran.dg/pr105456-nmlr.f90 60 additions, 0 deletionsgcc/testsuite/gfortran.dg/pr105456-nmlr.f90
- gcc/testsuite/gfortran.dg/pr105456-nmlw.f90 60 additions, 0 deletionsgcc/testsuite/gfortran.dg/pr105456-nmlw.f90
- gcc/testsuite/gfortran.dg/pr105456-ruf.f90 36 additions, 0 deletionsgcc/testsuite/gfortran.dg/pr105456-ruf.f90
- gcc/testsuite/gfortran.dg/pr105456-wf.f90 34 additions, 0 deletionsgcc/testsuite/gfortran.dg/pr105456-wf.f90
- gcc/testsuite/gfortran.dg/pr105456-wuf.f90 34 additions, 0 deletionsgcc/testsuite/gfortran.dg/pr105456-wuf.f90
- libgfortran/io/io.h 3 additions, 4 deletionslibgfortran/io/io.h
- libgfortran/io/list_read.c 41 additions, 40 deletionslibgfortran/io/list_read.c
- libgfortran/io/transfer.c 49 additions, 0 deletionslibgfortran/io/transfer.c
- libgfortran/io/write.c 26 additions, 0 deletionslibgfortran/io/write.c
Loading
Please register or sign in to comment