This is an archive of the discontinued LLVM Phabricator instance.

Add test case for PR demonstrating C++ matching issue
AbandonedPublic

Authored by emaste on Sep 7 2016, 11:04 AM.

Details

Reviewers
grimar
Summary

If multiple mangled symbols produce identical demangled names it seems lld's version script handling only includes one of them.

For example both _ZN3abcC1Ev and _ZN3abcC2Ev should be abc::abc() but as seen with the addition in this patch only one of the two gets the symbol version appended:

Symbol {
  Name: _ZN3abcC1Ev@ (25)
  Value: 0x1003
  Size: 0
  Binding: Global (0x1)
  Type: Function (0x2)
  Other: 0
  Section: .text (0x6)
}
Symbol {
  Name: _ZN3abcC2Ev@@LIBSAMPLE_1.0 (37)
  Value: 0x1004
  Size: 0
  Binding: Global (0x1)
  Type: Function (0x2)
  Other: 0
  Section: .text (0x6)
}

Diff Detail