5a384b9ea8
There might be a sign extension when a long is promoted to int_value_type and the former type is smaller than the later. This produces the wrong output if the specified format is unsigned. Let's avoid this problem by handling signed and unsigned cases explicitly. When the type already matches int_value_type then the compiler is smart enough to recognize the redundancy and removes unneeded duplications automatically, meaning that the code will stay small when code size matters. A similar issue also existed in the restricted %llu case. The fix is the same as above. Those fixes exposed wrong results in the printk.c test with %llx so fix that as well. Signed-off-by: Nicolas Pitre <npitre@baylibre.com> |
||
---|---|---|
.. | ||
base64 | ||
cbprintf | ||
crc | ||
intmath | ||
list | ||
math_extras | ||
net_timeout | ||
rbtree | ||
timeutil | ||
util |