-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Demangle failure with dragonbox symbol #269
Comments
llvm-cxxfilt (built from rev 82fcd7397a5939a9f0148513cc7b6883a00a16b0) doesn't demangle this for me. |
Hm, both the tools that come from xcode (xcode 13.4.1, c++filt claims to be 13.1.6), and homebrew installed (llvm/clang 13.0.1) seem to demangle it just fine. And these are the latest "stable" versions that I can easily install right now. I wonder if the mangling has then changed in later versions |
I followed the instructions you provided using clang's tip and the symbol produced now appears to be
llvm-cxxfilt produces
cpp_demangle produces
(libiberty does not parse this succesfully) |
Fixing the incorrect lambda parameters here is pretty tricky, I think it's going to require some serious refactoring. |
Hello!
I noticed a case where the demangling fails, but where (llvm/apple) c++filt seems to work, with this beauty:
__ZZZN3jkj9dragonbox10to_decimalIfNS0_20default_float_traitsIfEEJNS0_6detail11policy_impl4sign6ignoreENS5_13trailing_zero6removeEEEEDaNS0_23signed_significand_bitsIT_T0_EEjDpT1_ENKUlSC_E_clINS5_26decimal_to_binary_rounding15nearest_to_evenEEESA_SC_ENKUlDpT_E_clIJEEESA_SM_
A self contained test could be
And that just fails with
Error: Error
.c++filt output for me is:
And finally attempt to minimise the source of the symbol for proof that I didn't just conjure it up myself. Steps:
where the
dragonbox.cpp
contents being:Fiddling with the
DemangleOptions
didn't seem to affect the outcome.I wonder if it is possible to make the demangler "fool proof" on valid input, or should there perhaps be some "lossy mode", where it demangles as much as it can, but bails out gracefully giving partial result, for when I don't have too strict needs.
The text was updated successfully, but these errors were encountered: