Fix gdb.base/advance-until-multiple-locations.exp with some compilers
authorPedro Alves <pedro@palves.net>
Fri, 28 Aug 2020 17:44:39 +0000 (18:44 +0100)
committerPedro Alves <pedro@palves.net>
Fri, 28 Aug 2020 17:44:39 +0000 (18:44 +0100)
commit8f57f343104b8d3632e65ac1fbb12ee69891ef5f
tree1854e250d8b41e568149b6333bcee41ff7dca7ff
parente0814aae5f16c06d82fde23f8bea15eea205aa54
Fix gdb.base/advance-until-multiple-locations.exp with some compilers

The tests in gdb.base/advance-until-multiple-locations.exp that expect
the program to stop at a caller fail on some systems, depending on
compiler.  E.g., with Clang 10, I see:

 advance ovld_func
 0x00000000004011a3 in test () at /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.base/advance-until-multiple-locations.cc:51
 51        ovld_func ();
 (gdb) FAIL: gdb.base/advance-until-multiple-locations.exp: advance_overload: second advance stops at caller

And Tom de Vries saw:

 ...
 (gdb) until ovld_func^M
 main () at advance-until-multiple-locations.cc:61^M
 61      }^M
 (gdb) FAIL: gdb.base/advance-until-multiple-locations.exp:until_overload: until ovld_func
 ...

Which exact line the program stops is not important.  All we care
about here is that the program stopped at the caller function.

So fix it by adjusting the patterns to match the frame header/function
reported by the breakpoint hits instead of the source lines text.

Tested against:

 - gcc {4.8, 4.9, 7.3.1, 9.3.0, trunk-20200828}
 - clang {5.0.2, 10}

gdb/testsuite/ChangeLog:

* gdb.base/advance-until-multiple-locations.exp
(advance_overload, until_overload): Adjust to match the
frame/function header instead of the source line text.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/advance-until-multiple-locations.exp