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]

Re: Found gcc bug while trying to correct another one


>> I got a segmentation Fault during the make step of gcc
>> (Signal 11) in 
>> /home/kahlert/LOCAL/obj/gcc/xgcc 
>>   -B/home/kahlert/LOCAL/obj/gcc/  -DIN_GCC   -DUSE_GNULIBC_1 
>>   -g -O2 -I./include  -I. -I/home/kahlert/LOCAL/egcs-19980531/gcc 
>>   -I/home/kahlert/LOCAL/egcs-19980531/gcc/config \ 
>>   -c /home/kahlert/LOCAL/egcs-19980531/gcc/objc/hash.c -o objc/hash.o
>> with the final output
>> 136451592 : 1
>> 140 : xgcc: Internal compiler error: program cc1 got fatal signal 11
>> 
>> So somebody seems to overwrite the next-field in the biv at 
>> address 136451592 with 140. 
>> This looks like a further gcc bug to me, 
>> which hasn't anything to do with my bug.
> Don't know about this one.  Of course you haven't told us anythign
> about your target system, so it's hard to debug what might be
> happening with this problem.
> 
> jeff

Sorry, here is more info (and a clean egcs):
I have a native i686-pc-linux-gnulibc1 egcs-2.91.34.

I put the following 5 lines in front of
'loop_iv_list = 0;'
(around line 3450 of gcc/loop.c):

  for(bl=loop_iv_list;bl;bl=bl->next)
     {
      printf("(%d)->next=%d\n",(int)bl,(int)bl->next);
      fflush(stdout);
     }

after typing 'make' i get:

/home/kahlert/LOCAL/obj/gcc/xgcc -B/home/kahlert/LOCAL/obj/gcc/  
   -DIN_GCC   -DUSE_GNULIBC_1 -g -O2 -I./include  -I. 
   -I/home/kahlert/LOCAL/egcs-19980531/gcc 
   -I/home/kahlert/LOCAL/egcs-19980531/gcc/config \
   -c /home/kahlert/LOCAL/egcs-19980531/gcc/objc/sarray.c 
   -o objc/sarray.o
(136502436)->next=0
(136503196)->next=0
(136504472)->next=136504424
(136504424)->next=0
(136504632)->next=136504704
(136504704)->next=34  ( <--- that's my problem )
xgcc: Internal compiler error: program cc1 got fatal signal 11
make[1]: *** [objc/sarray.o] Error 1
make[1]: Leaving directory `/sw/local_l/kahlert/obj/gcc'
make: *** [all-gcc] Error 2

I think, the '34' comes from a memory corruption inside gcc.
I wanted to free the linked list, but freeing memory at the 
address 34 is not a good idea...

I didn't do any further changes to egcs 
besides the one mentioned above.
Thanks a lot,
Martin.
-- 

What is the difference between Jurassic Park and Microsoft?
One is an over-rated high tech theme park based on prehistoric 
information and populated mostly by dinosaurs, 
the other is a Steven Spielberg movie.


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