On Aug 22, 2009, at 4:42 PM, Eli Friedman wrote: > On Sat, Aug 22, 2009 at 4:36 PM, Chris Lattner<[email protected]> > wrote: >> >> On Aug 22, 2009, at 4:08 PM, Eli Friedman wrote: >> >>> On Sat, Aug 22, 2009 at 11:58 AM, Chris Lattner<[email protected]> >>> wrote: >>>> >>>> Author: lattner >>>> Date: Sat Aug 22 13:58:31 2009 >>>> New Revision: 79743 >>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=79743&view=rev >>>> Log: >>>> tweak some pointer sema checking stuff (which was added to >>>> implement >>>> PR4175) to >>>> avoid emitting a warning on "someptr > 0". This is obviously >>>> questionable (they >>>> could use != instead) but is reasonable, and the warning "ordered >>>> comparison >>>> between pointer and integer" didn't make a ton of sense because 0 >>>> is a >>>> valid >>>> null pointer constant. >>> >>> Sure, but the standard requires us to warn... it would be okay to >>> split it into a separate warning, though. >> >> It does? Citation? > > C99 6.5.8p2: > One of the following shall hold: > -- both operands have real type; > -- both operands are pointers to qualified or unqualified versions of > compatible object types; or > -- both operands are pointers to qualified or unqualified versions of > compatible incomplete types. > > None of those hold, so it's a constraint violation. Note that > equality operators make an explicit allowance for null pointer > constants.
Aha, cute! I forgot that relational differed from equality in this respect, thank you! Fixed in r79791. -Chris _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
