This is the mail archive of the gdb-cvs@sourceware.org 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]

[binutils-gdb] Fix gdb.linespec/cpls-ops.exp on 32-bit


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e3919f3e898aa5ab9a98dcaf9e242a9ebacc0757

commit e3919f3e898aa5ab9a98dcaf9e242a9ebacc0757
Author: Pedro Alves <palves@redhat.com>
Date:   Thu Nov 30 16:32:10 2017 +0000

    Fix gdb.linespec/cpls-ops.exp on 32-bit
    
    gdb.linespec/cpls-ops.exp is currently failing on x86-64 -m32 and other
    32-bit ports:
    
     b test_op_new::operator new(unsigned int) FAIL: gdb.linespec/cpls-ops.exp: operator-new: tab complete "b test_op_new::operator" (timeout)
     ^CQuit
     (gdb) complete b test_op_new::operator
     b test_op_new::operator new(unsigned int)
     (gdb) FAIL: gdb.linespec/cpls-ops.exp: operator-new: cmd complete "b test_op_new::operator"
    
    The problem is simply that the testcase incorrectly assumes that
    size_t is "unsigned long".
    
    Fix this by extracting the right type with the "ptype" command.
    
    gdb/testsuite/ChangeLog:
    2017-11-30  Pedro Alves  <palves@redhat.com>
    
    	* gdb.linespec/cpls-ops.exp
    	(check_explicit_skips_function_argument): Extract the underlying
    	type of size_t instead of hardcoding it.

Diff:
---
 gdb/testsuite/ChangeLog                 |  6 ++++++
 gdb/testsuite/gdb.linespec/cpls-ops.exp | 13 +++++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d19eca2..5b8151d 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2017-11-30  Pedro Alves  <palves@redhat.com>
+
+	* gdb.linespec/cpls-ops.exp
+	(check_explicit_skips_function_argument): Extract the underlying
+	type of size_t instead of hardcoding it.
+
 2017-11-29  Pedro Alves  <palves@redhat.com>
 
 	PR c++/19436
diff --git a/gdb/testsuite/gdb.linespec/cpls-ops.exp b/gdb/testsuite/gdb.linespec/cpls-ops.exp
index c1b6c33..d58a6de 100644
--- a/gdb/testsuite/gdb.linespec/cpls-ops.exp
+++ b/gdb/testsuite/gdb.linespec/cpls-ops.exp
@@ -43,8 +43,17 @@ proc check_explicit_skips_function_argument {function} {
 # testing operator new.
 
 proc test_operator_new {class_name brackets} {
-    # The type size_t is typedef-ed to.
-    set size_t "unsigned long"
+    global gdb_prompt
+
+    # Extract the type size_t is typedef-ed to.
+    set size_t ""
+    set test "get size_t underlying type"
+    gdb_test_multiple "ptype size_t" $test {
+	-re " = (\[ a-z\]*)\r\n$gdb_prompt $" {
+	    set size_t $expect_out(1,string)
+	    pass "$test"
+	}
+    }
 
     # Complete all prefixes between "operato" and the full prototype.
     foreach cmd_prefix {"b" "b -function"} {


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