$> cat alarm.f90 program test_alarm integer(kind=1) :: sec = 1 integer(kind=1) :: h = 0 integer(kind=1) :: stat = -1
CALL alarm(sec, h, stat) if (stat == -1) call abort() end program $> gfortran-svn -fdump-tree-original alarm.f90 $> cat alarm.f90.003t.original MAIN__ () { static int1 h = 0; static int1 stat = -1; static int1 sec = 1; _gfortran_set_std (70, 127, 0, 0); { int4 D.1005; int4 D.1004; int4 D.1003; D.1003 = (int4) sec; D.1004 = (int4) h; D.1005 = (int4) stat; _gfortran_alarm_sub_int (&D.1003, &D.1004, &D.1005); } if (stat == -1) { _gfortran_abort (); } } Here, the status (optional return value) is lost. -- Summary: intrinsic: ALARM Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dfranke at gcc dot gnu dot org OtherBugsDependingO 30932 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30947