Subject: bug#7200: closed (Re: bug#7200: [PATCH] mbsalign: avoid warning with Solaris 10 cc)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 17 Apr 2011 08:58:03 +0000

Your bug report

#7200: [PATCH] mbsalign: avoid warning with Solaris 10 cc

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
7200: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7200
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#7200: [PATCH] mbsalign: avoid warning with Solaris 10 cc
From: Jim Meyering <[email-masked]>
To: [email-masked]
Date: Sun, 17 Apr 2011 10:57:17 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

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.

Subject: [PATCH] mbsalign: avoid warning with Solaris 10 cc
From: Paul Eggert <[email-masked]>
To: Bug-coreutils <[email-masked]>
Date: Tue, 12 Oct 2010 12:33:26 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

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 <[email-masked]>
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