[pacman-dev] [PATCH] Fix compile error with clang-2.8

Rémy Oudompheng remyoudompheng at gmail.com
Thu Oct 7 09:05:01 EDT 2010

Allan McRae <allan at archlinux.org> wrote:
> On 07/10/10 22:50, Dan McGee wrote:
>> On Wed, Oct 6, 2010 at 8:40 PM, Allan McRae<allan at archlinux.org>  wrote:

>> man printf(3):
>>        l      (ell) A following integer conversion corresponds to a
>> long int or unsigned long int argument, or a following n conversion
>> corre‐
>>               sponds to a pointer to a long int argument, or a
>> following c conversion corresponds to a wint_t argument, or a
>> following s  con‐
>>               version corresponds to a pointer to wchar_t argument.
>> So we should really be using '%lc', it sounds like clang is busted...
>> What does printf("%ls", p) give you? This isn't actually right because
>> we don't want to print the full string, just one character, but it
>> would be interesting to see if they implemented half of the spec.
> Same error with %ls.
> util.c:264:13: error: conversion specifies type 'int *' but the argument has
>      type 'wint_t' (aka 'unsigned int') [-Wformat]
>                printf("%ls", (wint_t)*p);
>                        ~~^   ~~~~~~~~~~
>                        %u
> 1 error generated.

I may be a C newbie, but is (wint_t)*p the same as (wint_t)(*p) ? It
would explain the pointer/integer confusion.

More information about the pacman-dev mailing list