xazax.hun added a comment.

I found some nits, but overall I think this is getting close.



================
Comment at: lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:76
     range = CL->getSourceRange();
-  }
-  else if (const AllocaRegion* AR = dyn_cast<AllocaRegion>(R)) {
+  } else if (const AllocaRegion *AR = dyn_cast<AllocaRegion>(R)) {
     const Expr *ARE = AR->getExpr();
----------------
In case you already change these lines you could replace the type name on the 
left side with `auto` to avoid repeating types. 


================
Comment at: lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:123
+  for (const auto &C : B.captures()) {
+    const TypedefType *T = C.getVariable()->getType()->getAs<TypedefType>();
+    if (T && T->getDecl()->getIdentifier() == dispatch_semaphore_tII)
----------------
You can also use auto here to avoid mentioning the type twice. 


================
Comment at: lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:192
+          this, "Address of stack-allocated memory is captured");
+    SmallString<512> Buf;
+    llvm::raw_svector_ostream Out(Buf);
----------------
How long usually these error messages are? Maybe 512 is a bit large buffer for 
this? Note that in case the error message is longer this is still not a hard 
error, it just will hit the slow path (allocating the buffer on the heap).


================
Comment at: lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:214
+      BT_capturedstackret = llvm::make_unique<BuiltinBug>(
+          this, "Address of stack-allocated memory");
+    SmallString<512> Buf;
----------------
Maybe you wanted to mention "captured" here as well?


================
Comment at: lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:215
+          this, "Address of stack-allocated memory");
+    SmallString<512> Buf;
+    llvm::raw_svector_ostream Out(Buf);
----------------
Maybe the error reporting part could be abstracted out to avoid code 
duplication with the function above?


Repository:
  rL LLVM

https://reviews.llvm.org/D39438



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

Reply via email to