On Jul 23, 2016, Alexandre Oliva <aol...@redhat.com> wrote: > We used to emit, in debug information, the values bound to pointer to > member function template parameters only when they were NULL or > virtual member functions, because those can be represented with > DW_AT_const_value.
> In order to represent the symbolic pointer to member function > constants for non-virtual member functions, we'd need to be able to > emit relocations for part of DW_AT_const_value, which we don't. The > more viable alternative is to use DW_AT_location to represent such > values, as slated for inclusion in DWARFv5, according to > <URL:http://www.dwarfstd.org/ShowIssue.php?issue=130412.1>. > With this patch, when we can't emit a DW_AT_const_value, we emit each > "member" of the pointer to member function "record" as a > DW_OP_stack_value DW_OP_piece, as long as the referenced member > function is output in the same translation unit, otherwise we'd get > relocations to external symbols, something to avoid in debug sections. > Regstrapped on x86_64-linux-gnu and i686-pc-linux-gnu, and manually > cross-tested with both endiannesses (just to be sure ;-) with a > mips64-elf target. Ok to install? Ping? (patch attached to gcc.gnu.org/PR49366) -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer