https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29651

--- Comment #11 from Harald Anlauf <anlauf at gmx dot de> ---
(In reply to Thomas Koenig from comment #10)
> Is there anything left to fix?
> 
> A dump with recent trunk shows
> 
>    integer(kind=4) D.3468;
> 
>     D.3468 = (integer(kind=4)) status2;
>     _gfortran_signal_sub_int (&i1, &i2, &D.3468);

If you look further down in the dump, you'll see that
the result of the optional status argument is not
transferred to status2.  Unless I am missing something...

  {
    integer(kind=4) D.3387;

    D.3387 = (integer(kind=4)) status2;
    _gfortran_signal_sub_int (&i1, &i2, &D.3387);
  }
  {
    struct __st_parameter_dt dt_parm.1;

    dt_parm.1.common.filename = &"xx.f90"[1]{lb: 1 sz: 1};
    dt_parm.1.common.line = 9;
    dt_parm.1.common.flags = 128;
    dt_parm.1.common.unit = 6;
    _gfortran_st_write (&dt_parm.1);
    _gfortran_transfer_integer_write (&dt_parm.1, &status2, 2);
    _gfortran_st_write_done (&dt_parm.1);
  }

Just add some -finit-integer=-42 to the flags and run the code.

Reply via email to