diff options
author | Piggy NL <piggynl@outlook.com> | 2022-05-26 22:59:49 +0800 |
---|---|---|
committer | Piggy NL <piggynl@outlook.com> | 2022-05-27 13:53:20 +0800 |
commit | 842e48bd65770f0368ee0d1ca7ee34dbd8f0ff03 (patch) | |
tree | 516abc8dd7a725e84f37e25559f7b231231dc866 /libcxxabi/src | |
parent | 121689a62e5b86cce0c5474f902cb24ff6dd57c5 (diff) | |
download | llvm-842e48bd65770f0368ee0d1ca7ee34dbd8f0ff03.tar.gz |
[demangler][RISCV] Fix for long double
Summary:
The size of long double in RISCV (both RV32 and RV64) is 16 bytes, thus
the mangled_size shouble be 32.
This patch will fix test case
"_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c"
in test_demangle.pass.cpp, which is expected to be invalid but demangler
returned "void test0::h<float>(char (&) [(unsigned int)((sizeof (float))
+ (0x0.000000004001ap-16382L))])" in RISCV environment without this patch.
Reviewed By: urnathan
Differential Revision: https://reviews.llvm.org/D126480
Diffstat (limited to 'libcxxabi/src')
-rw-r--r-- | libcxxabi/src/demangle/ItaniumDemangle.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h index beece93b21d4..e3f0c6dfecdc 100644 --- a/libcxxabi/src/demangle/ItaniumDemangle.h +++ b/libcxxabi/src/demangle/ItaniumDemangle.h @@ -5099,7 +5099,7 @@ template <> struct FloatData<long double> { #if defined(__mips__) && defined(__mips_n64) || defined(__aarch64__) || \ - defined(__wasm__) + defined(__wasm__) || defined(__riscv) static const size_t mangled_size = 32; #elif defined(__arm__) || defined(__mips__) || defined(__hexagon__) static const size_t mangled_size = 16; |