Fix gdb.ada/bp_c_mixed_case.exp (PR gdb/22670)
authorPedro Alves <palves@redhat.com>
Wed, 10 Jan 2018 20:38:06 +0000 (20:38 +0000)
committerPedro Alves <palves@redhat.com>
Wed, 10 Jan 2018 20:38:06 +0000 (20:38 +0000)
commit8825213e97f0476068dc3b52b1b61df96b40708a
tree177efe10098282d88b703844c7e5370d6822abc1
parent7ec0cd50bf2c93854ef02b9c1f3b4edc4b70cd46
Fix gdb.ada/bp_c_mixed_case.exp (PR gdb/22670)

The problem here is that we are using the user-provided lookup name
literally for name comparisons.  I.e., "<MixedCase>" with the "<>"s
included.

This commit fixes the minsym lookup case.  psymbol/symbol lookup will
be fixed in a follow up.

In the minsym case, we're using using the user-provided lookup name
literally for linkage name comparisons.  That obviously can't work
since the "<>" are not really part of the linkage name.

The original idea was that we'd use the symbol's language to select
the right symbol name matching algorithm, but that doesn't work for
Ada because it's not really possible to unambiguously tell from the
linkage name alone whether we're dealing with Ada symbols, so Ada
minsyms end up with no language set, or sometimes C++ set.

So fix this by treating Ada mode specially when determining the
linkage name to match against.

gdb/ChangeLog:
2018-01-10  Pedro Alves  <palves@redhat.com>

PR gdb/22670
* minsyms.c (linkage_name_str): New function.
(iterate_over_minimal_symbols): Use it.

gdb/testsuite/ChangeLog:
2018-01-10  Pedro Alves  <palves@redhat.com>

PR gdb/22670
* gdb.ada/bp_c_mixed_case.exp: Remove setup_kfail calls.
gdb/ChangeLog
gdb/minsyms.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/bp_c_mixed_case.exp