From 60e8b3fccd5e6748c420c7ae5d78917af26345fc Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Tue, 21 May 2013 20:56:13 +0000 Subject: gold/ * object.cc (Sized_relobj_file::get_symbol_location_info): Set type of enclosing symbol. (Relocate_info::location): Check symbol type when describing symbol. * object.h (Symbol_location_info): Remove unused line_number; add enclosing_symbol_type. * testsuite/debug_msg.sh: Adjust expected output. --- gold/object.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'gold/object.cc') diff --git a/gold/object.cc b/gold/object.cc index 715f7ac..1f113d1 100644 --- a/gold/object.cc +++ b/gold/object.cc @@ -1,6 +1,6 @@ // object.cc -- support for an object file for linking in gold -// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 +// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 // Free Software Foundation, Inc. // Written by Ian Lance Taylor . @@ -2687,6 +2687,7 @@ Sized_relobj_file::get_symbol_location_info( && (static_cast(sym.get_st_value() + sym.get_st_size()) > offset)) { + info->enclosing_symbol_type = sym.get_st_type(); if (sym.get_st_name() > names_size) info->enclosing_symbol_name = "(invalid)"; else @@ -2996,12 +2997,10 @@ Relocate_info::location(size_t, off_t offset) const ret += ":"; ret += info.source_file; } - size_t len = info.enclosing_symbol_name.length() + 100; - char* buf = new char[len]; - snprintf(buf, len, _(":function %s"), - info.enclosing_symbol_name.c_str()); - ret += buf; - delete[] buf; + ret += ":"; + if (info.enclosing_symbol_type == elfcpp::STT_FUNC) + ret += _("function "); + ret += info.enclosing_symbol_name; return ret; } -- cgit v1.1