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++/8511: (hopefully) reproducible cc1plus SIGSEGV.


>Number:         8511
>Category:       c++
>Synopsis:       (hopefully) reproducible cc1plus SIGSEGV.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Nov 09 04:36:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     wwieser@gmx.de
>Release:        3.2 20020731 (prerelease) ... 3.3 20021107 (experimental)
>Organization:
>Environment:
i686-pc-linux-gnu
>Description:
Compiling the attached code, I am able to reproducible 
SIGSEGV the GNU C++ compiler. 

I am sorry for not reducing code size very much but after spending more 
than an hour on stripping it down, gcc-3.2.1 crashed while 3.3 did not. 
Also, removing lines which I think have little to do with the problem 
also turns the crash into "just" an internal compiler error. 
(I know you will not like me for attaching a .tar.gz
file... but sorry, I see little alternative)

In order to give you more info, I also had a look at the crash using a 
debugger. 

Please contact me if you need additional info. I will be happy to 
help fixing this issue. 

--INFO--

GCC version: gcc (GCC) 3.2.1 20021107 (prerelease)
and:         gcc (GCC) 3.3 20021107 (experimental)
as well as 3.2 20020731 (prerelease), maybe others. 

First of all, I patched toplev.c to not call signal(SIGSEGV,crash_signal) 
but die of SIGSEGV instead. This makes it possible to find the crash 
with gdb. [BTW, to ease debugging, I suggest you do not _exit(1) on 
SIGSEGV/ILL/... and ICE but terminate the program by killing itself via 
SIGABRT. This way, it gets much easier to debug internal errors.]

The crash was encountered using both these calls (3.2.1 by default): 

g++ -v -I. -Wno-non-template-friend -Wno-unused \
	-ftemplate-depth-30 -c -o spline.o spline.cpp
g++ -V3.3 -v -I. -Wno-non-template-friend -Wno-unused \
	-ftemplate-depth-30 -c -o spline.o spline.cpp

>From the output above, the following calls to cc1plus were grabbed: 

/usr/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.2.1/cc1plus -v -I. \
 -iprefix /usr/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.2.1/ -D__GNUC__=3 \
 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1 -D__GXX_ABI_VERSION=102 -D__ELF__ \
 -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ \
 -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ \
 -D__STDC_HOSTED__=1 -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 \
 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ spline.cpp -D__GNUG__=3 \
 -D__DEPRECATED -D__EXCEPTIONS -quiet -dumpbase spline.cpp \
 -Wno-non-template-friend -Wno-unused -version -ftemplate-depth-30 \
 -o /tmp/ccXIR5cn.s

/usr/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1plus -quiet -v -I. \
 -iprefix /usr/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3/ -D__GNUC__=3 \
 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 -D_GNU_SOURCE spline.cpp \
 -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -quiet -dumpbase spline.cpp \
 -auxbase-strip spline.o -Wno-non-template-friend -Wno-unused -version \
 -ftemplate-depth-30 -o /tmp/ccZEfMxs.s

-------------------------------------------------------------------------------
> >> gdb revealed the following information for the gcc-3.2.1 crash: 

--BACKTRACE--

#0  0x0809752a in convert_arguments () at gcc/cp/typeck.c:3155
#1  0x080972ed in build_function_call_real () at gcc/cp/typeck.c:3019
#2  0x080973f5 in build_function_call () at gcc/cp/typeck.c:3069
#3  0x08096e7e in build_x_function_call () at gcc/cp/typeck.c:2807
#4  0x080a1b46 in build_member_call () at gcc/cp/init.c:1497
#5  0x08081a10 in build_expr_from_tree () at gcc/cp/decl2.c:3891
#6  0x0806e956 in tsubst_expr () at gcc/cp/pt.c:7325
#7  0x0806ea3d in tsubst_expr () at gcc/cp/pt.c:7358
#8  0x0806ee7f in tsubst_expr () at gcc/cp/pt.c:7505
#9  0x0806ee7f in tsubst_expr () at gcc/cp/pt.c:7505
#10 0x08071d05 in instantiate_decl () at gcc/cp/pt.c:10149
#11 0x08071e3b in instantiate_pending_templates () at gcc/cp/pt.c:10234
#12 0x08080ef7 in finish_file () at gcc/cp/decl2.c:3378
#13 0x080aa8a9 in finish_translation_unit () at gcc/cp/semantics.c:1595
#14 0x0808a941 in yyparse_1 () at parse.y:458
#15 0x080c1af5 in yyparse () at gcc/c-lex.c:164
#16 0x08209713 in compile_file () at gcc/toplev.c:2124
#17 0x0820db9d in do_compile () at gcc/toplev.c:5218
#18 0x0820dc02 in toplev_main () at gcc/toplev.c:5250
#19 0x080c31c3 in main () at gcc/main.c:35
#20 0x0018f7ee in __libc_start_main () from /lib/libc.so.6

--SIGSEGV location in convert_arguments()--

...

      /* build_c_cast puts on a NOP_EXPR to make the result not an lvalue.
         Strip such NOP_EXPRs, since VAL is used in non-lvalue context.  */
      if (TREE_CODE (val) == NOP_EXPR
          && TREE_TYPE (val) == TREE_TYPE (TREE_OPERAND (val, 0))
          && (type == 0 || TREE_CODE (type) != REFERENCE_TYPE))
        val = TREE_OPERAND (val, 0);
    
      if (type == 0 || TREE_CODE (type) != REFERENCE_TYPE)
        {
==>       if (TREE_CODE (TREE_TYPE (val)) == ARRAY_TYPE
              || TREE_CODE (TREE_TYPE (val)) == FUNCTION_TYPE
              || TREE_CODE (TREE_TYPE (val)) == METHOD_TYPE)
            val = default_conversion (val);
        }
    
      if (val == error_mark_node)
        return error_mark_node;
    
