diff options
author | Guinevere Larsen <blarsen@redhat.com> | 2024-07-23 14:36:20 -0300 |
---|---|---|
committer | Guinevere Larsen <blarsen@redhat.com> | 2024-09-17 17:18:47 -0300 |
commit | 4d91b7105653d39ef9c8507dd25ba426af4879e4 (patch) | |
tree | b8602fe34ccfa7ca315b41247b3c0592bf08228b | |
parent | bd26cd1810ce4296b228cd31d137a0b54e40c189 (diff) | |
download | binutils-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.cc | 3 |
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 () |