[lkml]   [2008]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] kernel/time.c: Silence gcc warning 'integer constant to large for long type'

    On Fri, 2 May 2008, H. Peter Anvin wrote:
    > kernel/time.c: In function msecs_to_jiffies:
    > kernel/time.c:479: warning: integer constant is too large for long type

    Shouldn't we fix the perl-script to mark the constants appropriately
    typed? Ie add the proper "ul" or "ull" endings there as necessary?

    For example, I see

    #define MSEC_TO_HZ_ADJ64 0x18000000000000000

    in the auto-generated timeconst.h file, and the fact is, that's a really
    really ugly constant. It simply doesn't even fit in a u64. Why do these
    kinds of pointless and useless #define even get generated, when using them
    would inevitably be a bug anyway?

    As to the ones that *do* fit in 64 bits, they should still haev the
    correct "ul" and "ull" endings on 64- and 32-bit architectures
    respectively. Yeah, hex constants are always unsigned and the compiler
    will expand them to the right size, but the compiler is also rigth to warn
    about it (and casting them shouldn't even change that fact, even if it
    happens to do so with gcc).


     \ /
      Last update: 2008-05-02 23:17    [W:0.020 / U:52.228 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site