On Feb 1, 2014, at 7:42 PM, James Dennett <[email protected]> wrote:
> On Sat, Feb 1, 2014 at 6:05 PM, Dmitri Gribenko <[email protected]> wrote: >> On Fri, Jan 31, 2014 at 7:51 AM, Argyrios Kyrtzidis <[email protected]> >> wrote: >>> Author: akirtzidis >>> Date: Fri Jan 31 01:51:32 2014 >>> New Revision: 200521 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=200521&view=rev >>> Log: >>> [Sema] For -Wnon-literal-null-conversion warning, look through integer >>> casts, which are used >>> by some projects in their null macro. >> >> Hi Argyrios, >> >> I wonder, why isn't this handled automatically by >> Expr::isNullPointerConstant -- it should be evaluating the whole >> constant expression in this case. >> >> Dmitri > > I think we might not want to do this (i.e., we may wish to revert the patch). > > A goal of -Wnon-literal-null-conversion is to match rules proposed for > C++14 (and possibly C++11 as a fix for core defect 903), and in those > rules only integer literals (and nullptr) are valid null pointer > constants. The C++14 draft N3690 says "A null pointer constant is an > integer literal (2.14.2) with value zero or a prvalue of type > std::nullptr_t." > > The previous implementation of -Wnon-literal-null-conversion would > warn those projects so that they could fix their code. With this > change (r200521), their (newly) non-conforming code won't be > diagnosed. > > Likely we need to improve the documentation of this diagnostic in any > case. The best extant description seems to be the commit message from > http://llvm.org/viewvc/llvm-project?view=revision&revision=161501, > which says "...This is effectively a warning for code that violates > core issue 903 & thus will become standard error in the future, > hopefully." Thank you for the feedback! I reverted the behavior change for C++ with r200622. > > -- James
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
