[Bug binutils/23715] New: addr2line reports null symbol for inline frame

2018-09-26 Thread mail at milianw dot de
https://sourceware.org/bugzilla/show_bug.cgi?id=23715

Bug ID: 23715
   Summary: addr2line reports null symbol for inline frame
   Product: binutils
   Version: unspecified
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: binutils
  Assignee: unassigned at sourceware dot org
  Reporter: mail at milianw dot de
  Target Milestone: ---

Since some time addr2line, and libbfd as used by perf, fail to associate the
symbol name to inlined frames. Note the "??" in the output of addr2line in the
reproducer below:

$ cat test.cpp 
#include 
#include 
#include 
#include 

using namespace std;

int main()
{
uniform_real_distribution uniform(-1E5, 1E5);
default_random_engine engine;
double s = 0;
for (int i = 0; i < 1000; ++i) {
s += norm(complex(uniform(engine), uniform(engine)));
}
return static_cast(s);
}
$ g++ -g -O2 test.cpp
$ addr2line -e a.out 766 -if
main
/usr/include/c++/8.2.1/bits/random.tcc:123
??
/usr/include/c++/8.2.1/bits/random.h:257
main
/tmp/test.cpp:11

I'm using libbfd 2.31.1 with gcc 8.2.1 or clang 6.0.1 currently. eu-addr2line
seems to work correctly, which makes me believe it's an issue with libbfd /
addr2line from binutils:

$ eu-addr2line -e a.out 766 -if
_ZNSt26linear_congruential_engineImLm16807ELm0ELm2147483647EE4seedEm inlined at
/usr/include/c++/8.2.1/bits/random.h:257:9 in main
/usr/include/c++/8.2.1/bits/random.tcc:123:2
_ZNSt26linear_congruential_engineImLm16807ELm0ELm2147483647EEC4Em
/usr/include/c++/8.2.1/bits/random.h:257:9
main
/tmp/test.cpp:11:27

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/23715] addr2line reports null symbol for inline frame

2018-09-26 Thread mail at milianw dot de
https://sourceware.org/bugzilla/show_bug.cgi?id=23715

Milian Wolff  changed:

   What|Removed |Added

 CC||mail at milianw dot de

--- Comment #1 from Milian Wolff  ---
Created attachment 11274
  --> https://sourceware.org/bugzilla/attachment.cgi?id=11274&action=edit
correctly pass through name from nested find_abstract_instance calls

The attached patch fixes the issue for me. Apparently the compilers generate
debug information with nested instance, i.e. find_abstract_instance calls
itself in dwarf2.c. In such a scenario, the inner call will correctly set its
pname to the name it found. But the outer call will then override it with name
= NULL at the end of find_abstract_instance.

Fix this by passing the pointer to the name when calling find_abstract_instance
from itself. I've tested this patch with addr2line and perf on the example
source code provided in the bug report. Both work again with this fix applied!

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/23715] addr2line reports null symbol for inline frame

2018-09-26 Thread mail at milianw dot de
https://sourceware.org/bugzilla/show_bug.cgi?id=23715

--- Comment #2 from Milian Wolff  ---
are there really no unit tests for libbfd?

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gold/21066] icf folds template functions with different exception handling semantics

2018-09-26 Thread oremanj at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=21066

--- Comment #5 from Joshua Oreman  ---
Created attachment 11278
  --> https://sourceware.org/bugzilla/attachment.cgi?id=11278&action=edit
Proposed fix

I believe this patch fixes all the issues described in this thread. I also
submitted it to the mailing list:
https://sourceware.org/ml/binutils/2018-09/msg00346.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils