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

--- Comment #2 from Gilles Gouaillardet <gilles.gouaillardet at gmail dot com> 
---
ubuntu does not ship libgfortran.so from gfortran-11.

I tried on a RedHat box, and the issue only occurs when
 - I compile with gfortran-11
 - *and* I force libgfortran-12

(so if i use the same gfortran and libgfortran versions, there is no issue).

Here is a stack trace in these conditions:

#0  0x00002aaaaba2dd70 in _exit () from /lib64/libc.so.6
#1  0x00002aaaab9a1cab in __run_exit_handlers () from /lib64/libc.so.6
#2  0x00002aaaab9a1d37 in exit () from /lib64/libc.so.6
#3  0x00002aaaaacf0976 in _gfortrani_exit_error (status=3) at
../../../../src/gcc-12.1.0/libgfortran/runtime/error.c:218
#4  0x00002aaaaacf12af in _gfortrani_internal_error (cmp=0x0,
message=0x2aaaaafdf2a5 "Invalid type in descriptor") at
../../../../src/gcc-12.1.0/libgfortran/runtime/error.c:534
#5  0x00002aaaaaf787e2 in _gfortran_gfc_desc_to_cfi_desc (d_ptr=0x7fffffffcfa8,
s=0x7fffffffcfd0) at
../../../../src/gcc-12.1.0/libgfortran/runtime/ISO_Fortran_binding.c:219
#6  0x0000000000400808 in pub_f08ts (a=<unknown type in
/home/usersup/gilles/build/gcc-11.3.0/x86_64-pc-linux-gnu/libgfortran/a.out, CU
0x0, DIE 0xc1>, 
    b=<unknown type in
/home/usersup/gilles/build/gcc-11.3.0/x86_64-pc-linux-gnu/libgfortran/a.out, CU
0x0, DIE 0xce>) at /home/usersup/gilles/y.f90:29
#7  0x00000000004007ad in bugsub (a=1, b=-3.67578065e-13) at
/home/usersup/gilles/y.f90:35
#8  0x00000000004008d0 in bug () at /home/usersup/gilles/y.f90:43
#9  0x0000000000400907 in main (argc=1, argv=0x7fffffffd4cd) at
/home/usersup/gilles/y.f90:44
#10 0x00002aaaab98a555 in __libc_start_main () from /lib64/libc.so.6
#11 0x0000000000400699 in _start ()


FWIW, here is the value of s when _gfortran_gfc_desc_to_cfi_desc is invoked
(gdb) p *s
$6 = {base_addr = 0x7fffffffd04c, offset = 38, dtype = {elem_len = 4, version =
0, rank = 0 '\000', type = 11 '\v', attribute = 2}, span = 4, dim =
0x7fffffffcff8}

I also noted that if the reproducer is built with gcc-12,
_gfortran_gfc_desc_to_cfi_desc() is not invoked at all.

Reply via email to