diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2012-02-02 04:28:02 -0600 |
---|---|---|
committer | Jonathan Nieder <jrnieder@gmail.com> | 2012-02-02 05:33:37 -0600 |
commit | 5b8bf02930674a5c2cba42d919ba3c0c96bf58e4 (patch) | |
tree | 543bae56c4a1efc12bd1c6569fbf4753b88b9c7b | |
parent | 2d54b9ea8b99df7b448f64a7847f7f3879964e12 (diff) | |
download | git-5b8bf02930674a5c2cba42d919ba3c0c96bf58e4.tar.gz git-5b8bf02930674a5c2cba42d919ba3c0c96bf58e4.tar.xz |
vcs-svn: suppress -Wtype-limits warning
On 32-bit architectures with 64-bit file offsets, gcc 4.3 and earlier
produce the following warning:
CC vcs-svn/sliding_window.o
vcs-svn/sliding_window.c: In function `check_overflow':
vcs-svn/sliding_window.c:36: warning: comparison is always false \
due to limited range of data type
The warning appears even when gcc is run without any warning flags
(PR12963). In later versions it can be reproduced with -Wtype-limits,
which is implied by -Wextra.
On 64-bit architectures it really is possible for a size_t not to be
representable as an off_t so the check being warned about is not
actually redundant. But even false positives are distracting. Avoid
the warning by making the "len" argument to check_overflow a
uintmax_t; no functional change intended.
Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
-rw-r--r-- | vcs-svn/sliding_window.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vcs-svn/sliding_window.c b/vcs-svn/sliding_window.c index c6c2effd3..ec2707c9c 100644 --- a/vcs-svn/sliding_window.c +++ b/vcs-svn/sliding_window.c @@ -31,15 +31,15 @@ static int read_to_fill_or_whine(struct line_buffer *file, return 0; } -static int check_offset_overflow(off_t offset, size_t len) +static int check_offset_overflow(off_t offset, uintmax_t len) { if (len > maximum_signed_value_of_type(off_t)) return error("unrepresentable length in delta: " - "%"PRIuMAX" > OFF_MAX", (uintmax_t) len); + "%"PRIuMAX" > OFF_MAX", len); if (signed_add_overflows(offset, (off_t) len)) return error("unrepresentable offset in delta: " "%"PRIuMAX" + %"PRIuMAX" > OFF_MAX", - (uintmax_t) offset, (uintmax_t) len); + (uintmax_t) offset, len); return 0; } |