[Patch, Fortran] C Binding - module+intrinsic cleanup+bug fixes
Dominique Dhumieres
dominiq@lps.ens.fr
Sun Mar 24 10:35:00 GMT 2013
Dear Tobias,
On x86_64-apple-darwin10, I see the following failures with both -m32 and -m64,
FAIL: gfortran.dg/c_funloc_tests_8.f90 -O (test for errors, line 24)
FAIL: gfortran.dg/c_funloc_tests_8.f90 -O (test for errors, line 28)
FAIL: gfortran.dg/transfer_resolve_2.f90 -O (internal compiler error)
FAIL: gfortran.dg/transfer_resolve_2.f90 -O (test for excess errors)
I have tested the patch on my patched tree or on a clean revision 197010.
The bactracde for the ICE and the reduced test
program gar_nichts
use ISO_C_BINDING
type(c_ptr) nada
nada=transfer(C_NULL_PTR,nada)
end program gar_nichts
is
Program received signal SIGSEGV, Segmentation fault.
0x00000001414ffa53 in __gmpz_sizeinbase () from /opt/mp/lib/libgmp.10.dylib
(gdb) bt
#0 0x00000001414ffa53 in __gmpz_sizeinbase () from /opt/mp/lib/libgmp.10.dylib
#1 0x00000001003b5eb3 in mpz_get_double_int (type=0x141b12738, val=0x14161b7a0, wrap=<value optimized out>) at ../../p_work/gcc/double-int.c:1470
#2 0x00000001000d97d0 in gfc_conv_mpz_to_tree (i=0x14161b7a0, kind=8) at ../../p_work/gcc/fortran/trans-const.c:203
#3 0x00000001000b68bf in gfc_target_encode_expr (source=0x14161b720, buffer=0x7fff5fbfd120 "", buffer_size=8)
at ../../p_work/gcc/fortran/target-memory.c:171
#4 0x00000001000acba1 in gfc_simplify_transfer (source=0x14161b720, mold=<value optimized out>, size=<value optimized out>)
at ../../p_work/gcc/fortran/simplify.c:6056
#5 0x0000000100045822 in do_simplify (specific=0x142024e08, e=0x14161b530) at ../../p_work/gcc/fortran/intrinsic.c:3870
#6 0x0000000100054151 in gfc_intrinsic_func_interface (expr=0x14161b530, error_flag=1) at ../../p_work/gcc/fortran/intrinsic.c:4213
#7 0x0000000100094fb7 in gfc_resolve_expr (e=<value optimized out>) at ../../p_work/gcc/fortran/resolve.c:2603
#8 0x000000010009b076 in resolve_code (code=<value optimized out>, ns=<value optimized out>) at ../../p_work/gcc/fortran/resolve.c:9573
#9 0x000000010009deb4 in resolve_codes (ns=<value optimized out>) at ../../p_work/gcc/fortran/resolve.c:14413
#10 0x000000010008e59d in gfc_resolve (ns=<value optimized out>) at ../../p_work/gcc/fortran/resolve.c:14441
#11 0x00000001000829eb in gfc_parse_file () at ../../p_work/gcc/fortran/parse.c:4399
#12 0x00000001000c0d86 in gfc_be_parse_file () at ../../p_work/gcc/fortran/f95-lang.c:189
#13 0x0000000100672724 in compile_file () at ../../p_work/gcc/toplev.c:543
#14 0x00000001006744a9 in toplev_main (argc=2, argv=0x7fff5fbfd700) at ../../p_work/gcc/toplev.c:1876
#15 0x000000010000a5e4 in start (pc=<value optimized out>, bases=0x0) at ../../../p_work/libgcc/config/unwind-dw2-fde-darwin.c:272
In case it matters, I use GMP version 5.1.1, MPFR version 3.1.2, MPC version 1.0.1.
Thanks for the patch.
Dominique
More information about the Fortran
mailing list