16 Commits

Author SHA1 Message Date
narpfel
f289b79f1d Don’t filter .set directives that declare merged functions (#8021)
Resolves #2409.
2025-08-11 14:31:44 -05:00
narpfel
82407976d1 Accept multiple dots in symbol names for jump to label (#8018)
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
2025-08-11 14:28:06 -05:00
Ofek
a85260bc27 Fix #8009: Allow quotes as part of labels (#8015) 2025-08-09 20:21:31 +02:00
narpfel
98c91227fa Fix go-to label with position-independent code (#7522)
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>
2025-04-17 12:25:28 -05:00
Jeremy Rifkin
15271c9090 Fix missed demangles (#6350)
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>
2024-04-13 13:54:49 -05:00
Matt Godbolt
0aa3c9e4b2 Comment out ambiguous mangled name
Currently this test relies on the system-installed c++filt.
The newer binutils (2.36.1) has a fix which changes one of the
symbols' demanglings. For now, just disable the troublesome line.

New binutils:
```
$ c++filt _ZSt8__equal4IPKcS1_ZNSt8__detail16_Backref_matcherIS1_NSt7__cxx1112regex_traitsIcEEE8_M_applyES1_S1_S1_S1_EUlccE_EbT_S9_T0_SA_T1_
bool std::__equal4<char const*, char const*, std::__detail::_Backref_matcher<char const*, std::__cxx11::regex_traits<char> >::_M_apply(char const*, char const*, char const*, char const*)::{lambda(char, char)#1}>(char const*, char const*, char const*, char const*, std::__detail::_Backref_matcher<char const*, std::__cxx11::regex_traits<char> >::_M_apply(char const*, char const*, char const*, char const*)::{lambda(char, char)#1})
```

Old binutils:
```
$ c++filt _ZSt8__equal4IPKcS1_ZNSt8__detail16_Backref_matcherIS1_NSt7__cxx1112regex_traitsIcEEE8_M_applyES1_S1_S1_S1_EUlccE_EbT_S9_T0_SA_T1_
bool std::__equal4<char const*, char const*, std::__detail::_Backref_matcher<char const*, std::__cxx11::regex_traits<char> >::_M_apply(char const*, char const*, char const*, char const*)::{lambda(char, char)#1}>(char const*, std::__detail::_Backref_matcher<char const*, std::__cxx11::regex_traits<char> >::_M_apply(char const*, char const*, char const*, char const*)::{lambda(char, char)#1}, char const*, char const*, std::__detail::_Backref_matcher<char const*, std::__cxx11::regex_traits<char> >::_M_apply(char const*, char const*, char const*, char const*)::{lambda(char, char)#1})
```
2021-05-23 13:40:51 -05:00
Rubén Rincón Blanco
1642130a55 Add support for more cases of verbose demangling (#2446)
* 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>
2021-02-25 21:38:51 +01:00
Matt Godbolt
a9d76dd0df Demangle optimization (#2390)
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>
2021-01-18 11:33:19 -06:00
Partouf
f5bc680119 simplifies testcase for travis 2019-07-11 17:40:33 +02:00
Partouf
bcc85791a5 add more call ptr regexs and tests 2019-07-11 16:49:41 +02:00
Partouf
785d9d8740 testcase and fix for #1468 2019-07-11 15:29:59 +02:00
Partouf
89eea25823 add testcase for #978 2018-06-28 14:50:52 +02:00
Partouf
fc094109b5 testcase adjustment 2018-04-22 15:15:51 +02:00
Partouf
104a6c90a0 passing tests 2018-04-22 15:15:44 +02:00
Partouf
78c03c29c7 demangler unittest fixes 2018-04-22 15:15:44 +02:00
Partouf
7216fe8e21 stuff and tests that don't work 2018-04-22 15:15:43 +02:00