dvyukov added inline comments.
================
Comment at: lib/CodeGen/CodeGenFunction.cpp:717
+ // Ignore TSan memory acesses from within dealloc and all of its calees at
+ // run time.
----------------
This is unpleasant. We had recursive ignores in the old Valgrind-based tsan,
but managed to not reintroduce them in the new tsan so far. But I also don't
see any better solution.
================
Comment at: lib/CodeGen/CodeGenFunction.cpp:721
+ if (const auto *M = dyn_cast_or_null<ObjCMethodDecl>(D))
+ if (M->getMethodFamily() == OMF_dealloc)
+ Fn->addFnAttr("sanitize_thread_no_checking_at_run_time");
----------------
Can we do this check right in the tsan pass? Or this information is already
lost there?
================
Comment at: lib/CodeGen/CodeGenFunction.cpp:722
+ if (M->getMethodFamily() == OMF_dealloc)
+ Fn->addFnAttr("sanitize_thread_no_checking_at_run_time");
+
----------------
Also do:
Fn->removeFnAttr(llvm::Attribute::SanitizeThread);
That's what will effectively happen. And it will allow to simplify the other
patch.
https://reviews.llvm.org/D25857
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits