This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

c++/7931: [Regression] The compiler ices on some legal code


>Number:         7931
>Category:       c++
>Synopsis:       [Regression] The compiler ices on some legal code
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Sep 16 10:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Theo Papadopoulo
>Release:        cvs gcc version 3.3 20020910 (but exists for more than 3 weeks).
>Organization:
>Environment:
i686-pc-linux-gnu
>Description:
The current CVS sources (but this is true for at least 3 weeks) cannot compile the following small piece of code.
This is a regression from 3.2.

hawai->/usr/local/gcc-3.2/bin/g++ -c toto.C
hawai->g++ toto.C
g++: Internal error: Segmentation fault (program cc1plus)
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
hawai->g++ -v
Reading specs from /proj/odyssee/home/gnu/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.3/specs
Configured with: ../../Cvs/gcc/gcc-mainline/configure --with-gnu-as --with-gnu-ld --with-as=/proj/odyssee/home/gnu/binutils/bin/as --with-ld=/proj/odyssee/home/gnu/binutils/bin/ld --prefix=/proj/odyssee/home/gnu/gcc --enable-runpath
Thread model: posix
gcc version 3.3 20020910 (experimental)
hawai->/proj/odyssee/home/gnu/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1plus toto.C
 R::R() R::R() R::R() H::H() H::H() H::H() double& H::f() double H::f() constSegmentation fault

>From gdb, it looks like the compiler is entering in an infinite loop over an error_mark_node:

This GDB was configured as "i686-pc-linux-gnu"...
(gdb) run toto.C
Starting program: /0/proj/odyssee/home/gnu/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1plus toto.C
 R::R() R::R() R::R() H::H() H::H() H::H() double& H::f() double H::f() const
Program received signal SIGSEGV, Segmentation fault.
0x0808f5c5 in for_each_template_parm_r (tp=0x4014bd80, walk_subtrees=0xbf800028, d=0xbfffe950)
    at ../../../Cvs/gcc/gcc-mainline/gcc/cp/pt.c:4340
4340    {
(gdb) bt
#0  0x0808f5c5 in for_each_template_parm_r (tp=0x4014bd80, walk_subtrees=0xbf800028, d=0xbfffe950)
    at ../../../Cvs/gcc/gcc-mainline/gcc/cp/pt.c:4340
#1  0x0831f114 in walk_tree (tp=0x4014bd94, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1434
#2  0x0831f26f in walk_tree (tp=0x401511a0, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#3  0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#4  0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#5  0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#6  0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#7  0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#8  0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#9  0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#10 0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#11 0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
#12 0x0831f26f in walk_tree (tp=0x4014bd90, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)


The bottom of the stack is:

#174654 0x400319cb in __libc_start_main (main=0x814a1a0 <main>, argc=2, argv=0xbffff6c4, init=0x80490cc <_init>, 
    fini=0x83bc490 <_fini>, rtld_fini=0x4000ae60 <_dl_fini>, stack_end=0xbffff6bc) at ../sysdeps/generic/libc-start.c:92
92      ../sysdeps/generic/libc-start.c: No such file or directory.
        in ../sysdeps/generic/libc-start.c
(gdb) down
#174653 0x0814a1bb in main (argc=-1073747632, argv=0xbfffe950) at ../../../Cvs/gcc/gcc-mainline/gcc/main.c:35
35        return toplev_main (argc, argv);
(gdb) 
#174652 0x0830dc5d in toplev_main (argc=-1073747632, argv=0xbffff600) at ../../../Cvs/gcc/gcc-mainline/gcc/toplev.c:5365
5365        do_compile ();
(gdb) 
#174651 0x0830dbb5 in do_compile () at ../../../Cvs/gcc/gcc-mainline/gcc/toplev.c:5335
5335        compile_file ();
(gdb) 
#174650 0x08307fed in compile_file () at ../../../Cvs/gcc/gcc-mainline/gcc/toplev.c:2130
2130      (*lang_hooks.parse_file) (set_yydebug);
(gdb) 
#174649 0x08140da9 in c_common_parse_file (set_yydebug=-1073747632) at ../../../Cvs/gcc/gcc-mainline/gcc/c-lex.c:159
159       yyparse ();
(gdb) 
#174648 0x080da944 in yyparse () at parse.y:1109
1109    parse.y: No such file or directory.
        in parse.y
