[Bug 62] Name of nested functions is not available in debug info
gdc-bugzilla at gdcproject.org
gdc-bugzilla at gdcproject.org
Mon Feb 17 03:58:24 PST 2014
http://bugzilla.gdcproject.org/show_bug.cgi?id=62
Johannes Pfau <johannespfau at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |INVALID
--- Comment #1 from Johannes Pfau <johannespfau at gmail.com> 2014-02-17 11:58:24 GMT ---
This is a bug in libbacktrace, reported here:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60240
Iain, what was the reason we don't mark nested function declarations as
TREE_PUBLIC again? It seems GCC only emits the mangled name into debug info for
public functions.
Test case:
-----------
void main()
{
void a()
{
}
a();
}
-----------
compile with
gdc test.d test.d -c -g
objdump -W test.o > dwarf.info
Search for "test.main.a". Then you'll see there's a DW_TAG_subprogram with
"DW_AT_name" set, but "DW_AT_linkage_name" is not set.
The TREE_PUBLIC check is in "dwarf2out.c:add_linkage_name":
if (debug_info_level > DINFO_LEVEL_TERSE
&& (TREE_CODE (decl) == FUNCTION_DECL || TREE_CODE (decl) == VAR_DECL)
&& TREE_PUBLIC (decl)
&& !DECL_ABSTRACT (decl)
&& !(TREE_CODE (decl) == VAR_DECL && DECL_REGISTER (decl))
&& die->die_tag != DW_TAG_member)
{
--
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the D.gnu
mailing list