[libvirt] [PATCH] build: really silence the 32-bit warning

Eric Blake eblake at redhat.com
Mon May 14 15:05:20 UTC 2012


Commit cdce2f42d tried to silence a compiler warning on 32-bit builds,
but the gcc shipped with RHEL 5 is old enough that the type conversion
via multiplication by 1 was insufficient for the task.

* src/qemu/qemu_monitor.c (qemuMonitorBlockJob): Previous attempt
didn't get past all gcc versions.
---

Pushing under the build-breaker rule.

 src/qemu/qemu_monitor.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 0d4319d..7d69c67 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -2785,13 +2785,14 @@ int qemuMonitorBlockJob(qemuMonitorPtr mon,
               modern);

     /* Convert bandwidth MiB to bytes */
-    if (bandwidth * 1ULL > ULLONG_MAX / 1024 / 1024) {
+    speed = bandwidth;
+    if (speed > ULLONG_MAX / 1024 / 1024) {
         qemuReportError(VIR_ERR_OVERFLOW,
                         _("bandwidth must be less than %llu"),
                         ULLONG_MAX / 1024 / 1024);
         return -1;
     }
-    speed = bandwidth * 1024ULL * 1024ULL;
+    speed <<= 20;

     if (mon->json)
         ret = qemuMonitorJSONBlockJob(mon, device, base, speed, info, mode,
-- 
1.7.7.6




More information about the libvir-list mailing list