On Fri, 6 Dec 2024 at 10:52, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > This may be a case of "we just need to disable that incorrect compiler > warning". Or does anybody see a workaround? Hmm. The "== 0" thing does work, but as mentioned, that causes (more valid, imho) warnings with pointers. And it's not necessarily require that a pointer expression actually be marked as a constant, as for the fact that these macros often get used in various arbitrary contexts where things *might* be pointers, even if "not constant" is a perfectly fine answer. We do actually consciously use __builtin_constant_p() on pointers. It's very convenient for format strings in particular, where __builtin_constant_p() is a good test for a constant string, which sometimes gets treated differently. And in fact, dealing with NULL pointers statically might be worth it too, so I do think it's worth keeping in mind. Linus