-# Copyright 2003-2014 Free Software Foundation, Inc.
+# Copyright 2003-2019 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
return -1
}
-if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
return -1
}
-# Start with "set print object off".
+# Start with "set print object off" and "set print symbol off".
gdb_test_no_output "set print object off"
+gdb_test_no_output "set print symbol off"
if ![runto_main] then {
perror "couldn't run to main"
"= {.*a1 = 200.*b1 = 201.*b2 = 202}" \
"print * (B *) abp at marker return 0"
+# Print the "D" object.
+
+gdb_test "print delta" \
+ "= {.*d1 = 400}" \
+ "print delta with \"print object\" off"
+
# Printing the value of an object containing no data fields:
gdb_test "p e" "= \{<No data fields>\}" "print object with no data fields"
-# Printing NULL pointers with "set print object on"
+# Printing NULL pointers with "set print object on".
gdb_test_no_output "set print object on"
gdb_test "p acp" "= \\(C \\*\\) ${hex}"
gdb_test "p acp->c1" "\\(A \\*\\) 0x0"
gdb_test "p acp->c2" "\\(A \\*\\) ${hex}f"
+# Print the "D" object with "set print object on".
+# There's no difference in output, but this exercises vtable lookup
+# with a typedef'd baseclass.
+
+gdb_test "print delta" \
+ "= {.*d1 = 400}" \
+ "print delta with \"print object\" on"
+
# Regression test for PR c++/15401.
# Check that the type printed is a reference.
gdb_test "p aref" " = \\(A \\&\\) .*"