[PATCH] D64451: [PoisonChecking] Validate inbounds annotation on getelementptr where possible
Nuno Lopes via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 10 09:34:25 PDT 2019
nlopes added inline comments.
================
Comment at: lib/Transforms/Instrumentation/PoisonChecking.cpp:237
+ if (GenLowerCheck)
+ Checks.push_back(B.CreateICmp(ICmpInst::ICMP_ULT, Addr, Base));
+}
----------------
Doing these pointer comparisons isn't legal, and LLVM can fold "out_of_bonds_ptr >= valid_ptr" to poison.
You need to cast those pointers to integers and do the comparison there: offset >= 0 && offset <= obj_size. You may want to lower the GEP in IR right away (there's a function for that in ValueTracking or somewhere else, I forget)?
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64451/new/
https://reviews.llvm.org/D64451
More information about the llvm-commits
mailing list