$> 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

Reply via email to