[Bug fortran/30617] New: recursive I/O hangs under OSX 10.3
dominiq at lps dot ens dot fr
gcc-bugzilla@gcc.gnu.org
Sat Jan 27 19:47:00 GMT 2007
The executable of the following code:
external fun
real fun
real a
a = fun()
print *, a
print *, fun()
end
real function fun()
print *, 'test'
fun = 1.0
end
compiled with 4.3.0 20070126, hangs. -fdump-tree-original gives:
MAIN__ ()
{
real4 a;
_gfortran_set_std (70, 127, 0, 0);
a = fun ();
{
struct __st_parameter_dt dt_parm.0;
dt_parm.0.common.filename = "fun_external.f90";
dt_parm.0.common.line = 5;
dt_parm.0.common.unit = 6;
dt_parm.0.common.flags = 128;
_gfortran_st_write (&dt_parm.0);
_gfortran_transfer_real (&dt_parm.0, &a, 4);
_gfortran_st_write_done (&dt_parm.0);
}
{
struct __st_parameter_dt dt_parm.1;
dt_parm.1.common.filename = "fun_external.f90";
dt_parm.1.common.line = 6;
dt_parm.1.common.unit = 6;
dt_parm.1.common.flags = 128;
_gfortran_st_write (&dt_parm.1);
{
real4 D.951;
D.951 = fun ();
_gfortran_transfer_real (&dt_parm.1, &D.951, 4);
}
_gfortran_st_write_done (&dt_parm.1);
}
}
fun ()
{
real4 __result_fun;
{
struct __st_parameter_dt dt_parm.2;
dt_parm.2.common.filename = "fun_external.f90";
dt_parm.2.common.line = 9;
dt_parm.2.common.unit = 6;
dt_parm.2.common.flags = 128;
_gfortran_st_write (&dt_parm.2);
_gfortran_transfer_character (&dt_parm.2, "test", 4);
_gfortran_st_write_done (&dt_parm.2);
}
__result_fun = 1.0e+0;
return __result_fun;
}
and if run under gdb, after ^C, where gives:
#0 0x90017238 in semaphore_wait_signal_trap ()
#1 0x90001d90 in pthread_mutex_lock ()
#2 0x0020093c in get_external_unit (n=6, do_create=3331) at
../../../gcc-4.3-20070127/libgfortran/../gcc/gthr-posix.h:604
#3 0x001ff6e0 in data_transfer_init (dtp=0x6004d8, read_flag=3331) at
../../../gcc-4.3-20070127/libgfortran/io/transfer.c:1698
#4 0x00002b48 in fun_ () at fun_external.f90:9
#5 0x00002abc in MAIN__ () at fun_external.f90:6
#6 0x00002bac in main (argc=14, argv=0xd03) at
../../../gcc-4.3-20070127/libgfortran/fmain.c:18
Note that I see the same problem on OSX 10.4 with gcc version 4.2.0 20060617.
Any idea around?
--
Summary: recursive I/O hangs under OSX 10.3
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr
GCC target triplet: powerpc-apple-darwin7
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30617
More information about the Gcc-bugs
mailing list