[RFC] fix testsuite/gdb.cp/printmethod

Christophe LYON christophe.lyon@st.com
Tue Dec 6 22:46:00 GMT 2005


Hi all,

As I explained in 
http://sources.redhat.com/ml/gdb/2005-11/msg00611.html, I think that the 
gdb.cp/printmethod test somewhat relies on G++ not generating code for 
the nonvirt() method.

I propose the following fix.

Christophe.


2005-12-06    Christophe Lyon <christophe.lyon@st.com>
	* gdb.cp/printmethod.cc (main): call virt() and nonvirt() to
	force code generation for these functions.
	* gdb.cp/printmethod.exp: expect &A::nonvirt() instead of error
	message.


Index: gdb.cp/printmethod.exp
===================================================================
--- gdb.cp/printmethod.exp    (revision 96)
+++ gdb.cp/printmethod.exp    (working copy)
@@ -63,7 +63,7 @@
  # The first of these is for PR gdb/653.

  gdb_test "print theA->virt" "\\$\[0-9\]* = &A::virt\\((void|)\\)" 
"print virtual method."
-gdb_test "print theA->nonvirt" "Cannot take address of a method" "print 
nonvirtual method."
+gdb_test "print theA->nonvirt" "\\$\[0-9\]* = &A::nonvirt\\((void|)\\)" 
"print nonvirtual method."

  gdb_exit
  return 0

Index: gdb.cp/printmethod.cc
===================================================================
--- gdb.cp/printmethod.cc     (revision 96)
+++ gdb.cp/printmethod.cc     (working copy)
@@ -29,6 +29,8 @@
  int main()
  {
    A *theA = new A;
+  theA->virt();
+  theA->nonvirt();

    return 0;                            // breakpoint: constructs-done
  }



More information about the Gdb-patches mailing list