[llvm-debuginfo-analyzer] Fix format string-type mismatch in LVScope

Fix mismatch between `%d`/`%x` format strings and `uint64_t` type.
This fixes incorrect printing of "Scope Sizes" on 32-bit platforms
where this leads to `llvm::print()` misreading vararg.

Fixes #58758

Differential Revision: https://reviews.llvm.org/D137400
This commit is contained in:
Michał Górny
2022-11-04 09:19:22 +01:00
parent c14df228ff
commit 7292d051a9
2 changed files with 3 additions and 5 deletions

View File

@@ -1192,7 +1192,8 @@ void LVScopeCompileUnit::addSize(LVScope *Scope, LVOffset Lower,
LVOffset Upper) {
LLVM_DEBUG({
dbgs() << format(
"CU [0x%08x], Scope [0x%08x], Range [0x%08x:0x%08x], Size = %d\n",
"CU [0x%08" PRIx64 "], Scope [0x%08" PRIx64 "], Range [0x%08" PRIx64
":0x%08" PRIx64 "], Size = %" PRId64 "\n",
getOffset(), Scope->getOffset(), Lower, Upper, Upper - Lower);
});
@@ -1548,7 +1549,7 @@ void LVScopeCompileUnit::printScopeSize(const LVScope *Scope, raw_ostream &OS) {
// implementation-defined rounding inside printing functions.
float Percentage =
rint((float(Size) / CUContributionSize) * 100.0 * 100.0) / 100.0;
OS << format("%10d (%6.2f%%) : ", Size, Percentage);
OS << format("%10" PRId64 " (%6.2f%%) : ", Size, Percentage);
Scope->print(OS);
// Keep record of the total sizes at each lexical level.

View File

@@ -1,8 +1,5 @@
; REQUIRES: x86-registered-target
; FIXME: Test failure https://reviews.llvm.org/D125783
; UNSUPPORTED: arm
; Test case 6 - Full logical view
; test.cpp