On 06/13/2018 04:31 PM, Richard Henderson wrote:
> On 06/13/2018 02:13 AM, Eric Blake wrote:
>> Or spell it UINT64_C(1) if you don't want a cast.
>
> Not unsigned is what I want most.
I used both of your suggestions, but now new format string errors
appeared due to ram_addr_t being unsigned, so code cleaned using
MachineState->ram_size now complains.
include/exec/cpu-common.h:53:typedef uintptr_t ram_addr_t;
include/hw/boards.h:259: ram_addr_t ram_size;
Is the following snippet OK?
/* allocate RAM */
- if (ram_size > (2048u << 20)) {
- error_report("Too much memory for this machine: %dMB, maximum
2048MB",
- ((unsigned int)ram_size / (1 << 20)));
+ if (ram_size > 2 * GiB) {
+ error_report("Too much memory for this machine: %luMB, maximum
2048MB",
+ ram_size / MiB);
exit(1);
}