On Tue, Jul 23, 2013 at 8:57 PM, Guy Harris <g...@alum.mit.edu> wrote:

>
> On Jul 22, 2013, at 7:00 AM, Alexis La Goutte <alexis.lagou...@gmail.com>
> wrote:
>
> > I try also in my Ubunux box (12.04) with clang 3.0 ( Ubuntu clang
> version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0) Target:
> x86_64-pc-linux-gnu Thread model: posix )
> >
> > and i have the following error when i try to build with clang :
> >
> > [  4%] Building C object wiretap/CMakeFiles/wiretap.dir/file_wrappers.c.o
> > /home/alagoutte/wireshark2/wiretap/file_wrappers.c:818:13: error:
> implicit conversion loses integer precision:
> >       '__blksize_t' (aka 'long') to 'int' [-Werror,-Wshorten-64-to-32]
> >                 want = st.st_blksize;
> >                      ~ ~~~^~~~~~~~~~
>
> I guess Linux is prepared for the world when files should be read in
> chunks bigger than 2GB.
>
> I've checked in a change to check whether st.st_blksize <= G_MAXINT and:
>
>         if it is, cast st.st_blksize to int before assigning it;
>
>         if it isn't, just leave "want" at the default value.
>
> Try it now.
>
> > Have also for all file the following warning...
> > warning: unknown warning option '-Wpragmas' [-Wunknown-warning-option]
>
> This change:
>
>
> http://anonsvn.wireshark.org/viewvc/trunk/CMakeLists.txt?r1=50760&r2=50759&pathrev=50760
>
> *should* have made CMake use -Werror=unknown-warning-option when testing
> whether -W options are supported if the compiler supports
> -Werror=unknown-warning-option, so it *should* leave out all -W options
> that clang doesn't support.
>
> If that's not happening, that needs to be fixed.


Hi,

I have always some errors when i build with clang 3.0 (with cmake or
autotools):

dumpcap.c:3981:88: error: implicit conversion loses integer precision:
'const __suseconds_t'
      (aka 'const long') to 'guint32' (aka 'unsigned int')
[-Werror,-Wshorten-64-to-32]

phdr->ts.tv_sec, phdr->ts.tv_usec,

~~~~~~~~~^~~~~~~
dumpcap.c:3989:73: error: implicit conversion loses integer precision:
'const __suseconds_t'
      (aka 'const long') to 'guint32' (aka 'unsigned int')
[-Werror,-Wshorten-64-to-32]
                                              phdr->ts.tv_sec,
phdr->ts.tv_usec,

~~~~~~~~~^~~~~~~
wiretap/lanalyzer.c:643:24: error: implicit conversion loses integer
precision: 'const __suseconds_t'
      (aka 'const long') to 'gint32' (aka 'int')
[-Werror,-Wshorten-64-to-32]
      gint32 usec = a->tv_usec;
             ~~~~   ~~~^~~~~~~

Fixed with add (gint32) cast before tv_usec :

-      gint32 usec = a->tv_usec;
+      gint32 usec = (gint32)a->tv_usec;

I have also a another issue :

dumpcap.c:4273:20: error: array index of '3' indexes past the end of an
array
      (that contains 3 elements) [-Werror,-Warray-bounds]
        if (strcmp("-Z", argv[i]) == 0) {
            ~~~~~~~^~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/string2.h:812:21: note: expanded from:
            : __strcmp_cg (s1, s2,
__s1_len))                                 \
                           ^
/usr/include/x86_64-linux-gnu/bits/string2.h:885:27: note: expanded from:
                                          (__const char *)
(s1))[3]          \
                                                             ^    ~
But now yet found a fix...
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to