summaryrefslogtreecommitdiff
path: root/gold/target-reloc.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2013-05-21 21:14:40 +0000
committerCary Coutant <ccoutant@google.com>2013-05-21 21:14:40 +0000
commit93acabad6a0ff499e4e18d44c41292ef48cde104 (patch)
treed55f28e87a4dbb111513e6eb08885faeaf941604 /gold/target-reloc.h
parent60e8b3fccd5e6748c420c7ae5d78917af26345fc (diff)
downloadbinutils-gdb-93acabad6a0ff499e4e18d44c41292ef48cde104.tar.gz
gold/
* symtab.h (Symbol::is_cxx_vtable): New function. * target-reloc.h (relocate_section): Check for vtable symbol. * testsuite/Makefile.am (missing_key_func.sh): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/missing_key_func.cc: New test source. * testsuite/missing_key_func.sh: New test script.
Diffstat (limited to 'gold/target-reloc.h')
-rw-r--r--gold/target-reloc.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/gold/target-reloc.h b/gold/target-reloc.h
index cf5e389565d..b544c78f371 100644
--- a/gold/target-reloc.h
+++ b/gold/target-reloc.h
@@ -411,7 +411,13 @@ relocate_section(
}
if (issue_undefined_symbol_error(sym))
- gold_undefined_symbol_at_location(sym, relinfo, i, offset);
+ {
+ gold_undefined_symbol_at_location(sym, relinfo, i, offset);
+ if (sym->is_cxx_vtable())
+ gold_info(_("%s: the vtable symbol may be undefined because "
+ "the class is missing its key function"),
+ program_name);
+ }
else if (sym != NULL
&& sym->visibility() != elfcpp::STV_DEFAULT
&& (sym->is_undefined() || sym->is_from_dynobj()))