about summary refs log tree commit diff
path: root/src/rustllvm/PassWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-12-10 00:34:13 +0000
committerbors <bors@rust-lang.org>2016-12-10 00:34:13 +0000
commitebf2e7da5b7ec70c28bd5535829a13203585f854 (patch)
tree228e11cd6c75ddbfd9a10d20ecc3e1d5b0e69244 /src/rustllvm/PassWrapper.cpp
parentfa45d0be82039d2a0c6c16e545058e9e6491b292 (diff)
parentf58e553001537d52e67720156f9280d122cc242d (diff)
downloadrust-ebf2e7da5b7ec70c28bd5535829a13203585f854.tar.gz
rust-ebf2e7da5b7ec70c28bd5535829a13203585f854.zip
Auto merge of #38223 - rkruppe:llvm-stringref-fixes, r=alexcrichton
printf type correctness

The `%.*s` format specifier requires an int for the maximum size, but StringRef::size is a size_t

cc @shepmaster
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
-rw-r--r--src/rustllvm/PassWrapper.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp
index d1eb261abd3..c45d1c2d088 100644
--- a/src/rustllvm/PassWrapper.cpp
+++ b/src/rustllvm/PassWrapper.cpp
@@ -533,8 +533,11 @@ LLVMRustPrintPasses() {
             StringRef PassArg = info->getPassArgument();
             StringRef PassName = info->getPassName();
             if (!PassArg.empty()) {
-                printf("%15.*s - %.*s\n", PassArg.size(), PassArg.data(),
-                       PassName.size(), PassName.data());
+                // These unsigned->signed casts could theoretically overflow, but
+                // realistically never will (and even if, the result is implementation
+                // defined rather plain UB).
+                printf("%15.*s - %.*s\n", (int)PassArg.size(), PassArg.data(),
+                       (int)PassName.size(), PassName.data());
             }
 #else
             if (info->getPassArgument() && *info->getPassArgument()) {