[PATCH] D71960: [Attributor] AAUndefinedBehavior: AAValueSimplify in memory accessing instructions.

Hideto Ueno via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 30 08:04:02 PST 2019


uenoku added inline comments.


================
Comment at: llvm/test/Transforms/Attributor/ArgumentPromotion/2008-07-02-array-indexing.ll:12
-; CHECK-NEXT:    [[A_0:%.*]] = load i32, i32* null
-; CHECK-NEXT:    br i1 false, label [[T:%.*]], label [[F:%.*]]
 ; CHECK:       T:
----------------
baziotis wrote:
> jdoerfert wrote:
> > We should also repair this test. pass a valid pointer into `callee`, e.g., an argument. 
> Ok,yes. Btw, the `nonnull` and `dereferenceable` attributes for `%A` are wrong right? I guess these are the kind of checks for violations you have proposed that AAUB could do.
> Btw, the nonnull and dereferenceable attributes for %A are wrong right? 
I think to mark nonnull and dereferenceable attributes for %A itself is not wrong. 
(but anyway %A will be deleted with D68765 or additional patches)
I mean **passing** null to this function is UB too. So `AAUB` can prove 
```
%X = call i32 @callee(i1 false, i32* null) 
```
is UB. 


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71960/new/

https://reviews.llvm.org/D71960





More information about the llvm-commits mailing list