http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51520
Bug #: 51520 Summary: ICE in gfortran 4.6.2, x86_64 Classification: Unclassified Product: gcc Version: 4.6.2 Status: UNCONFIRMED Severity: major Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: adr...@llnl.gov I'm getting an ICE in gfortran 4.6.2 . The machine is running Ubuntu 10.04, 64 bit on an Intel Xeon. $ gfortran -I. -O0 -c -o test.o test.f03 test.f03: In function ‘evalresa’: test.f03:40:0: 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. below is the nonsensical delta-reduced test program: test.f03 ======================================================= module sidl use, intrinsic :: iso_c_binding enum, bind(c) enumerator :: sidl_row_major_order = 2 end enum interface end interface contains logical function sidl_opaque_is_null_p (opaq) end function sidl_opaque_is_null_p end module sidl module sidl_array_type use sidl type sidl__array type(c_ptr) :: d_array = c_null_ptr end type sidl__array end module sidl_array_type module sidl_array_array_F03 use sidl_array_type interface is_null module procedure is_null_p end interface contains logical function is_null_p(array) type(sidl__array), intent(in) :: array end function is_null_p end module sidl_array_array_F03 module vect_Utils_F03 use sidl_array_array_F03 type vect_Utils_t end type vect_Utils_t interface is_null module procedure is_null_s end interface contains logical function is_null_s(ext) class(vect_Utils_t), intent(in) :: ext end function is_null_s end module vect_Utils_F03 subroutine evalResA(tracker, partNum, res, expected, tol, okay) use vect_Utils_F03 type (sidl__array) :: res, expected if (.not. is_null(res)) then endif end subroutine evalResA subroutine runProduct(tracker, partNum, a, u, tol, badLvl, res, okay, expectExc, desc) if (expectExc .eq. NoneExp) then call evalResA(tracker, partNum, x, res, tol, okay) endif end subroutine runProduct program vectortest call runProduct(tracker, partNum, ZERO, n, TOL, NoVio, n, .true., NoneExp,& 'passing vuProduct() a null array - no precondition vio ') end program vectortest ========================================================= valgrind output: ==18442== Invalid read of size 1 ==18442== at 0x5F49EE: mpz_get_double_int (double-int.c:1145) ==18442== by 0x550521: gfc_conv_mpz_to_tree (trans-const.c:204) ==18442== by 0x550D2F: gfc_conv_constant (trans-const.c:396) ==18442== by 0x5650FB: gfc_conv_initializer (trans-expr.c:4155) ==18442== by 0x55D80B: gfc_conv_structure (trans-expr.c:4666) ==18442== by 0x5651EB: gfc_conv_initializer (trans-expr.c:4197) ==18442== by 0x554620: gfc_get_symbol_decl (trans-decl.c:1379) ==18442== by 0x554C2F: generate_local_decl (trans-decl.c:4161) ==18442== by 0x52BD26: traverse_ns (symbol.c:3333) ==18442== by 0x52BD15: traverse_ns (symbol.c:3330) ==18442== by 0x52BD15: traverse_ns (symbol.c:3330) ==18442== by 0x52BD15: traverse_ns (symbol.c:3330) ==18442== Address 0x2 is not stack'd, malloc'd or (recently) free'd ==18442== test.f03: In function ‘evalresa’: test.f03:40:0: 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. ==18442== ==18442== HEAP SUMMARY: ==18442== in use at exit: 868,466 bytes in 3,301 blocks ==18442== total heap usage: 8,088 allocs, 4,787 frees, 1,634,007 bytes allocated ==18442== ==18442== LEAK SUMMARY: ==18442== definitely lost: 12,428 bytes in 74 blocks ==18442== indirectly lost: 3,496 bytes in 5 blocks ==18442== possibly lost: 352 bytes in 18 blocks ==18442== still reachable: 852,190 bytes in 3,204 blocks ==18442== suppressed: 0 bytes in 0 blocks ==18442== Rerun with --leak-check=full to see details of leaked memory ==18442== ==18442== For counts of detected and suppressed errors, rerun with: -v ==18442== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4) ==18439== ==18439== HEAP SUMMARY: ==18439== in use at exit: 32,293 bytes in 86 blocks ==18439== total heap usage: 502 allocs, 416 frees, 61,072 bytes allocated ==18439== ==18439== LEAK SUMMARY: ==18439== definitely lost: 5,444 bytes in 29 blocks ==18439== indirectly lost: 45 bytes in 3 blocks ==18439== possibly lost: 29 bytes in 2 blocks ==18439== still reachable: 26,775 bytes in 52 blocks ==18439== suppressed: 0 bytes in 0 blocks ==18439== Rerun with --leak-check=full to see details of leaked memory ==18439== ==18439== For counts of detected and suppressed errors, rerun with: -v ==18439== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)