From: ler@lerami.lerctr.ORG (Larry Rosenman)
Subject: SIGSEGV on cc1obj gcc 2.3.3 compiling object.m
Organization: GNUs Not Usenet
Distribution: gnu
Date: Mon, 28 Dec 1992 00:26:06 GMT

I have consistently (since the objc directory was added), gotten a seg violation
compiling the objc runtime support on Amiga Unix (SVR4 C= version 2.1p2a).

this is from 2.3.3...
here is the stack backtrace from the core file:


Script started on Mon Dec 28 06:12:40 1992
$ gdb
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.7, Copyright 1992 Free Software Foundation, Inc.
(gdb) core core
Core was generated by `/home/ff/gcc/cc1obj /usr/tmp/cca005wZ.i -quiet -dumpbase object.m -g -O -lang-o'.
Program terminated with signal 11, Segmentation fault.
#0  0x80007a10 in ?? ()
(gdb) sym /home/ff/gcc/cc1obj
Reading symbols from /home/ff/gcc/cc1obj...done.
(gdb) where
#0  hash_lookup (hashlist=0x800fe9b4, sel_name=0x801062f8) at objc-actions.c:3035
Cannot access memory at address 0x800079ec.
(gdb) exec /home/ff/gcc/cc1obj
(gdb) where
#0  hash_lookup (hashlist=0x800fe9b4, sel_name=0x801062f8) at objc-actions.c:3035
#1  0x80007d22 in add_instance_method (class=0x8011d318, method=0x8011d6d8)
    at objc-actions.c:3234
#2  0x80003bd0 in yyparse () at ./objc-parse.c:2168
#3  0x8001fc02 in compile_file (name=0xc07ffab4 "/usr/tmp/cca005wZ.i") at toplev.c:1803
#4  0x80021b18 in main (argc=10, argv=0xc07ff9a8, envp=0xc07ff9d4) at toplev.c:3285
(gdb) where
#0  hash_lookup (hashlist=0x800fe9b4, sel_name=0x801062f8) at objc-actions.c:3035
#1  0x80007d22 in add_instance_method (class=0x8011d318, method=0x8011d6d8)
    at objc-actions.c:3234
#2  0x80003bd0 in yyparse () at ./objc-parse.c:2168
#3  0x8001fc02 in compile_file (name=0xc07ffab4 "/usr/tmp/cca005wZ.i") at toplev.c:1803
#4  0x80021b18 in main (argc=10, argv=0xc07ff9a8, envp=0xc07ff9d4) at toplev.c:3285
(gdb) print sel_name
$1 = (union tree_node *) 0x801062f8
(gdb) print *sel_name
$2 = {common = {chain = 0x0, type = 0x0, code = IDENTIFIER_NODE, 
    side_effects_flag = 0, constant_flag = 0, permanent_flag = 1, 
    addressable_flag = 1, volatile_flag = 0, readonly_flag = 0, unsigned_flag = 0, 
    asm_written_flag = 0, used_flag = 1, raises_flag = 0, static_flag = 0, 
    public_flag = 1, private_flag = 0, protected_flag = 0, lang_flag_0 = 0, 
    lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, 
    lang_flag_5 = 0, lang_flag_6 = 0}, int_cst = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, int_cst_low = 4, 
    int_cst_high = -2146409688}, real_cst = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, rtl = 0x4, 
    real_cst = -2.2789385996650638e-308}, string = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, rtl = 0x4, 
    length = -2146409688, pointer = 0x0}, complex = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, rtl = 0x4, 
    real = 0x80106328, imag = 0x0}, identifier = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, length = 4, 
    pointer = 0x80106328 "free"}, decl = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, 
    filename = 0x4<Address 0x4 out of bounds>, linenum = -2146409688, size = 0x0, 
    uid = 0, mode = VOIDmode, external_flag = 0, nonlocal_flag = 0, regdecl_flag = 0, 
    inline_flag = 0, bit_field_flag = 0, virtual_flag = 0, ignored_flag = 0, 
    abstract_flag = 0, in_system_header_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, 
    lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, 
    lang_flag_6 = 0, lang_flag_7 = 0, name = 0x80106330, context = 0x0, 
    arguments = 0x80106330, result = 0x0, initial = 0x66726565, abstract_origin = 0x0, 
    print_name = 0x0, assembler_name = 0x800f2680, rtl = 0x1d309000, 
    frame_size = -2146414400, saved_insns = {r = 0x42, i = 66}, vindex = 0x0, 
    lang_specific = 0x77}, type = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, values = 0x4, 
    size = 0x80106328, uid = 0, mode = VOIDmode, precision = 0 '\000', 
    no_force_blk_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, 
    lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, align = 0, 
    pointer_to = 0x80106330, reference_to = 0x0, parse_info = -2146409680, 
    symtab_address = 0, name = 0x66726565, minval = 0x0, maxval = 0x0, 
    next_variant = 0x800f2680, main_variant = 0x1d309000, binfo = 0x801050c0, 
    noncopied_parts = 0x42, context = 0x0, lang_specific = 0x77}, list = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, purpose = 0x4, 
    value = 0x80106328}, vec = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, length = 4, a = {
      0x80106328}}, exp = {common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, 
    complexity = 4, operands = {0x80106328}}, block = {
    common = {"\000\000\000\000\000\000\000\000\0010\220\000"}, 
    handler_block_flag = 0, abstract_flag = 0, vars = 0x80106328, type_tags = 0x0, 
    subblocks = 0x0, supercontext = 0x0, abstract_origin = 0x80106330, end_note = 0x0}}
(gdb) info all-registers
d0             0xffe023f5	-2087947
d1             0xffffffc9	-55
d2             0x801062f8	-2146409736
d3             0x800f5258	-2146479528
d4             0x21d	541
d5             0x198	408
d6             0xc07ff7b0	-1065355344
d7             0xc07ff794	-1065355372
a0             0x800fe9b4	-2146440780
a1             0x1	1
a2             0x0	0
a3             0x8011d318	-2146315496
a4             0x8011d6d8	-2146314536
a5             0xc07ff794	-1065355372
fp             0xc07ff3e8	0xc07ff3e8
sp             0xc07ff3e4	0xc07ff3e4
ps             0x0	0
pc             0x80007a10	0x80007a10
fp0            1	(raw 0xbfff00008000000000000000)
fp1            -1	(raw 0x3fff00008000000000000000)
fp2            -inf	(raw 0x7fff0000ffffffffffffffff)
fp3            -inf	(raw 0x7fff0000ffffffffffffffff)
fp4            -inf	(raw 0x7fff0000ffffffffffffffff)
fp5            -inf	(raw 0x7fff0000ffffffffffffffff)
fp6            -inf	(raw 0x7fff0000ffffffffffffffff)
fp7            -inf	(raw 0x7fff0000ffffffffffffffff)
fpcontrol      0x0	0
fpstatus       0x8000000	134217728
fpiaddr        0x0	0
(gdb) dir ..
Source directories searched: /home/ff/gcc/objc/..:$cdir:$cwd
(gdb) l 3035
3030	
3031	  target = hashlist[HASHFUNCTION (sel_name) % SIZEHASHTABLE];
3032	
3033	  while (target)
3034	    {
3035	      if (sel_name == METHOD_SEL_NAME (target->key))
3036		return target;
3037	
3038	      target = target->next;
3039	    }
(gdb) print target->key
$3 = (union tree_node *) Cannot access memory at address 0x9.
(gdb) print target
$4 = (struct hashedEntry *) 0x1
(gdb) quit
script done on Mon Dec 28 06:18:53 1992
-- 
Larry Rosenman                            Internet: ler@lerami.lerctr.org
ATT: +1 214-399-0210 (voice)  BIX: ler    UUCP: ..!utacfd.uta.edu!lerami!ler
US Mail: 900 Lake Isle Circle, Irving, TX 75060-7726


Newsgroups: gnu.gcc.bug