(gdb) 
#174647 0x08115e17 in finish_template_type (name=0xbfffe950, args=0xbfffe950, entering_scope=-1073747632)
    at ../../../Cvs/gcc/gcc-mainline/gcc/cp/semantics.c:2036
2036      decl = lookup_template_class (name, args,
(gdb) 
#174646 0x0808e012 in lookup_template_class (d1=0x40139ac8, arglist=0x40151e9c, in_decl=0x0, context=0x0, entering_scope=0, 
    complain=tf_error) at ../../../Cvs/gcc/gcc-mainline/gcc/cp/pt.c:4096
4096              = coerce_template_parms (INNERMOST_TEMPLATE_PARMS (parmlist),
(gdb) 
#174645 0x0808be0f in coerce_template_parms (parms=0x4011d880, args=0x40139ab4, in_decl=0x40148a80, complain=tf_error, 
    require_all_arguments=1) at ../../../Cvs/gcc/gcc-mainline/gcc/cp/pt.c:3599
3599            arg = convert_template_argument (TREE_VALUE (parm), 
(gdb) 
#174644 0x0808b7c0 in convert_template_argument (parm=0x40148850, arg=0x40151eec, args=0x4015b0c0, complain=tf_error, i=1, 
    in_decl=0x40148a80) at ../../../Cvs/gcc/gcc-mainline/gcc/cp/pt.c:3482
3482          if (!uses_template_parms (arg) && !uses_template_parms (t))
(gdb) 
#174643 0x0808fe21 in uses_template_parms (t=0xbfffe950) at ../../../Cvs/gcc/gcc-mainline/gcc/cp/pt.c:4514
4514      return for_each_template_parm (t, 0, 0);
(gdb) 
#174642 0x0808fdf4 in for_each_template_parm (t=0x40151eec, fn=0xbfffe950, data=0xbfffe950)
    at ../../../Cvs/gcc/gcc-mainline/gcc/cp/pt.c:4504
4504      return walk_tree (&t, 
(gdb) 
#174641 0x0831f72e in walk_tree (tp=0xbfffe960, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1486
1486            WALK_SUBTREE (TREE_OPERAND (*tp, i));
(gdb) 
#174640 0x0831f72e in walk_tree (tp=0x40151efc, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1486
1486            WALK_SUBTREE (TREE_OPERAND (*tp, i));
(gdb) 
#174639 0x0831f72e in walk_tree (tp=0x4015b0b4, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1486
1486            WALK_SUBTREE (TREE_OPERAND (*tp, i));
(gdb) 
#174638 0x0831f26f in walk_tree (tp=0x4015b090, func=0x808f5c0 <for_each_template_parm_r>, data=0xbfffe950, htab_=0x0)
    at ../../../Cvs/gcc/gcc-mainline/gcc/tree-inline.c:1567
1567              WALK_SUBTREE (TREE_VEC_ELT (*tp, len));
>How-To-Repeat:
Just compile the previous file.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="MemberRef.C"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MemberRef.C"

Ly8gQnVpbGQgZG9uJ3QgbGluazoKLy8gT3JpZ2luOiBUaGVvIFBhcGFkb3BvdWxvIDxUaGVvZG9y
ZS5QYXBhZG9wb3Vsb0Bzb3BoaWEuaW5yaWEuZnI+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCxkb3Vi
bGUgKFQ6OipmdW4pKCkgY29uc3Q+CnN0cnVjdCBJIHsKfTsKCnN0cnVjdCBSIHsKICAgIFIoKSB7
IH0KfTsKCmNsYXNzIEg6IHB1YmxpYyBSIHsKcHVibGljOgogICAgSCgpOiBSKCkgeyB9CiAgICBk
b3VibGUmIGYoKSB7IHJldHVybiBhOyB9CiAgICBkb3VibGUgIGYoKSBjb25zdCB7IHJldHVybiAx
LjA7IH0KICAgIGRvdWJsZSBhOwp9OwoKc3RydWN0IEEgewogICAgdHlwZWRlZiBJPEgsJkg6OmY+
IEY7CiAgICBBKCkgeyB9Cn07Cg==


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