================
@@ -32,13 +32,28 @@ namespace clang::lifetimes {
 namespace internal {
 
 LifetimeSafetyAnalysis::LifetimeSafetyAnalysis(AnalysisDeclContext &AC,
-                                               LifetimeSafetyReporter 
*Reporter)
-    : AC(AC), Reporter(Reporter) {}
+                                               LifetimeSafetyReporter 
*Reporter,
+                                               size_t MaxCFGBlocks)
+    : MaxCFGBlocks(MaxCFGBlocks), AC(AC), Reporter(Reporter) {
+  FactMgr.setMaxCFGBlocksThreshold(MaxCFGBlocks);
+}
 
 void LifetimeSafetyAnalysis::run() {
   llvm::TimeTraceScope TimeProfile("LifetimeSafetyAnalysis");
 
   const CFG &Cfg = *AC.getCFG();
+  if (MaxCFGBlocks > 0 && Cfg.getNumBlockIDs() > MaxCFGBlocks) {
+    std::string FuncName = "<unknown>";
+    if (const Decl *D = AC.getDecl())
+      if (const auto *ND = dyn_cast<NamedDecl>(D))
+        FuncName = ND->getQualifiedNameAsString();
----------------
usx95 wrote:

Move this into DEBUG_WITH_TYPE

```
DEBUG_WITH_TYPE("LifetimeSafety", 
    std::string FuncName = "<unknown>";
    
    if (const Decl *D = AC.getDecl())
      if (const auto *ND = dyn_cast<NamedDecl>(D))
        FuncName = ND->getQualifiedNameAsString();
        llvm::dbgs() << "LifetimeSafety ....
```

We do not want to compute this non-debug builds

https://github.com/llvm/llvm-project/pull/170444
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to