You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is mangled as _ZN5cxx201fENS_1AILd3ff0000000000000EEE.
For a Visual Studio 2019 build llvm-cxxfilt demangles as cxx20::f(cxx20::A<0x1.0000000000000p+0>) however for a Linux build with glibc it is demanged as: cxx20::f(cxx20::A<0x1p+0>). This occurs as the implementation calls snprintf and the differing implementations have minor output variations. See:
int n = snprintf(num, sizeof(num), FloatData<Float>::spec, value);
Ideally, the output of llvm-cxxfilt should be consistent.
One solution might be just to dump the hexadecimal string from the mangled name. This would match what GNU appears to do. For example GNU cxxfilt demangles to: cxx20::f(cxx20::A<(double)[3ff0000000000000]>). See: #92081 for, possibly, more motivation for just dumping the hexadecimal string.
The text was updated successfully, but these errors were encountered:
```
namespace cxx20 {
template<auto> struct A {};
void f(A<1.0>) {}
};
```
Is mangled as `_ZN5cxx201fENS_1AILd3ff0000000000000EEE`.
For a Visual Studio 2019 build llvm-cxxfilt demangles as cxx20::f(cxx20::A<0x1.0000000000000p+0>) however for a Linux build with glibc it is demanged as: cxx20::f(cxx20::A<0x1p+0>). This occurs as the implementation calls snprintf and the differing implementations have minor output variations. See:
int n = snprintf(num, sizeof(num), FloatData<Float>::spec, value);
Ideally, the output of the llvm-cxxfilt should be consistent.
One solution might be just to dump the hexadecimal string from the mangled name. This would match what GNU appears to do. For example GNU cxxfilt demangles to: cxx20::f(cxx20::A<(double)[3ff0000000000000]>). See: #92081 for, possibly, more motivation for just dumping the hexadecimal string.
Is mangled as
_ZN5cxx201fENS_1AILd3ff0000000000000EEE
.For a Visual Studio 2019 build llvm-cxxfilt demangles as
cxx20::f(cxx20::A<0x1.0000000000000p+0>)
however for a Linux build with glibc it is demanged as:cxx20::f(cxx20::A<0x1p+0>)
. This occurs as the implementation callssnprintf
and the differing implementations have minor output variations. See:llvm-project/llvm/include/llvm/Demangle/ItaniumDemangle.h
Line 2575 in 023cdfc
Ideally, the output of llvm-cxxfilt should be consistent.
One solution might be just to dump the hexadecimal string from the mangled name. This would match what GNU appears to do. For example GNU cxxfilt demangles to:
cxx20::f(cxx20::A<(double)[3ff0000000000000]>)
. See: #92081 for, possibly, more motivation for just dumping the hexadecimal string.The text was updated successfully, but these errors were encountered: