]> granicus.if.org Git - strace/commitdiff
tests: add sign_extend_unsigned_to_ll macro
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 31 Aug 2016 16:09:24 +0000 (16:09 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 31 Aug 2016 16:09:24 +0000 (16:09 +0000)
* tests/tests.h (sign_extend_unsigned_to_ll): New macro from defs.h.

tests/tests.h

index d4607f24c81cada56dcc1c035f359a9547cde9e0..81abe826ab6e47d19f6570ef9b8f31a853e89a1f 100644 (file)
@@ -120,15 +120,20 @@ int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int);
 # define ARRAY_SIZE(arg) ((unsigned int) (sizeof(arg) / sizeof((arg)[0])))
 # define LENGTH_OF(arg) ((unsigned int) sizeof(arg) - 1)
 
-/*
- * Zero-extend a signed integer type to unsigned long long.
- */
+/* 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(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(int) ? (long long) (int) (v) : \
+        sizeof(v) == sizeof(long) ? (long long) (long) (v) : \
+        (long long) (v))
+
 # define SKIP_MAIN_UNDEFINED(arg) \
        int main(void) { error_msg_and_skip("undefined: %s", arg); }