This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/55827] ICE with multiple fortran modules and character lenght determined by an interfaced pure function
- From: "sgk at troutmask dot apl.washington.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 29 Dec 2012 00:25:33 +0000
- Subject: [Bug fortran/55827] ICE with multiple fortran modules and character lenght determined by an interfaced pure function
- Auto-submitted: auto-generated
- References: <bug-55827-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55827
--- Comment #4 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2012-12-29 00:25:33 UTC ---
On Fri, Dec 28, 2012 at 10:41:22PM +0000, mikael at gcc dot gnu.org wrote:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55827
>
> Mikael Morin <mikael at gcc dot gnu.org> changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> CC| |mikael at gcc dot gnu.org
>
> --- Comment #3 from Mikael Morin <mikael at gcc dot gnu.org> 2012-12-28 22:41:22 UTC ---
> (In reply to comment #2)
> > Here's a possible patch against trunk.
>
> Hum, it doesn't look right to allow unnamed (symtree == NULL) functions.
> Here is another possible patch. Basically untested.
>
Hi Mikael,
I tested your patch. While it fixes the issue in this PR,
it causes a regression with used_dummy_types_7.f90. I
haven't tried to traced down the problem other than a quick
gdb session.
Program received signal SIGSEGV, Segmentation fault.
0x0000000000532112 in gfc_insert_bbt (root=0x0, new_node=0x202806cd0,
compare=0x5c2a70 <compare_symtree(void*, void*)>)
at ../../gcc4x/gcc/fortran/bbt.c:138
138 *r = insert (n, *r, compare);
(gdb) bt
#0 0x0000000000532112 in gfc_insert_bbt (root=0x0, new_node=0x202806cd0,
compare=0x5c2a70 <compare_symtree(void*, void*)>)
at ../../gcc4x/gcc/fortran/bbt.c:138
#1 0x00000000005c52fa in gfc_new_symtree (root=root@entry=0x0,
name=name@entry=0x7fffffffcd80 "@5")
at ../../gcc4x/gcc/fortran/symbol.c:2403
#2 0x00000000005c53e1 in gfc_get_unique_symtree (ns=0x0)
at ../../gcc4x/gcc/fortran/symbol.c:2455
#3 0x0000000000585de7 in read_cleanup (p=0x202898700)
at ../../gcc4x/gcc/fortran/module.c:4461
#4 0x0000000000585d8e in read_cleanup (p=0x202898680)
at ../../gcc4x/gcc/fortran/module.c:4450
#5 0x0000000000585d85 in read_cleanup (p=0x202898780)
at ../../gcc4x/gcc/fortran/module.c:4449
#6 0x000000000058b894 in read_module ()
at ../../gcc4x/gcc/fortran/module.c:4821
#7 0x000000000058bd15 in gfc_use_module (module=module@entry=0x202806970)
at ../../gcc4x/gcc/fortran/module.c:6249
#8 0x000000000058ce19 in gfc_use_modules ()
at ../../gcc4x/gcc/fortran/module.c:6372
#9 0x0000000000591bb8 in use_modules () at ../../gcc4x/gcc/fortran/parse.c:88
#10 0x0000000000592b95 in decode_statement ()
at ../../gcc4x/gcc/fortran/parse.c:302
#11 0x0000000000593e95 in next_free () at ../../gcc4x/gcc/fortran/parse.c:779
#12 next_statement () at ../../gcc4x/gcc/fortran/parse.c:972
#13 0x0000000000594d4e in parse_spec (st=<optimized out>, st@entry=ST_NONE)
at ../../gcc4x/gcc/fortran/parse.c:2740
#14 0x00000000005952ab in parse_interface ()
at ../../gcc4x/gcc/fortran/parse.c:2461
#15 parse_spec (st=ST_INTERFACE, st@entry=ST_NONE)
at ../../gcc4x/gcc/fortran/parse.c:2698
#16 0x0000000000597b6d in parse_module ()
at ../../gcc4x/gcc/fortran/parse.c:4307
#17 gfc_parse_file () at ../../gcc4x/gcc/fortran/parse.c:4584
#18 0x00000000005d2e86 in gfc_be_parse_file ()
at ../../gcc4x/gcc/fortran/f95-lang.c:191
#19 0x000000000097db06 in compile_file () at ../../gcc4x/gcc/toplev.c:545
#20 0x000000000097f8ad in do_compile () at ../../gcc4x/gcc/toplev.c:1878
#21 toplev_main (argc=2, argv=0x7fffffffd4f0) at ../../gcc4x/gcc/toplev.c:1954
#22 0x000000000052b60f in _start ()