[PATCH] D69664: [Diagnostics] Teach -Wnull-dereference about address_space attribute
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 7 11:43:48 PST 2019
aaron.ballman accepted this revision.
aaron.ballman added a comment.
This revision is now accepted and ready to land.
LGTM with a testing request.
================
Comment at: clang/lib/Sema/SemaExpr.cpp:486
if (UO->getOpcode() == UO_Deref &&
- UO->getSubExpr()->IgnoreParenCasts()->
- isNullPointerConstant(S.Context, Expr::NPC_ValueDependentIsNotNull) &&
+ !isTargetAddressSpace(
+ UO->getSubExpr()->getType()->getPointeeType().getAddressSpace()) &&
----------------
xbolva00 wrote:
> With this patch, we no longer warn for:
>
> *(int __attribute__((address_space(0))) *) 0;
>
> Worth to handle this case?
I mildly think it would be useful to warn in that case, but I'm fine with that being done later.
================
Comment at: clang/test/Sema/exprs.c:190
+ *(int_AS256*)0 = 0; // Ok.
// rdar://9269271
----------------
Can you add a test case for dereferencing for a read instead of a write, just to ensure we don't diagnose that case?
You may want to add the `address_space(0)` test case as well, with a FIXME that it should warn at some point.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69664/new/
https://reviews.llvm.org/D69664
More information about the cfe-commits
mailing list