[all-commits] [llvm/llvm-project] b43235: [DebugInfo] Fix DwarfExpression::addConstantFP for...
Björn Pettersson via All-commits
all-commits at lists.llvm.org
Thu Aug 20 02:49:17 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: b43235a76c231cf15d28f073780e868b71c7bab0
https://github.com/llvm/llvm-project/commit/b43235a76c231cf15d28f073780e868b71c7bab0
Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2020-08-20 (Thu, 20 Aug 2020)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
Log Message:
-----------
[DebugInfo] Fix DwarfExpression::addConstantFP for float on big-endian
The byte swapping, when dealing with 4 byte (float) FP constants
in DwarfExpression::addConstantFP, added in commit ef8992b9f0189005
was not correct. It always performed byte swapping using an
uint64_t value. When dealing with 4 byte values the 4 interesting
bytes ended up in the big end of the uint64_t, but later we emitted
the 4 bytes at the little end. So we ended up with zeroes being
emitted and faulty debug information.
This patch simplifies things a bit, IMHO. Using the APInt
representation throughout the function, instead of looking at
the internal representation using getRawBytes and without using
reinterpret_cast etc. And using API.byteSwap() should result in
correct byte swapping independent of APInt being 4 or 8 bytes.
Differential Revision: https://reviews.llvm.org/D86272
More information about the All-commits
mailing list