MaskRay added inline comments.

================
Comment at: clang/docs/SanitizerCoverage.rst:338
+
+With ``-fsanitize-coverage=control-flow`` the compiler will create a table to 
collect
+control flow for each function. More specifically, for each basic block in the 
function,
----------------
This paragraph doesn't describe how the table is encoded.

The description about null-separated is incorrect as it is actually null-ended.


================
Comment at: llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp:1048
+
+void ModuleSanitizerCoverage::CollectFunctionControlFlow(Function &F) {
+  SmallVector<Constant *, 32> CFs;
----------------
Use `collectFunctionControlFlow` for new functions. `CamelCaseFunction` is 
legacy.

I'd prefer `createXXX` since `collectXXX` implies returning the object while 
the function actually creates the needed metadata.


================
Comment at: llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp:1080
+
+  size_t N = CFs.size();
+  auto CFArray = CreateFunctionLocalArrayInSection(CFs.size(), F, IntptrPtrTy, 
SanCovCFsSectionName);
----------------
-Wunused-variable


================
Comment at: llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp:1081
+  size_t N = CFs.size();
+  auto CFArray = CreateFunctionLocalArrayInSection(CFs.size(), F, IntptrPtrTy, 
SanCovCFsSectionName);
+  CFArray->setInitializer(ConstantArray::get(ArrayType::get(IntptrPtrTy, 
CFs.size()), CFs));
----------------
I'd avoid the variable in favor of `FunctionCFsArray`


================
Comment at: llvm/test/Instrumentation/SanitizerCoverage/control-flow.ll:1
+; Test -sanitizer-coverage-control-flow
+; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=3 
-sanitizer-coverage-control-flow -S | FileCheck %s
----------------
End complete sentences in comments with `.`


================
Comment at: llvm/test/Instrumentation/SanitizerCoverage/control-flow.ll:6
+target triple = "x86_64-unknown-linux-gnu"
+define void @foo(i32* %a) sanitize_address {
+entry:
----------------
Avoid `i32*`. Use opaque pointers `ptr` for new tests.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133157

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to