Fix gdb.ada/info_addr_mixed_case.exp (PR gdb/22670)
authorPedro Alves <palves@redhat.com>
Fri, 5 Jan 2018 16:01:57 +0000 (16:01 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 5 Jan 2018 16:01:57 +0000 (16:01 +0000)
commitf98fc17b3ac4750842ec0fe28a18b51691ddfbda
tree43a66fd2b741ee6aef63d2a2e2f51f029eed138e
parent342f82403949c74517a6353baec73b94d18549ad
Fix gdb.ada/info_addr_mixed_case.exp (PR gdb/22670)

The comments about mixed case in the testcase are actually a red
herring.  The problem here is that we'd get to
ada_lookup_encoded_symbol with "my_table", which wraps the looked up
name in "<>"s to force a verbatim match, and that in turn disables
wild matching.

Fix this by swapping around the internals of ada_lookup_encoded_symbol
and ada_lookup_symbol, thus avoiding the encoding and
verbatim-wrapping in the ada_lookup_symbol case, the case that starts
with a user-provided lookup name.

Ada encoding is still done of course, in the ada_lookup_name_info
ctor.  This could be also seen as avoiding the double-encoding problem
in a different way.

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

PR gdb/22670
* ada-lang.c (ada_lookup_encoded_symbol): Reimplement in terms of
ada_lookup_symbol.
(ada_lookup_symbol): Reimplement in terms of
ada_lookup_symbol_list, bits factored out from
ada_lookup_encoded_symbol.

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

PR gdb/22670
* gdb.ada/info_addr_mixed_case.exp: Remove kfail.  Extend test to
exercise lower case too, and to exercise both full matching and
wild matching.
gdb/ChangeLog
gdb/ada-lang.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/info_addr_mixed_case.exp