[gnu.gdb.bug] gdb 3.3 crash + fix

tom@tnosoes.UUCP (Tom Vijlbrief) (11/14/89)

gdb crashes on C++ classes which contain an enum.

the enum type is not found by lookup_symbol(), so
sym_class is set to '0';

The following diff works:
*** symtab.c.org	Tue Nov 14 16:30:54 1989
--- symtab.c.new	Tue Nov 14 16:35:04 1989
***************
*** 1570,1576 ****
  		      while (*class_name++ != ' ');
  
  		      sym_class = lookup_symbol (class_name, 0, STRUCT_NAMESPACE, 0);
! 		      for (method_counter = TYPE_NFN_FIELDS (SYMBOL_TYPE (sym_class)) - 1;
  			   method_counter >= 0;
  			   --method_counter)
  			{
--- 1570,1578 ----
  		      while (*class_name++ != ' ');
  
  		      sym_class = lookup_symbol (class_name, 0, STRUCT_NAMESPACE, 0);
! /* tom@tnosoes.uucp */
! 		      if (sym_class)
! 		        for (method_counter = TYPE_NFN_FIELDS (SYMBOL_TYPE (sym_class)) - 1;
  			   method_counter >= 0;
  			   --method_counter)
  			{



===============================================================================
Tom Vijlbrief
TNO Institute for Perception
P.O. Box 23				Phone: +31 34 63 562 11
3769 ZG  Soesterberg			E-mail: tnosoes!tom@mcvax.cwi.nl
The Netherlands				    or:	uunet!mcvax!tnosoes!tom
===============================================================================