From: Guinevere Larsen Date: Tue, 23 Jul 2024 17:36:20 +0000 (-0300) Subject: gdb/testsuite: fix gdb.mi/mi-var-cp.exp with clang X-Git-Tag: gdb-16-branchpoint~888 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d91b7105653d39ef9c8507dd25ba426af4879e4;p=thirdparty%2Fbinutils-gdb.git 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 --- diff --git a/gdb/testsuite/gdb.mi/mi-var-cp.cc b/gdb/testsuite/gdb.mi/mi-var-cp.cc index e8dd3259f96..c40bdcfeaf7 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 ()