From 2d1c107c1b8835f4e85c35320d8595a4a6fcaebe Mon Sep 17 00:00:00 2001 From: Siva Chandra Date: Tue, 9 Sep 2014 06:46:14 -0700 Subject: [PATCH] Add new non-trial return value tests. gdb/testsuite/ChangeLog: * gdb.cp/non-trivial-retval.cc: Add new test cases. * gdb.cp/non-trivial-retval.exp: Add new tests. --- gdb/testsuite/ChangeLog | 5 +++ gdb/testsuite/gdb.cp/non-trivial-retval.cc | 46 +++++++++++++++++++++ gdb/testsuite/gdb.cp/non-trivial-retval.exp | 2 + 3 files changed, 53 insertions(+) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2602e7f2a09..c76146113f0 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-10-15 Siva Chandra Reddy + + * gdb.cp/non-trivial-retval.cc: Add new test cases. + * gdb.cp/non-trivial-retval.exp: Add new tests. + 2014-10-15 Siva Chandra Reddy PR c++/13403 diff --git a/gdb/testsuite/gdb.cp/non-trivial-retval.cc b/gdb/testsuite/gdb.cp/non-trivial-retval.cc index 4c7810b1bd9..8382f40d0a2 100644 --- a/gdb/testsuite/gdb.cp/non-trivial-retval.cc +++ b/gdb/testsuite/gdb.cp/non-trivial-retval.cc @@ -63,6 +63,52 @@ f2 (int i1, int i2) return b; } +class C +{ +public: + virtual int method (); + + int c; +}; + +int +C::method () +{ + return c; +} + +C +f3 (int i1, int i2) +{ + C c; + + c.c = i1 + i2; + + return c; +} + +class D +{ +public: + int d; +}; + +class E : public virtual D +{ +public: + int e; +}; + +E +f4 (int i1, int i2) +{ + E e; + + e.e = i1 + i2; + + return e; +} + int main (void) { diff --git a/gdb/testsuite/gdb.cp/non-trivial-retval.exp b/gdb/testsuite/gdb.cp/non-trivial-retval.exp index 976b99f8bfb..79349468547 100644 --- a/gdb/testsuite/gdb.cp/non-trivial-retval.exp +++ b/gdb/testsuite/gdb.cp/non-trivial-retval.exp @@ -32,3 +32,5 @@ gdb_continue_to_breakpoint "Break here" gdb_test "p f1 (i1, i2)" ".* = {a = 123}" "p f1 (i1, i2)" gdb_test "p f2 (i1, i2)" ".* = {b = 123}" "p f2 (i1, i2)" +gdb_test "p f3 (i1, i2)" ".* = {.* c = 123}" "p f3 (i1, i2)" +gdb_test "p f4 (i1, i2)" ".* = {.* e = 123}" "p f4 (i1, i2)" -- 2.30.2