From: Dmitry V. Levin Date: Mon, 26 Sep 2016 20:27:53 +0000 (+0000) Subject: Enhance zero_extend_signed_to_ull and sign_extend_unsigned_to_ll macros X-Git-Tag: v4.14~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=906dc4aaa15574d73f7df3ddcf9f8a691871983a;p=strace Enhance zero_extend_signed_to_ull and sign_extend_unsigned_to_ll macros * defs.h (zero_extend_signed_to_ull, sign_extend_unsigned_to_ll): Add support of char types. * tests/tests.h (zero_extend_signed_to_ull, sign_extend_unsigned_to_ll): Likewise. --- diff --git a/defs.h b/defs.h index 07de67af..4c7a0637 100644 --- a/defs.h +++ b/defs.h @@ -751,7 +751,8 @@ extern unsigned current_wordsize; * Zero-extend a signed integer type to unsigned long long. */ #define zero_extend_signed_to_ull(v) \ - (sizeof(v) == sizeof(short) ? (unsigned long long) (unsigned short) (v) : \ + (sizeof(v) == sizeof(char) ? (unsigned long long) (unsigned char) (v) : \ + sizeof(v) == sizeof(short) ? (unsigned long long) (unsigned short) (v) : \ sizeof(v) == sizeof(int) ? (unsigned long long) (unsigned int) (v) : \ sizeof(v) == sizeof(long) ? (unsigned long long) (unsigned long) (v) : \ (unsigned long long) (v)) @@ -760,7 +761,8 @@ extern unsigned current_wordsize; * Sign-extend an unsigned integer type to long long. */ #define sign_extend_unsigned_to_ll(v) \ - (sizeof(v) == sizeof(short) ? (long long) (short) (v) : \ + (sizeof(v) == sizeof(char) ? (long long) (char) (v) : \ + sizeof(v) == sizeof(short) ? (long long) (short) (v) : \ sizeof(v) == sizeof(int) ? (long long) (int) (v) : \ sizeof(v) == sizeof(long) ? (long long) (long) (v) : \ (long long) (v)) diff --git a/tests/tests.h b/tests/tests.h index 340813b8..f3ddc85e 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -132,14 +132,16 @@ int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int); /* Zero-extend a signed integer type to unsigned long long. */ #define zero_extend_signed_to_ull(v) \ - (sizeof(v) == sizeof(short) ? (unsigned long long) (unsigned short) (v) : \ + (sizeof(v) == sizeof(char) ? (unsigned long long) (unsigned char) (v) : \ + sizeof(v) == sizeof(short) ? (unsigned long long) (unsigned short) (v) : \ sizeof(v) == sizeof(int) ? (unsigned long long) (unsigned int) (v) : \ sizeof(v) == sizeof(long) ? (unsigned long long) (unsigned long) (v) : \ (unsigned long long) (v)) /* Sign-extend an unsigned integer type to long long. */ #define sign_extend_unsigned_to_ll(v) \ - (sizeof(v) == sizeof(short) ? (long long) (short) (v) : \ + (sizeof(v) == sizeof(char) ? (long long) (char) (v) : \ + sizeof(v) == sizeof(short) ? (long long) (short) (v) : \ sizeof(v) == sizeof(int) ? (long long) (int) (v) : \ sizeof(v) == sizeof(long) ? (long long) (long) (v) : \ (long long) (v))