The Intel compiler 9.0 gives these warnings on GNU/Linux:

| ../../gllib/unistr/u16-chr.c(39): warning #266: function declared implicitly
|       switch (u16_uctomb_aux (c, uc, 2))
| 
| ../../gllib/unistr/u8-chr.c(39): warning #266: function declared implicitly
|       switch (u8_uctomb_aux (c, uc, 6))

Similar for u{8,16}-strchr.c.

The difference to GCC here is that the __NO_INLINE__ test (whether the
compiler generally respects inline) gives false.

The patch below gets rid of the warning.  OK to apply?

Cheers,
Ralf

2007-10-28  Ralf Wildenhues  <[EMAIL PROTECTED]>

        * lib/unistr.h [GNULIB_UNISTR_U8_UCTOMB] (u8_uctomb_aux):
        Declare also if !HAVE_INLINE.
        [GNULIB_UNISTR_U16_UCTOMB] (u16_uctomb_aux): Likewise.

diff --git a/lib/unistr.h b/lib/unistr.h
index a645292..944c75b 100644
--- a/lib/unistr.h
+++ b/lib/unistr.h
@@ -297,12 +297,12 @@ extern int
    must be specified.  */
 
 #ifdef GNULIB_UNISTR_U8_UCTOMB
+extern int
+       u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n);
 # if !HAVE_INLINE
 extern int
        u8_uctomb (uint8_t *s, ucs4_t uc, int n);
 # else
-extern int
-       u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n);
 static inline int
 u8_uctomb (uint8_t *s, ucs4_t uc, int n)
 {
@@ -318,12 +318,12 @@ u8_uctomb (uint8_t *s, ucs4_t uc, int n)
 #endif
 
 #ifdef GNULIB_UNISTR_U16_UCTOMB
+extern int
+       u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n);
 # if !HAVE_INLINE
 extern int
        u16_uctomb (uint16_t *s, ucs4_t uc, int n);
 # else
-extern int
-       u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n);
 static inline int
 u16_uctomb (uint16_t *s, ucs4_t uc, int n)
 {


Reply via email to