Re: Tracing feature in the client side

Maksim Ivanov <[email protected]>
Newsgroups gmane.comp.lib.muscle
Message-ID <CAH=wB8z9Q3_p-dq3KoCAAdb8YRUxEmZZu8=An_FRw3Q=wDxD3w@mail.gmail.com>
> What version of clang do you use to get this warning?
> I used "Debian clang version 3.6.2-3" with -Wformat but did not get this
> warning.

As I wrote in the first post, I was using clang 3.7.0. (This is the
compiler currently used in Chrome's Native Client SDK.)


On Fri, Mar 11, 2016 at 2:01 PM, Ludovic Rousseau
<[email protected]> wrote:
>
>
> 2016-03-11 13:49 GMT+01:00 Maksim Ivanov <[email protected]>:
>>
>> Hello Ludovic,
>>
>> >>
>> >> Second, there is an inconsistency between the printf format specifier
>> >> and the passed value in the trace function, that produces a warning.
>> >> E.g. with clang 3.7.0:
>> >>
>> >> > pcsc-lite/src-1.8.15/src/winscard_clnt.c:162:14: error: format
>> >> > specifies type 'unsigned long' but the argument has type 'pthread_t'
>> >> >       (aka 'struct __nc_basic_thread_data *') [-Werror,-Wformat]
>> >> >                 direction, pthread_self(), func);
>> >> >                            ^~~~~~~~~~~~~~
>> >
>> >
>> > Can you propose a patch for that?
>> >
>> > pthread_t may not be a numerical value. It may be a structure.
>> > http://stackoverflow.com/questions/1759794/how-to-print-pthread-t
>>
>> I could propose a patch, but in that case we would have to bother with
>> licensing (at least, Google Inc. will have to be included into the
>> copyright authors list).
>
>
> :-)
>
>>
>> Anyway, I don't have a very nice solution for this problem too.
>> Simple, but theoretically non-portable, way would be to cast pthread_t
>> to 64-bit integer type (for example, that's how it's done in Chromium
>> - as the last-resort solution on the platforms without more useful
>> mechanisms:
>> <https://cs.chromium.org/#chromium/src/base/threading/platform_thread_posix.cc&l=128>
>> ).
>
>
> That is also what I had in mind as an easy solution.
>
>>
>> Portable, but tedious, way would be to write a function that dumps the
>> passed data byte-by-byte.
>>
>> IMO, the simplest solution with casting may be enough, as this anyway
>> applies to the code that is disabled by default.
>
>
> What version of clang do you use to get this warning?
> I used "Debian clang version 3.6.2-3" with -Wformat but did not get this
> warning.
>
> Bye
>
> --
>  Dr. Ludovic Rousseau
>
> _______________________________________________
> Pcsclite-muscle mailing list
> [email protected]
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pcsclite-muscle
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.