* lib/intprops-internal.h (_GL_INT_NEGATE_CONVERT): Remove macro.
(_GL_EXPR_SIGNED, _GL_INT_MAXIMUM): Use _GL_INT_CONVERT instead.
* lib/intprops.h (_GL_DIVIDE_OVERFLOW, _GL_REMAINDER_OVERFLOW):
Likewise.
2025-09-10 Bruno Haible <bruno@clisp.org>
+ intprops, stdckdint-h: Remove support for IRIX.
+ * lib/intprops-internal.h (_GL_INT_NEGATE_CONVERT): Remove macro.
+ (_GL_EXPR_SIGNED, _GL_INT_MAXIMUM): Use _GL_INT_CONVERT instead.
+ * lib/intprops.h (_GL_DIVIDE_OVERFLOW, _GL_REMAINDER_OVERFLOW):
+ Likewise.
+
getprogname: Remove support for IRIX.
* lib/getprogname.c: Remove code for IRIX.
* modules/getprogname (Depends-on): Likewise.
Do not evaluate E. */
#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v))
-/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
- <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>. */
-#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v))
-
/* The extra casts in the following macros work around compiler bugs,
e.g., in Cray C 5.0.3.0. */
/* Return 1 if the real expression E, after promotion, has a
signed or floating type. Do not evaluate E. */
-#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+#define _GL_EXPR_SIGNED(e) (_GL_INT_CONVERT (e, -1) < 0)
/* Minimum and maximum values for integer types and expressions. */
#define _GL_INT_MAXIMUM(e) \
(_GL_EXPR_SIGNED (e) \
? _GL_SIGNED_INT_MAXIMUM (e) \
- : _GL_INT_NEGATE_CONVERT (e, 1))
+ : _GL_INT_CONVERT (e, -1))
#define _GL_SIGNED_INT_MAXIMUM(e) \
(((_GL_INT_CONVERT (e, 1) << (_GL_TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1)
|| INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
#endif
#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \
- ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
+ ((min) < 0 ? (b) == _GL_INT_CONVERT (min, -1) && (a) < - (max) \
: (a) < 0 ? (b) <= (a) + (b) - 1 \
: (b) < 0 && (a) + (b) <= (a))
#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \
- ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
+ ((min) < 0 ? (b) == _GL_INT_CONVERT (min, -1) && (a) < - (max) \
: (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \
: (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))