jordan_rose added inline comments.
================ Comment at: test/Sema/conditional-expr.c:20 vp = 0 ? (double *)0 : (void *)0; - ip = 0 ? (double *)0 : (void *)0; // expected-warning {{incompatible pointer types assigning to 'int *' from 'double *'}} + ip = 0 ? (double *)0 : (void *)0; // expected-warning {{incompatible pointer types assigning to 'int *' from 'double * _Nullable'}} ---------------- ahatanak wrote: > ahatanak wrote: > > jordan_rose wrote: > > > This seems like an unfortunate change to make, since most people do not > > > bother with nullability. > > Yes, this is unfortunate, but I'm not sure what's the right way to avoid > > printing nullability specifiers in the diagnostic message. Do you have any > > suggestions? > It looks like I can use PrintingPolicy to print the nullability specifier > only when needed. > > I think it's also possible to add a flag to Expr that indicates the Expr is > possibly null. For example, when an Expr is an IntegerLiteral of value 0, or > a CastExpr or a ConditionalOperator has a subexpression whose flag is set. > This could be a better solution than the current solution in this patch. Whew. I hadn't had the chance to look at PrintingPolicy and was afraid you'd have to add a new flag to diagnostics or something to specify whether nullability was relevant. An additional flag on Expr seems like overkill to me, given that `isNullPointerConstant` already exists. But I don't work in Clang these days, so maybe I'm wrong and it is something worth caching. Repository: rC Clang https://reviews.llvm.org/D22391 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits