]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
If PRIdMAX, PRIoMAX, PRIuMAX, and PRIxMAX are
authorJim Meyering <jim@meyering.net>
Mon, 3 Jan 2005 18:43:09 +0000 (18:43 +0000)
committerJim Meyering <jim@meyering.net>
Mon, 3 Jan 2005 18:43:09 +0000 (18:43 +0000)
not all defined and either ULONG_MAX or ULLONG_MAX is not defined,
then fail at compile-time rather than let tools like od produce
invalid results at run time.

src/system.h

index 27aff00d799056e86af29ef261be1d90d7e7a918..9fd123812ca09ae23bbd44b551bc41157283a9a2 100644 (file)
@@ -368,28 +368,38 @@ initialize_exit_failure (int status)
 # include <stdint.h>
 #endif
 
-#if ULONG_MAX < ULLONG_MAX
-# define LONGEST_MODIFIER "ll"
-#else
-# define LONGEST_MODIFIER "l"
-#endif
 #if PRI_MACROS_BROKEN
 # undef PRIdMAX
 # undef PRIoMAX
 # undef PRIuMAX
 # undef PRIxMAX
 #endif
+
+#if ULONG_MAX < ULLONG_MAX
+# define LONGEST_MODIFIER "ll"
+#else
+# define LONGEST_MODIFIER "l"
+#endif
+
 #ifndef PRIdMAX
 # define PRIdMAX LONGEST_MODIFIER "d"
+# defined USED_LONGEST_MODIFIER
 #endif
 #ifndef PRIoMAX
 # define PRIoMAX LONGEST_MODIFIER "o"
+# defined USED_LONGEST_MODIFIER
 #endif
 #ifndef PRIuMAX
 # define PRIuMAX LONGEST_MODIFIER "u"
+# defined USED_LONGEST_MODIFIER
 #endif
 #ifndef PRIxMAX
 # define PRIxMAX LONGEST_MODIFIER "x"
+# defined USED_LONGEST_MODIFIER
+#endif
+
+#if USED_LONGEST_MODIFIER && (!defined ULONG_MAX || !defined ULLONG_MAX)
+# error "your PRI.MAX macros are broken and we don't work around it"
 #endif
 
 #include <ctype.h>