efriedma added inline comments.

================
Comment at: include/clang/Basic/DiagnosticSemaKinds.td:6031
   InGroup<PointerArith>;
+def ext_gnu_null_ptr_arith : Extension<
+  "arithmetic on a null pointer treated as a cast from integer to pointer is a 
GNU extension">,
----------------
andrew.w.kaylor wrote:
> efriedma wrote:
> > andrew.w.kaylor wrote:
> > > efriedma wrote:
> > > > "extension" isn't really right here; this shouldn't be an error in 
> > > > -pedantic-errors mode.  Probably best to just stick this into the 
> > > > NullPointerArithmetic, like the other new warning.
> > > So how should a word the warning?  Just this:
> > > 
> > > "arithmetic on a null pointer treated as a cast from integer to pointer"?
> > That wasn't what I meant; the current wording is fine. I meant this should 
> > be something like `def warn_gnu_null_ptr_arith : Warning<`.
> OK.  I think I understand the behavior you wanted.  I just thought maybe the 
> current wording might be technically incorrect.  I wasn't sure how precisely 
> defined we consider "extension" to be in this context.
The part that makes this a little weird is that unlike most extensions, this 
code is already well-formed.  It's an extension because we're guaranteeing 
runtime behavior for a construct which has undefined behavior at runtime 
according to the standard.  (This is in contrast to "implementation-defined" 
behaviors, which are the gaps in the standard we're allowed to fill in as we 
see fit.)

Given that, I think calling it a "GNU extension" in the text is fine.


https://reviews.llvm.org/D37042



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to