...

(Neither type nor val are NULL.)

--REGISTER DUMP--

eax            0x0	0
ecx            0x2	2
edx            0xc55c08	12934152
ebx            0xc55ba4	12934052
esp            0xb503c6f0	0xb503c6f0
ebp            0xb503c738	0xb503c738
esi            0x663474	6698100
edi            0x29c3f0	2737136
eip            0x809752a	0x809752a
eflags         0x10293	66195
cs             0x23	35
ss             0x2b	43
ds             0x2b	43
es             0x2b	43
fs             0x0	0
gs             0x0	0
...
orig_eax       0xffffffff	-1

-------------------------------------------------------------------------------
> >> gdb revealed the following information for the gcc-3.3 crash: 

--BACKTRACE--

#0  0x080c53ca in build_expr_from_tree (t=0xa5a5a5a5) at gcc/cp/decl2.c:3074
#1  0x080c6b85 in build_expr_from_tree (t=0xac912c) at gcc/cp/decl2.c:3357
#2  0x080c6ba0 in build_expr_from_tree (t=0xac9140) at gcc/cp/decl2.c:3360
#3  0x080c6ba0 in build_expr_from_tree (t=0xac9154) at gcc/cp/decl2.c:3360
#4  0x080c6ba0 in build_expr_from_tree (t=0xac91b8) at gcc/cp/decl2.c:3360
#5  0x080c6ba0 in build_expr_from_tree (t=0xac91cc) at gcc/cp/decl2.c:3360
#6  0x080c6671 in build_expr_from_tree (t=0x7ef720) at gcc/cp/decl2.c:3302
#7  0x0809885d in tsubst_expr (t=0x0, args=0xa8e280, \
	complain=3, in_decl=0xbc8310) at gcc/cp/pt.c:7373
#8  0x08098abd in tsubst_expr (t=0x0, args=0xa8e280, \
	complain=3, in_decl=0xbc8310) at gcc/cp/pt.c:7398
#9  0x080995b2 in tsubst_expr (t=0x0, args=0xa8e280, \
	complain=3, in_decl=0xbc8310) at gcc/cp/pt.c:7545
#10 0x080995b2 in tsubst_expr (t=0x0, args=0xa8e280, \
	complain=3, in_decl=0xbc8310) at gcc/cp/pt.c:7545
#11 0x080a0bdb in instantiate_decl (d=0xa5a5a5a5, \
	defer_ok=0) at gcc/cp/pt.c:10181
#12 0x080a0f34 in instantiate_pending_templates () at gcc/cp/pt.c:10266
#13 0x080c471a in finish_file () at gcc/cp/decl2.c:2775
#14 0x08110b33 in finish_translation_unit () at gcc/cp/semantics.c:1599
#15 0x080d77a5 in yyparse () at parse.y:488
#16 0x0813cf36 in c_common_parse_file () at gcc/c-lex.c:159
#17 0x082e9792 in compile_file () at gcc/toplev.c:2126
#18 0x082ee6a5 in do_compile () at gcc/toplev.c:5353
#19 0x082ee703 in toplev_main () at gcc/toplev.c:5383
#20 0x081457df in main () at gcc/main.c:35
#21 0x001847ee in __libc_start_main () from /lib/libc.so.6

--SIGSEGV location in convert_arguments()--

    tree
    build_expr_from_tree (t)
         tree t;
    {
      if (t == NULL_TREE || t == error_mark_node)
        return t;
      
==>   switch (TREE_CODE (t))
        {
        case IDENTIFIER_NODE:
          return do_identifier (t, 0, NULL_TREE);

Crash with t=0xa5a5a5a5 (uh, looks suspicious...)

One stack frame above (recursive call from build_expr_from_tree()): 

       case TREE_LIST:
         {
           tree purpose, value, chain;
    
           if (t == void_list_node)
             return t;
       
           purpose = TREE_PURPOSE (t);
           if (purpose)
             purpose = build_expr_from_tree (purpose);
           value = TREE_VALUE (t);
           if (value)
==>             value = build_expr_from_tree (value);
           chain = TREE_CHAIN (t);
           if (chain && chain != void_type_node)
             chain = build_expr_from_tree (chain);
           return tree_cons (purpose, value, chain);
         }

`value' is reported to be 0xa5a5a5a5 while t=0xac912c. 

--REGISTER DUMP--

eax            0xa5a5a5a5	-1515870811
ecx            0xac9140	11309376
edx            0xa5a5a5a5	-1515870811
ebx            0xa5a5a5a5	-1515870811
esp            0xb8142820	0xb8142820
ebp            0xb8142898	0xb8142898
esi            0x0	0
edi            0xa8e280	11068032
eip            0x80c6b85	0x80c6b85
eflags         0x10296	66198
cs             0x23	35
ss             0x2b	43
ds             0x2b	43
es             0x2b	43
fs             0x0	0
gs             0x0	0
orig_eax       0xffffffff	-1
>How-To-Repeat:
Compile attached code using calls mentioned above. 
>Fix:
I'd be very glad if I was able to offer one...
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-tgz; name="crashme.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="crashme.tar.gz"

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
fX1d1/8D5yUMkwCQAQA=


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