[pacman-dev] [PATCH] Fix compile error with clang-2.8
Allan McRae
allan at archlinux.org
Thu Oct 7 09:03:09 EDT 2010
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:
>> Signed-off-by: Allan McRae<allan at archlinux.org>
>> ---
>>
>> wint_t appears to be the same as size_t or unsigned long. It probably best if
>> someone checks that is the right format specifier on x86_64 too...
>
> man wchar.h:
> The implementation shall support one or more programming environments
> in which the width of wint_t is no greater than the width of type long.
>
> 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.
More information about the pacman-dev
mailing list