[SSSD] [PATCH] Add support for explicit 32/64 bit numbers

Dmitri Pal dpal at redhat.com
Tue Apr 13 17:02:32 UTC 2010


Jakub Hrozek wrote:
> On 04/13/2010 04:39 PM, Dmitri Pal wrote:
> > Jakub Hrozek wrote:
> >> On 04/12/2010 05:13 PM, Dmitri Pal wrote:
> >>> Hello
> >>> The attached patch adds 4 conversion functions capable
> >>> of handling the following types of the values:
> >>> int32_t, int64_t, uint32_t and uint64_t
> >>
> >> Ack to the code, but there is one thing to fix in the unit test:
> >> the %lld format specifier for int64_t is correct on 32bit architectures
> >> only, on 64bit the correct specifier is %ld - so the code emits a
> >> compiler warning on 64bit.
> >>
> >> Martin suggested that the values should be always casted up to long
> long
> >> - it will have some performance penalty, but since this is tracing code
> >> only, it doesn't matter. If we ever need to print exact-sized values in
> >> production code, we can use the C99 set of PRId64/PRId32 macros.
> > Can you post the warning?
> > I do not understand what line generates it.
> > All macros have explicit type cast.
> > There should not be a warning.
> > May be I am using signed when it should be unsigned? Then it should be a
> > bug...
>
>
> The warnings are as follows:
>
> -----
> ini_config_ut.c: In function get_test:
> ini_config_ut.c:1169: warning: format %lld expects type long long
> int, but argument 2 has type int64_t
> ini_config_ut.c:1203: warning: format %llu expects type long long
> unsigned int, but argument 2 has type uint64_t
> -----
>
> You will not see them on your 32bit system as the formatting string is
> correct for a 32bit system, it is not for a 64bit one, where a '%ld'
> would be correct.
>
> Either casting the value "long long" or "unsigned long long" or using
> the C99 PRI macros would solve the issue.
Ah thanks!

Now I see it:

    COLOUT(printf("Value: %lld\n", val_int64));

Should be:

    COLOUT(printf("Value: %lld\n", (long long)val_int64));

I will send an updated patch shortly



__

_____________________________________________
sssd-devel mailing list
sssd-devel at lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/sssd-devel

-- 
Thank you,
Dmitri Pal

Engineering Manager IPA project,
Red Hat Inc.


-------------------------------
Looking to carve out IT costs?
www.redhat.com/carveoutcosts/




More information about the sssd-devel mailing list