On Fri, May 18, 2018 at 2:56 PM Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxxx> wrote: > /usr/include/x86_64-linux-gnu/sys/sysmacros.h:79:1: warning: constant 0xfffff00000000000u is so big it is unsigned long > /usr/include/x86_64-linux-gnu/sys/sysmacros.h:80:1: warning: constant 0x00000ffffff00000u is so big it is unsigned long I do wonder if we should just remove this warning, at least for files that have been looked up using the system include directories. This warning keeps on happening, and nobody ever seems to much care. And that's because it often warns for code that is "obviously correct" (like your example), which is a mark of a bad warning. It's not like the implicit type changes ever drops bits, or even does anything truly surprising. The "do_warn & 2" case where C99 and C90 compilers actually have different types, now _that_ is worth warning for. And we do warn for actual lost bits in implicit casts, so if people use a constant that is too large in a context where it then loses bits, we give that other warning warning: cast truncates bits from constant value (abc becomes xyz) so the value of the odd constant sizing warning is debatable. Maybe we could move it to pedantic warnings? Linus -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html