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



Reply via email to