http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59850
--- Comment #12 from Josh Triplett <josh at joshtriplett dot org> --- (In reply to Tom Tromey from comment #9) > (In reply to Josh Triplett from comment #7) > > > I can't think of a legitimate reason to have a null pointer constant in a > > non-zero address space; there's already a null pointer constant, NULL, > > effectively in all address spaces, so why would you want to redefine it? > > > That isn't a null pointer constant, since it isn't (void *); it can't be > > converted to any other pointer type without warning, and I don't think it's > > unreasonable to say it can't be converted to any other address space without > > warning either. > > Thanks. While the one case did seem borderline to me, overall my > concern is really about trying to understand all the cases, so I can > document the feature nicely. For the documentation, I'd suggest making it very clear that the magic "works in all addresss spaces" behavior applies only to NULL ((void *)0), not to any arbitrary pointer with the value 0.