[PATCH] D85559: [MSAN] Reintroduce libatomic load/store instrumentation

Evgenii Stepanov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 7 16:04:00 PDT 2020


eugenis added inline comments.


================
Comment at: clang/lib/CodeGen/CGAtomic.cpp:315
+  llvm::FunctionCallee fn =
+      CGF.CGM.CreateRuntimeFunction(fnTy, fnName, fnAttrs);
   auto callee = CGCallee::forDirect(fn);
----------------
This needs a clang test, and better move it to a separate change.


================
Comment at: llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:3509
+    Instruction *InsPoint = CB.getNextNode();
+    if (!InsPoint) {
+      llvm::errs() << "MSAN -- cannot instrument libatomic call with no "
----------------
Better explicitly check that this an invoke and not call. Call always has a next instruction.

And move this check to the parent function to apply  regular call instrumentation to the unrecognized call.


================
Comment at: llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:3511
+      llvm::errs() << "MSAN -- cannot instrument libatomic call with no "
+                      "successor. Ignoring!\n";
+      return;
----------------
It has a successor. Two successors, actually.
I'd rather say something like "invoke of __atomic_load".


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D85559



More information about the cfe-commits mailing list