http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48851
--- Comment #9 from Michael Matz <matz at gcc dot gnu.org> 2011-05-04 12:02:44 UTC --- Also defining NULL as "0" creates problems when passing it to varargs functions on LP64 platforms, not just for sentinels. As Andreas says, it's a valid null pointer constant, but a terribly stupid choice for NULL.