On 01/08/2016 12:51 AM, Eric Blake wrote:
On 01/07/2016 01:12 AM, Cao jin wrote:
if (rc < 0) {
- XEN_PT_LOG(&s->dev, "Failed to initialize %d/%ld,
type=0x%x, rc:%d\n",
- i, ARRAY_SIZE(xen_pt_emu_reg_grps),
+ error_setg(&local_err, "Failed to initialize %d/%ld,
type=0x%x,"
+ " rc:%d", i,
ARRAY_SIZE(xen_pt_emu_reg_grps),
This maps ARRAY_SIZE() (which is size_t) to %ld, which can fail to
compile on 32-bit platforms (where size_t is not necessarily long). Fix
it to %zd while touching it.
a question:
1. Is %zu more suitable for size_t? since size_t is unsigned integer.
Yes, you're right on that one.
and a personal question after digging into size_t:
2. Does the size of size_t always equal to the word length[*] of computer
No. It equals the maximum size the program can use. But the x32 ABI
project is a good example of a 32-bit size_t while still taking full
advantage of the 64-bit word size registers, in the name of memory
efficiencies. See https://en.wikipedia.org/wiki/X32_ABI.
Thanks very much. Have send v4 version, hope I don`t miss any comment:)
--
Yours Sincerely,
Cao jin