aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuinevere Larsen <blarsen@redhat.com>2024-07-23 14:36:20 -0300
committerGuinevere Larsen <blarsen@redhat.com>2024-09-17 17:18:47 -0300
commit4d91b7105653d39ef9c8507dd25ba426af4879e4 (patch)
treeb8602fe34ccfa7ca315b41247b3c0592bf08228b
parentbd26cd1810ce4296b228cd31d137a0b54e40c189 (diff)
downloadbinutils-4d91b7105653d39ef9c8507dd25ba426af4879e4.zip
binutils-4d91b7105653d39ef9c8507dd25ba426af4879e4.tar.gz
binutils-4d91b7105653d39ef9c8507dd25ba426af4879e4.tar.bz2
gdb/testsuite: fix gdb.mi/mi-var-cp.exp with clang
The inline tests in gdb.mi/mi-var-cp.cc were failing when using clang to run the test. This happened because inline tests want to step past the C statements and then run the TCL tests, but in mi-var-cp.cc the statement to be stepped past is "return s2.i;". Since clang links the epilogue information to the return statement, not the closing brace, single-stepping past return had us exiting the function - which made the expressions invalid. This commit fixes this by making the function have 2 C statements, and the return one be after all inline tests, so we know GDB won't leave the function before running the create_varobj tests. Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cp.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.mi/mi-var-cp.cc b/gdb/testsuite/gdb.mi/mi-var-cp.cc
index e8dd325..c40bdcf 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cp.cc
+++ b/gdb/testsuite/gdb.mi/mi-var-cp.cc
@@ -42,7 +42,7 @@ struct S2 : S {};
int base_in_reference_test (S2& s2)
{
/*: BEGIN: base_in_reference :*/
- return s2.i;
+ int x = s2.i + s2.j;
/*:
mi_create_varobj "S2" "s2" "create varobj for s2"
mi_list_varobj_children "S2" {
@@ -62,6 +62,7 @@ int base_in_reference_test (S2& s2)
:*/
/*: END: base_in_reference :*/
+ return x;
}
void base_in_reference_test_main ()