From: Tom de Vries Date: Thu, 31 Jul 2025 07:58:47 +0000 (+0200) Subject: [gdb/testsuite] Fix gdb.gdb/python-helper.exp with gdb built with -flto X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7c272f06d2d456d1d99762325fd0dd7db31d540;p=thirdparty%2Fbinutils-gdb.git [gdb/testsuite] Fix gdb.gdb/python-helper.exp with gdb built with -flto With a gdb build with gcc 7.5.0 and "-O2 -flto=auto -g", I run into: ... (outer-gdb) PASS: gdb.gdb/python-helper.exp: print varobj_table print inferior_list $5 = {m_front = 0x212e830, m_back = 0x2e39aa0} (outer-gdb) FAIL: gdb.gdb/python-helper.exp: print inferior_list ... The problem is that the type of inferior_list: ... (outer-gdb) what inferior_list^M type = intrusive_list^M (outer-gdb) ... is not descriptive enough to trigger the pretty pretter. Note that with a gdb build with -O0, we'd get instead: ... (outer-gdb) what inferior_list^M type = intrusive_list > (outer-gdb) ... Fix this by detecting this situation, and declaring the test unsupported. Tested on x86_64-linux. --- diff --git a/gdb/testsuite/gdb.gdb/python-helper.exp b/gdb/testsuite/gdb.gdb/python-helper.exp index 4b9adb044e1..8126740c301 100644 --- a/gdb/testsuite/gdb.gdb/python-helper.exp +++ b/gdb/testsuite/gdb.gdb/python-helper.exp @@ -264,10 +264,28 @@ proc test_python_helper {} { gdb_test -prompt $outer_prompt_re "print varobj_table" \ "htab_t with ${::decimal} elements" + set inferior_list_supported 1 + set inferior_list_unsupported_re "type = intrusive_list" + gdb_test_multiple "what inferior_list" "" -prompt $outer_prompt_re { + -re -wrap $inferior_list_unsupported_re { + set inferior_list_supported 0 + pass $gdb_test_name + } + -re -wrap "" { + pass $gdb_test_name + } + } + # Test the intrusive_list pretty-printer. A bug occurred in the # pretty-printer for lists with more than one element. Verify that # we see both elements of the inferior_list list being printed. - gdb_test -prompt $outer_prompt_re "print inferior_list" "intrusive list of inferior = {.*, num = 1,.*, num = 2,.*}" + set test "print inferior_list" + if { $inferior_list_supported } { + gdb_test -prompt $outer_prompt_re $test \ + "intrusive list of inferior = {.*, num = 1,.*, num = 2,.*}" + } else { + unsupported $test + } return 0 }