implicit none integer :: i1,i2 integer(2) :: status2 integer(4) :: status4 i1 = 0; i2 = 0 call signal(i1, i2, status4) print *,status4 call signal(i1, i2, status2) print *,status2 end
Dumped tree shows: { int4 D.1330; D.1330 = (int4) status2; _gfortran_signal_sub_int (&i1, &i2, &D.1330); } i.e. the "status2 = (int2) D.1330" is missing. As soon as I figured out how to do it, I will patch this bug. There might be others in iresolve.c -- Summary: Subroutine: Kind convertion of intent(out) value: signal Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29651