------- Comment #3 from tkoenig at gcc dot gnu dot org 2008-04-13 20:45 ------- Interesting. Running with valgrind produces an ICE:
$ valgrind ~/libexec/gcc/i686-pc-linux-gnu/4.4.0/f951 foo.f90 ==3891== Memcheck, a memory error detector. ==3891== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==3891== Using LibVEX rev 1804, a library for dynamic binary translation. ==3891== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==3891== Using valgrind-3.3.0-Debian, a dynamic binary instrumentation framework. ==3891== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==3891== For more details, rerun with: -v ==3891== MAIN__==3891== Invalid read of size 4 ==3891== at 0x80F3D8D: gfc_conv_expr_val (trans-expr.c:3611) ==3891== Address 0x4 is not stack'd, malloc'd or (recently) free'd foo.f90:4: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. ==3891== ==3891== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 15 from 1) ==3891== malloc/free: in use at exit: 249,564 bytes in 1,061 blocks. ==3891== malloc/free: 1,592 allocs, 531 frees, 289,234 bytes allocated. ==3891== For counts of detected errors, rerun with: -v ==3891== searching for pointers to 1,061 not-freed blocks. ==3891== checked 2,099,868 bytes. ==3891== ==3891== LEAK SUMMARY: ==3891== definitely lost: 108 bytes in 2 blocks. ==3891== possibly lost: 176 bytes in 14 blocks. ==3891== still reachable: 249,280 bytes in 1,045 blocks. ==3891== suppressed: 0 bytes in 0 blocks. ==3891== Rerun with --leak-check=full to see details of leaked memory. Running under gdb yields (gdb) r -fdefault-integer-8 -g f12_integrals.f Starting program: /home/ig25/libexec/gcc/i686-pc-linux-gnu/4.4.0/f951 -fdefault-integer-8 -g f12_integrals.f df_fit_f12 tranop_f12 f12_unidom f12_listmo f12_integrals_jinv f12_integrals_2idx f12_integrals_til f12_integrals_bar f12_integrals_srt {GC 5430k -> 2061k} f12_integrals_raw Program received signal SIGSEGV, Segmentation fault. 0x08234a2c in fold_binary (code=MINUS_EXPR, type=0xb7b404b0, op0=0xb7baf688, op1=0xb7bf6070) at ../../../gcc/trunk/gcc/fold-const.c:9920 9920 && !HONOR_SIGNED_ZEROS (TYPE_MODE (TREE_TYPE (arg0))) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35892