GNU bug report logs - #7200
[PATCH] mbsalign: avoid warning with Solaris 10 cc

Previous Next

Package: coreutils;

Reported by: Paul Eggert <eggert <at> cs.ucla.edu>

Date: Tue, 12 Oct 2010 19:31:02 UTC

Severity: normal

Tags: patch

Done: Jim Meyering <jim <at> meyering.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Jim Meyering <jim <at> meyering.net>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#7200: closed ([PATCH] mbsalign: avoid warning with Solaris 10 cc)
Date: Sun, 17 Apr 2011 08:58:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 17 Apr 2011 10:57:17 +0200
with message-id <877hatdzma.fsf <at> rho.meyering.net>
and subject line Re: bug#7200: [PATCH] mbsalign: avoid warning with Solaris 10 cc
has caused the GNU bug report #7200,
regarding [PATCH] mbsalign: avoid warning with Solaris 10 cc
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
7200: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7200
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Bug-coreutils <bug-coreutils <at> gnu.org>
Subject: [PATCH] mbsalign: avoid warning with Solaris 10 cc
Date: Tue, 12 Oct 2010 12:33:26 -0700
For the Oct. 10 snapshot Solaris 10 cc issues this warning:

"mbsalign.c", line 135: warning: initializer does not fit or is out of range: -1

This is just a warning and doesn't break anything, but it's trivial to fix:


From 879d26601a7423e847fbc566ff7cea83ec7ed4e9 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert <at> cs.ucla.edu>
Date: Tue, 12 Oct 2010 12:31:13 -0700
Subject: [PATCH] mbsalign: avoid warning with Solaris 10 cc

* gl/lib/mbsalign.c: Include <stdint.h> for SIZE_MAX.
Use SIZE_MAX rather than (size_t) -1, to avoid warning for
"size_t x = -1" on Solaris 10 cc.
* gl/modules/mbsalign (Depends-on): Add stdint.
---
 gl/lib/mbsalign.c   |    9 +++++----
 gl/modules/mbsalign |    1 +
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/gl/lib/mbsalign.c b/gl/lib/mbsalign.c
index 117e4bf..d588432 100644
--- a/gl/lib/mbsalign.c
+++ b/gl/lib/mbsalign.c
@@ -22,6 +22,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
+#include <stdint.h>
 #include <stdbool.h>
 #include <limits.h>
 #include <wchar.h>
@@ -124,7 +125,7 @@ mbs_align_pad (char *dest, const char* dest_end, size_t n_spaces)
    Return the length in bytes required for the final result, not counting
    the trailing NUL.  A return value of DEST_SIZE or larger means there
    wasn't enough space.  DEST will be NUL terminated in any case.
-   Return (size_t) -1 upon error (invalid multi-byte sequence in SRC,
+   Return SIZE_MAX upon error (invalid multi-byte sequence in SRC,
    or malloc failure), unless MBA_UNIBYTE_FALLBACK is specified.
    Update *WIDTH to indicate how many columns were used before padding.  */
 
@@ -132,7 +133,7 @@ size_t
 mbsalign (const char *src, char *dest, size_t dest_size,
           size_t *width, mbs_align_t align, int flags)
 {
-  size_t ret = -1;
+  size_t ret = SIZE_MAX;
   size_t src_size = strlen (src) + 1;
   char *newstr = NULL;
   wchar_t *str_wc = NULL;
@@ -149,7 +150,7 @@ mbsalign (const char *src, char *dest, size_t dest_size,
   if (MB_CUR_MAX > 1)
     {
       size_t src_chars = mbstowcs (NULL, src, 0);
-      if (src_chars == (size_t) -1)
+      if (src_chars == SIZE_MAX)
         {
           if (flags & MBA_UNIBYTE_FALLBACK)
             goto mbsalign_unibyte;
@@ -277,7 +278,7 @@ ambsalign (const char *src, size_t *width, mbs_align_t align, int flags)
       buf = nbuf;
       *width = orig_width;
       req = mbsalign (src, buf, size, width, align, flags);
-      if (req == (size_t) -1)
+      if (req == SIZE_MAX)
         {
           free (buf);
           buf = NULL;
diff --git a/gl/modules/mbsalign b/gl/modules/mbsalign
index 9d923b2..7f9c974 100644
--- a/gl/modules/mbsalign
+++ b/gl/modules/mbsalign
@@ -10,6 +10,7 @@ wchar
 wctype
 wcwidth
 mempcpy
+stdint
 
 configure.ac:
 
-- 
1.7.2



[Message part 3 (message/rfc822, inline)]
From: Jim Meyering <jim <at> meyering.net>
To: 7200-done <at> debbugs.gnu.org
Subject: Re: bug#7200: [PATCH] mbsalign: avoid warning with Solaris 10 cc
Date: Sun, 17 Apr 2011 10:57:17 +0200
Jim Meyering wrote:
> Paul Eggert wrote:
>> For the Oct. 10 snapshot Solaris 10 cc issues this warning:
>>
>> "mbsalign.c", line 135: warning: initializer does not fit or is out of range: -1
>>
>> This is just a warning and doesn't break anything, but it's trivial to fix:
>
> This too looks safe enough.
> Feel free to push that.
>
>> Subject: [PATCH] mbsalign: avoid warning with Solaris 10 cc
>>
>> * gl/lib/mbsalign.c: Include <stdint.h> for SIZE_MAX.
>> Use SIZE_MAX rather than (size_t) -1, to avoid warning for
>> "size_t x = -1" on Solaris 10 cc.
>> * gl/modules/mbsalign (Depends-on): Add stdint.

Patched 6 months ago.  Closing.


This bug report was last modified 14 years and 99 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.