[PATCH] D21254: [asan] Do not instrument pointers with address space attributes

Anna Zaks via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 13 10:13:04 PDT 2016

zaks.anna added inline comments.

Comment at: lib/Transforms/Instrumentation/AddressSanitizer.cpp:953
@@ +952,3 @@
+  if (PtrOperand) {
+    Type *PtrTy = cast<PointerType>(PtrOperand->getType()->getScalarType());
+    if (PtrTy->getPointerAddressSpace() != 0)
kubabrecka wrote:
> Are we sure the cast is *always* valid?  Maybe a dyn_cast + if would be better, but it’s up to you.
I'll double check again, but I think we do always get PointerType here.

Comment at: test/Instrumentation/ThreadSanitizer/tsan_address_space_attr.ll:32
@@ +31,2 @@
+; CHECK-NOT: addrspacecast
kubabrecka wrote:
> kubabrecka wrote:
> > Can we check for the presence of the instrumentation call instead?  The presence or non-presence of “addrspacecast” is a secondary thing.
> (or CHECK-NOT for both if the previous code inserted an invalid addrspacecast)
Can you clarify what you want to test for? 

Codegen crashes on the addrspacecast instruction. I can also test that the load is not instrumented with an additional check.


More information about the llvm-commits mailing list