diff options
author | Cary Coutant <ccoutant@google.com> | 2008-12-16 19:19:16 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2008-12-16 19:19:16 +0000 |
commit | abc8dcbad2b489919dfb608e82d75f204b14b594 (patch) | |
tree | 1a4f81ab8dbe68df1497f5c4d4425784a25fc060 /gold/testsuite/plugin_test.c | |
parent | bb5ef15eff1baa44a382c9be60383e66cc26badd (diff) | |
download | gdb-abc8dcbad2b489919dfb608e82d75f204b14b594.zip gdb-abc8dcbad2b489919dfb608e82d75f204b14b594.tar.gz gdb-abc8dcbad2b489919dfb608e82d75f204b14b594.tar.bz2 |
* plugin.cc (Plugin::load): Move LDPT_MESSAGE to front of transfer
vector.
(Plugin_manager::claim_file): Create plugin object even if
plugin did not call the add_symbols callback.
(Plugin_obj::get_symbol_resolution_info): Guard against plugin
asking for more symbols than were added.
* testsuite/Makefile.am (plugin_test_1): Add test case with
no global symbols.
(empty.syms): New target.
* testsuite/Makefile.in: Regenerate.
* testsuite/plugin_test.c (claim_file_hook): Add new debug
message. Don't call add_symbols if no globals.
(all_symbols_read_hook): Don't provide replacement for empty
claimed file.
Diffstat (limited to 'gold/testsuite/plugin_test.c')
-rw-r--r-- | gold/testsuite/plugin_test.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gold/testsuite/plugin_test.c b/gold/testsuite/plugin_test.c index c60c7a1..c36fee4 100644 --- a/gold/testsuite/plugin_test.c +++ b/gold/testsuite/plugin_test.c @@ -319,7 +319,11 @@ claim_file_hook (const struct ld_plugin_input_file* file, int* claimed) last_claimed_file->next = claimed_file; last_claimed_file = claimed_file; - (*add_symbols)(file->handle, nsyms, syms); + (*message)(LDPL_INFO, "%s: claiming file, adding %d symbols", + file->name, nsyms); + + if (nsyms > 0) + (*add_symbols)(file->handle, nsyms, syms); *claimed = 1; return LDPS_OK; @@ -398,6 +402,8 @@ all_symbols_read_hook(void) claimed_file != NULL; claimed_file = claimed_file->next) { + if (claimed_file->nsyms == 0) + continue; if (strlen(claimed_file->name) >= sizeof(buf)) { (*message)(LDPL_FATAL, "%s: filename too long", claimed_file->name); |