------- Comment #2 from l dot lunak at suse dot cz 2008-03-22 23:15 ------- When you say the warning is wrong, you presumably mean "passing argument 1 of foo makes integer from pointer without a cast", but this bugreport is about (the absence of) "passing NULL to non-pointer argument 1 of void foo(int)", which is a valid warning. I think nobody in their right mind would try to feed NULL to foo(int), they should use 0 if they want an integer - why would NULL be __null then instead of 0?
Using -Wconversion helps with getting the warning, but it also causes warnings for normal common things like foo(2*0.5). While foo(NULL) is almost certainly a bug somewhere (and I saw such one for real myself), foo(2*0.5) is quite common, almost always harmless, and would require making the code more ugly by using explicit casts. Would it be possible to get a warning about an almost certain bug without many warnings about something almost certainly harmless? -- l dot lunak at suse dot cz changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement Status|RESOLVED |UNCONFIRMED Resolution|WORKSFORME | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35669