8000 Xcode warning on `result = iconv` in mz_os_posix.c · Issue #386 · zlib-ng/minizip-ng · GitHub
[go: up one dir, main page]

Skip to content

Xcode warning on result = iconv in mz_os_posix.c #386

Closed

Description

@Coeur

I'm in the process of migrating minizip 1.2 to 2.8.6 on Apple platforms, using 'HAVE_ARC4RANDOM_BUF HAVE_INTTYPES_H HAVE_PKCRYPT HAVE_STDINT_H HAVE_WZAES HAVE_ZLIB' and including libs z and iconv, as seen on the temporary branch https://github.com/ZipArchive/ZipArchive/tree/minizip286.

Now, using iconv is new (compared to minizip 1.2), and its signature on Apple platforms is:

extern __LIBICONV_DLL_EXPORTED size_t iconv (iconv_t __cd, char* * __restrict __inbuf, size_t * __restrict __inbytesleft, char* * __restrict __outbuf, size_t * __restrict __outbytesleft);

Where size_t is an unsigned long, so it produces that warning:

mz_os_posix.c:73:18: Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int32_t' (aka 'int')

I'm also a bit surprised that you're going to compare an unsigned long casted to an int with the value -1 a few lines below. So there may be something to change here.
Screen Shot 2019-05-01 at 1 30 16 PM

Activity

  1. nmoinvaz commented on May 1, 2019

    @nmoinvaz
    Member

    From the linux manpages:

    The iconv() function returns the number of characters converted in a
    nonreversible way during this call; reversible conversions are not
    counted. In case of error, it sets errno and returns (size_t) -1.

    http://man7.org/linux/man-pages/man3/iconv.3.html

    Probably we need to cast -1 to size_t when comparing.

  2. nmoinvaz commented on May 1, 2019

    @nmoinvaz
    Member

    Ok that should fix it, let me know if it doesn't. Thanks for reporting it.

  3. added
    compilationIssues related to compiling source code
    fixedIssue or bug has been fixed
    on May 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    compilationIssues related to compiling source codefixedIssue or bug has been fixed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0