This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ICE seg fault



At least gdb and valgrind agree on the problem. The problem must be
somehow related to expressions which are regarded as functions
(EXPR_FUNCTION), not necessarily statement functions, and seemingly the
e->symtree == NULL.

A backtrace (i.e. running in gdb and entering after the segfault "bt")
would help too.

You could also try to find out more about the expression. In gdb after
the segfault do:

p e->symtree
p e->where
p e->where->lb->file->filename
p e->where->lb->file->line



I could reduce the test case quite a lot:

------------------------------------------------



module AtmoIonoSphere

use AtmoIono
use EGOPS_Utilities, ONLY:  dirname


end module AtmoIonoSphere ------------------------------------------------

...but the behaviour now is not very consistent: When I try to explicitly state the function imported by the second "use" statement, the seg.fault vanishes... (and similar inconsistent behaviours) I post the gdb output for the stated test case, maybe you can read more out of it:



------------------------------------------------
(gdb) b check_specification_function
Breakpoint 1 at 0x8064560: file ../../gcc/gcc/fortran/expr.c, line 696.
(gdb) run
Starting program: /usr/local/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951 AtmoIonoSphere_red.f90 -quiet -dumpbase AtmoIonoSphere_red.f90 -mtune=generic -auxbase AtmoIonoSphere_red -J../include -fintrinsic-modules-path /usr/local/lib/gcc/i686-pc-linux-gnu/4.3.0/finclude -o /tmp/ccrhSA4h.s


Breakpoint 1, check_specification_function (e=0x891c450) at ../../gcc/gcc/fortran/expr.c:696
696 sym = e->symtree->n.sym;
(gdb) p e->symtree
$1 = (gfc_symtree *) 0x0
(gdb) p e->where
$2 = {nextc = 0x888df93 "", lb = 0x888df60}
(gdb) p e->where->lb->file->filename
$3 = 0x88951d0 "AtmoIonoSphere_red.f90"
(gdb) p e->where->lb->file->line
$4 = 11
(gdb) cont
Continuing.


Program received signal SIGSEGV, Segmentation fault.
0x08064563 in check_specification_function (e=<value optimized out>) at ../../gcc/gcc/fortran/expr.c:696
696 sym = e->symtree->n.sym;
(gdb) bt
#0 0x08064563 in check_specification_function (e=<value optimized out>) at ../../gcc/gcc/fortran/expr.c:696
#1 0x0806549d in gfc_is_constant_expr (e=0x891c450) at ../../gcc/gcc/fortran/expr.c:740
#2 0x080a2cca in resolve_symbol (sym=0x891c310) at ../../gcc/gcc/fortran/resolve.c:6717
#3 0x080ad13d in traverse_ns (st=0x8a40810, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2875
#4 0x080ad123 in traverse_ns (st=0x893f4e0, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2878
#5 0x080ad123 in traverse_ns (st=0x893fc60, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2878
#6 0x080ad123 in traverse_ns (st=0x89403e0, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2878
#7 0x080ad123 in traverse_ns (st=0x8940a20, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2878
#8 0x080ad123 in traverse_ns (st=0x8940f20, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2878
#9 0x080ad123 in traverse_ns (st=0x89484a0, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2878
#10 0x080ad123 in traverse_ns (st=0x8974f60, func=0x80a1c20 <resolve_symbol>) at ../../gcc/gcc/fortran/symbol.c:2878
#11 0x0809e186 in resolve_types (ns=0x88b0a10) at ../../gcc/gcc/fortran/resolve.c:8456
#12 0x080a1bfc in gfc_resolve (ns=0x88b0a10) at ../../gcc/gcc/fortran/resolve.c:8535
#13 0x08094040 in gfc_parse_file () at ../../gcc/gcc/fortran/parse.c:3288
#14 0x080b96cd in gfc_be_parse_file (set_yydebug=0) at ../../gcc/gcc/fortran/f95-lang.c:301
#15 0x0832dc18 in toplev_main (argc=13, argv=0xbfe17b44) at ../../gcc/gcc/toplev.c:1043
#16 0x0810069f in main (argc=145227602, argv=0x88c63a6) at ../../gcc/gcc/main.c:35
(gdb) p e->symtree
Cannot access memory at address 0x28
------------------------------------------------



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]