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
[libcxxabi] Use __LDBL_MANT_DIG__ for configuring demangling of long doubles
This avoids needing to hardcode the mapping between architectures
and their sizes of long doubles.
This fixes a case in test_demangle.pass.cpp, that previously failed
like this:
.---command stdout------------
| Testing 29859 symbols.
| _ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c should be invalid but is not
| Got: 0, void test0::h<float>(char (&) [(unsigned int)(sizeof (float) + 0x0.07ff98f7ep-1022L)])
`-----------------------------
.---command stderr------------
| Assertion failed: !passed && "demangle did not fail", file libcxxabi/test/test_demangle.pass.cpp, line 30338
`-----------------------------
This testcase is defined within
// Is long double fp80? (Only x87 extended double has 64-bit mantissa)
#define LDBL_FP80 (__LDBL_MANT_DIG__ == 64)
...
#if !LDBL_FP80
...
#endif
The case failed, by unexpectedly passing, when the demangler was
capable of demangling an 80 bit long double, while the compiler
actually is configured for a different size for that type.
0 commit comments