Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PR ada/25837 points out a crash in the gdb testsuite when .debug_names is used. You can reproduce like: runtest --target_board=cc-with-debug-names \ gdb.ada/big_packed_array.exp The bug was introduced by commit e0802d5 ("Avoid copying in lookup_name_info"). The problem is that the return type of language_lookup_name changed, but in a way that didn't cause existing callers to trigger a compilation error. Previously, it returned a "const string &", but after it returned a "const char *". This caused a string to be created in dw2_expand_symtabs_matching_symbol, but one that had too short of a lifetime; so eventually the matcher cache would wind up with invalid data. This patch fixes the problem by updating the callers to use the new type. Tested on x86-64 Fedora 30. gdb/ChangeLog 2020-04-23 Tom Tromey <[email protected]> PR ada/25837: * dwarf2/read.c (dw2_expand_symtabs_matching_symbol): Store a "const char *", not a "const std::string &". <name_and_matcher::operator==>: Update. * unittests/lookup_name_info-selftests.c: Change type of "result".
- Loading branch information