Some compilers emit symbol names with multiple dots, e. g. Clang for
static data (like string literals) or GCC for function clones (e. g. due
to interprocedural constant propagation).
Test cases: https://godbolt.org/z/dGbGncnh8,
https://godbolt.org/z/dhrGGqrjo
Resolves#7521.
With this PR, `@...` suffixes are included in the clickable area for
go-to label.
This also affects PowerPC, where `@...` suffixes are a bit more common
(`@ha` and `@l` will also be marked as clickable).
---------
Co-authored-by: Matt Godbolt <matt@godbolt.org>
This PR fixes missed demangle cases pointed out in #6348, namely of the
form `mov eax, OFFSET FLAT:_Z...` and `jmp qword ptr [rip + _Z...]`.
Closes#6348.
---------
Co-authored-by: Patrick Quist <partouf@gmail.com>
* Add support for more cases of verbose demangling
I skipped the tests on this commit so that I could push it,
and add the tests at a later date.
I do this because I'm not sure this does not break unreleated
stuff so I wanted to make the changes visible before fixing the tests
* Adress review comments
* Update cpp.js
* new test results
Co-authored-by: Patrick Quist <partouf@gmail.com>
Uses a prefix tree to find replacements in each
line, instead of looping over all replacements for all lines.
Adds a large test (which was part of bug 1336). On my machine it
used to take 45s to process that test, now it takes ~1.5s.
Skip demangle replacement entirely if there's no demangling to be done. CC @apmorton
Co-authored-by: partouf <partouf@gmail.com>