This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB 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]

Re: C++ testsuite changes


Okay, this fixes the ERROR/UNRESOLVED problem on my system
when I use the sourceware version of 'expect'.  It replaces one level of
"(void|)" alternative with more alternatives at a higher level.

Mark, can you try this?

2004-01-01  Michael Chastain  <mec.gnu@mindspring.com>

	* gdb.cp/virtfunc.exp: Modify some patterns to avoid a
	mysterious bug with sourceware version of expect.

Index: virtfunc.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.cp/virtfunc.exp,v
retrieving revision 1.3
diff -c -3 -p -r1.3 virtfunc.exp
*** virtfunc.exp	1 Jan 2004 02:30:59 -0000	1.3
--- virtfunc.exp	1 Jan 2004 22:34:18 -0000
***************
*** 1,4 ****
! # Copyright 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003
  # Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
--- 1,4 ----
! # Copyright 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004
  # Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
*************** proc test_ptype_of_classes {} {
*** 330,343 ****
      }
  
      # class D
  
      set re_class	"class D : public AD, public virtual V \{(${ws}private:|)"
      set re_vbptr	"V \\*(_vb.1V|_vb.V);"
      set re_fields	"int d;"
!     set re_methods	"static void s\\((void|)\\);${ws}virtual int vg\\((void|)\\);${ws}virtual int vd\\((void|)\\);${ws}int fd\\((void|)\\);"
      set re_synth_gcc_2	"D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);"
      set re_synth_gcc_3	"D & operator=\\(D const ?&\\);${ws}D\\(D const ?&\\);${ws}D\\(\\);"
!     set re_all_methods	"($re_methods|$re_synth_gcc_2${ws}$re_methods|$re_synth_gcc_3${ws}$re_methods|$re_methods${ws}$re_synth_gcc_3)"
  
      gdb_test_multiple "ptype D" "ptype D" {
  	-re "type = ${re_class}${ws}(${re_vbptr}${ws}|)public:${ws}${re_fields}${ws}${re_all_methods}$nl\}$nl$gdb_prompt $" {
--- 330,351 ----
      }
  
      # class D
+     #
+     # I wrote this differently from the others to avoid a problem with
+     # the sourceware version of expect, which dates from 1998.
+     # The bug manifests as ERROR/UNRESOLVED results after an "eof"
+     # in gdb_test_multiple.
+     #
+     # -- chastain 2004-01-01
  
      set re_class	"class D : public AD, public virtual V \{(${ws}private:|)"
      set re_vbptr	"V \\*(_vb.1V|_vb.V);"
      set re_fields	"int d;"
!     set re_methods_2	"static void s\\(void\\);${ws}virtual int vg\\(void\\);${ws}virtual int vd\\(void\\);${ws}int fd\\(void\\);"
!     set re_methods_3	"static void s\\(\\);${ws}virtual int vg\\(\\);${ws}virtual int vd\\(\\);${ws}int fd\\(\\);"
      set re_synth_gcc_2	"D & operator=\\(D const ?&\\);${ws}D\\(int, D const ?&\\);${ws}D\\(int\\);"
      set re_synth_gcc_3	"D & operator=\\(D const ?&\\);${ws}D\\(D const ?&\\);${ws}D\\(\\);"
!     set re_all_methods	"($re_methods_2|$re_methods_3|$re_synth_gcc_2${ws}$re_methods_2|$re_synth_gcc_3${ws}$re_methods_3|$re_methods${ws}$re_synth_gcc_3)"
  
      gdb_test_multiple "ptype D" "ptype D" {
  	-re "type = ${re_class}${ws}(${re_vbptr}${ws}|)public:${ws}${re_fields}${ws}${re_all_methods}$nl\}$nl$gdb_prompt $" {


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