diff --git a/lldb/source/Core/DumpDataExtractor.cpp b/lldb/source/Core/DumpDataExtractor.cpp index 34c9353c9fea..ec44e3481c1e 100644 --- a/lldb/source/Core/DumpDataExtractor.cpp +++ b/lldb/source/Core/DumpDataExtractor.cpp @@ -52,9 +52,7 @@ static float half2float(uint16_t half) { float f; uint32_t u; } u; - // Sign extend to 4 byte. - int32_t sign_extended = static_cast(half); - uint32_t v = static_cast(sign_extended); + int32_t v = (int16_t)half; if (0 == (v & 0x7c00)) { u.u = v & 0x80007FFFU; diff --git a/lldb/unittests/Core/DumpDataExtractorTest.cpp b/lldb/unittests/Core/DumpDataExtractorTest.cpp index 05cd13add1e9..c4ec5f2e9a35 100644 --- a/lldb/unittests/Core/DumpDataExtractorTest.cpp +++ b/lldb/unittests/Core/DumpDataExtractorTest.cpp @@ -174,30 +174,8 @@ TEST(DumpDataExtractorTest, Formats) { "{0x0000000000000000 0xaaaabbbbccccdddd}"); // See half2float for format details. - // Test zeroes. - TestDump(std::vector{0x0000, 0x8000}, - lldb::Format::eFormatVectorOfFloat16, "{0 -0}"); - // Some subnormal numbers. - TestDump(std::vector{0x0001, 0x8001}, - lldb::Format::eFormatVectorOfFloat16, "{5.96046e-08 -5.96046e-08}"); - // A full mantisse and empty expontent. - TestDump(std::vector{0x83ff, 0x03ff}, - lldb::Format::eFormatVectorOfFloat16, "{-6.09756e-05 6.09756e-05}"); - // Some normal numbers. - TestDump(std::vector{0b0100001001001000}, - lldb::Format::eFormatVectorOfFloat16, "{3.14062}"); TestDump(std::vector{0xabcd, 0x1234}, lldb::Format::eFormatVectorOfFloat16, "{-0.0609436 0.000757217}"); - // Largest and smallest normal number. - TestDump(std::vector{0x0400, 0x7bff}, - lldb::Format::eFormatVectorOfFloat16, "{6.10352e-05 65504}"); - // quiet/signaling NaNs. - TestDump(std::vector{0xffff, 0xffc0, 0x7fff, 0x7fc0}, - lldb::Format::eFormatVectorOfFloat16, "{nan nan nan nan}"); - // +/-Inf. - TestDump(std::vector{0xfc00, 0x7c00}, - lldb::Format::eFormatVectorOfFloat16, "{-inf inf}"); - TestDump(std::vector{std::numeric_limits::min(), std::numeric_limits::max()}, lldb::Format::eFormatVectorOfFloat32, "{1.17549e-38 3.40282e+38}");