]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/testsuite: fix gdb.mi/mi-var-cp.exp with clang
authorGuinevere Larsen <blarsen@redhat.com>
Tue, 23 Jul 2024 17:36:20 +0000 (14:36 -0300)
committerGuinevere Larsen <blarsen@redhat.com>
Tue, 17 Sep 2024 20:18:47 +0000 (17:18 -0300)
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>
gdb/testsuite/gdb.mi/mi-var-cp.cc

index e8dd3259f9621918c33ecbdfff9b6944e432cf67..c40bdcfeaf75adb3b662ebc1df3d88cfbd1a2651 100644 (file)
@@ -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 ()