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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits