Shifting a long int (32 bit) by 40 bit positions won't work. Compiler message:
hw/core/qdev-properties.c: In function ‘print_size’: hw/core/qdev-properties.c:1180:5: warning: left shift count >= width of type Signed-off-by: Stefan Weil <s...@weilnetz.de> --- hw/core/qdev-properties.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 8d43a8d..e82ab87 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1177,7 +1177,7 @@ static int print_size(DeviceState *dev, Property *prop, char *dest, size_t len) int i = 0; uint64_t div; - for (div = (long int)1 << 40; !(*ptr / div) ; div >>= 10) { + for (div = 1ULL << 40; !(*ptr / div); div >>= 10) { i++; } return snprintf(dest, len, "%0.03f%c", (double)*ptr/div, suffixes[i]); -- 1.7.10.4