From fbca8d5495f27268c18f8c7d0d318730d77ed34c Mon Sep 17 00:00:00 2001 From: Erik Pilkington Date: Mon, 15 Oct 2018 22:03:53 +0000 Subject: NFC: Fix a -Wsign-conversion warning llvm-svn: 344564 --- libcxxabi/src/cxa_demangle.cpp | 16 +++++++++++----- llvm/lib/Demangle/ItaniumDemangle.cpp | 16 +++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/libcxxabi/src/cxa_demangle.cpp b/libcxxabi/src/cxa_demangle.cpp index a9a7050000d..5de2dbad8a1 100644 --- a/libcxxabi/src/cxa_demangle.cpp +++ b/libcxxabi/src/cxa_demangle.cpp @@ -114,14 +114,20 @@ struct DumpVisitor { printStr("}"); --Depth; } + // Overload used when T is exactly 'bool', not merely convertible to 'bool'. - template - void print(T B) { - printStr(B ? "true" : "false"); + void print(bool B) { printStr(B ? "true" : "false"); } + + template + typename std::enable_if::value>::type print(T N) { + fprintf(stderr, "%llu", (unsigned long long)N); } - void print(size_t N) { - fprintf(stderr, "%zu", N); + + template + typename std::enable_if::value>::type print(T N) { + fprintf(stderr, "%lld", (long long)N); } + void print(ReferenceKind RK) { switch (RK) { case ReferenceKind::LValue: diff --git a/llvm/lib/Demangle/ItaniumDemangle.cpp b/llvm/lib/Demangle/ItaniumDemangle.cpp index 2165cbab7e7..8d132c7580f 100644 --- a/llvm/lib/Demangle/ItaniumDemangle.cpp +++ b/llvm/lib/Demangle/ItaniumDemangle.cpp @@ -112,14 +112,20 @@ struct DumpVisitor { printStr("}"); --Depth; } + // Overload used when T is exactly 'bool', not merely convertible to 'bool'. - template - void print(T B) { - printStr(B ? "true" : "false"); + void print(bool B) { printStr(B ? "true" : "false"); } + + template + typename std::enable_if::value>::type print(T N) { + fprintf(stderr, "%llu", (unsigned long long)N); } - void print(size_t N) { - fprintf(stderr, "%zu", N); + + template + typename std::enable_if::value>::type print(T N) { + fprintf(stderr, "%lld", (long long)N); } + void print(ReferenceKind RK) { switch (RK) { case ReferenceKind::LValue: -- cgit v1.2.3