From 7a6cb96b710257a4f5bc7e85cc103b6bf8dfc25c Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Fri, 3 Sep 2021 16:38:59 +0200 Subject: [gdb/testsuite] Add untested case in gdb.gdb/complaints.exp When building gdb with "-Wall -O2 -g -flto=auto", I run into: ... (gdb) call clear_complaints()^M No symbol "clear_complaints" in current context.^M (gdb) FAIL: gdb.gdb/complaints.exp: clear complaints ... The problem is that lto has optimized away clear_complaints, and consequently the selftests cannot run. Fix this by: - using info function to detect presence of clear_complaints - handling the absence of clear_complaints by calling untested ... (gdb) UNTESTED: gdb.gdb/complaints.exp: \ Cannot find clear_complaints, skipping test ... Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2021-09-03 Tom de Vries * gdb.gdb/complaints.exp: Use untested if clear_complaints cannot be found. --- gdb/testsuite/gdb.gdb/complaints.exp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gdb/testsuite/gdb.gdb') diff --git a/gdb/testsuite/gdb.gdb/complaints.exp b/gdb/testsuite/gdb.gdb/complaints.exp index c70825b..2391d66 100644 --- a/gdb/testsuite/gdb.gdb/complaints.exp +++ b/gdb/testsuite/gdb.gdb/complaints.exp @@ -104,6 +104,26 @@ proc test_empty_complaint { cmd msg } { } proc test_empty_complaints { } { + global decimal + + set re [multi_line \ + "All functions matching regular expression \[^:\]*:" \ + "" \ + "File \[^\r\n\]*/complaints\\.c:" \ + "$decimal:\tvoid clear_complaints\\(\\);"] + + set found 0 + gdb_test_multiple "info function ^clear_complaints()$" "" { + -re -wrap $re { + set found 1 + } + -re -wrap "" { + } + } + if { ! $found } { + untested "Cannot find clear_complaints, skipping test" + return 0 + } test_empty_complaint "call clear_complaints()" \ "clear complaints" -- cgit v1.1