git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 83ccc85)
Cast result of i64abs() back to int64
2025年3月28日 13:05:45 +0000 (14:05 +0100)
2025年3月28日 13:34:57 +0000 (14:34 +0100)
Without the cast, the return type could be long or long long,
depending on what int64 is underneath. This doesn't affect code
correctness, but it could result in format-mismatch warnings when
attempting to printf such values using PRId64.

Reported-by: Thomas Munro <thomas.munro@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/CA+hUKGJc4s+Wyb3EFOQNN9VVK+Qv40r2LK41o9PkS9ThxviTvQ@mail.gmail.com


diff --git a/src/include/c.h b/src/include/c.h
index 72a3fd10b416dcebfdacd071075a7b8317621f92..8cdc16a0f4a9b4d2a8638981a9e574405846cd3a 100644 (file)
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -1278,9 +1278,9 @@ extern int fdatasync(int fildes);
* Similarly, wrappers around labs()/llabs() matching our int64.
*/
#if SIZEOF_LONG == 8
-#define i64abs(i) labs(i)
+#define i64abs(i) ((int64) labs(i))
#elif SIZEOF_LONG_LONG == 8
-#define i64abs(i) llabs(i)
+#define i64abs(i) ((int64) llabs(i))
#else
#error "cannot find integer type of the same size as int64_t"
#endif
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /