https://github.com/hokein updated https://github.com/llvm/llvm-project/pull/80277
>From bb1a8f86e0b9ce3748af03625757d20900e053fc Mon Sep 17 00:00:00 2001 From: Haojian Wu <hokein...@gmail.com> Date: Thu, 1 Feb 2024 12:41:29 +0100 Subject: [PATCH 1/2] Thread safety analysis: provide printSCFG definition. I'm calling this function when investigating the issue (https://github.com/llvm/llvm-project/issues/78131), and I'm surprised to see the definition is commented out. I think it makes sense to provide the definition even though the implementation is not stable. --- clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h | 1 + clang/lib/Analysis/ThreadSafetyCommon.cpp | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h b/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h index 13e37ac2b56b64..4edd3374dd61bf 100644 --- a/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h +++ b/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h @@ -528,6 +528,7 @@ class SExprBuilder { }; // Dump an SCFG to llvm::errs(). +// The implementation is not stable, and used for debugging only. void printSCFG(CFGWalker &Walker); } // namespace threadSafety diff --git a/clang/lib/Analysis/ThreadSafetyCommon.cpp b/clang/lib/Analysis/ThreadSafetyCommon.cpp index 2fe0f85897c3bc..fc5b7d3b6f1977 100644 --- a/clang/lib/Analysis/ThreadSafetyCommon.cpp +++ b/clang/lib/Analysis/ThreadSafetyCommon.cpp @@ -995,7 +995,6 @@ void SExprBuilder::exitCFG(const CFGBlock *Last) { IncompleteArgs.clear(); } -/* namespace { class TILPrinter : @@ -1016,4 +1015,3 @@ void printSCFG(CFGWalker &Walker) { } // namespace threadSafety } // namespace clang -*/ >From 575775d3e7d1f30f456c7d2fcc340cd271fc8731 Mon Sep 17 00:00:00 2001 From: Haojian Wu <hokein...@gmail.com> Date: Fri, 23 Feb 2024 15:21:53 +0100 Subject: [PATCH 2/2] printSCFG function is available for debug-only. --- clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h | 3 ++- clang/lib/Analysis/ThreadSafetyCommon.cpp | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h b/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h index 4edd3374dd61bf..7bdb9052e57e74 100644 --- a/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h +++ b/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h @@ -527,9 +527,10 @@ class SExprBuilder { BlockInfo *CurrentBlockInfo = nullptr; }; +#ifndef NDEBUG // Dump an SCFG to llvm::errs(). -// The implementation is not stable, and used for debugging only. void printSCFG(CFGWalker &Walker); +#endif // NDEBUG } // namespace threadSafety } // namespace clang diff --git a/clang/lib/Analysis/ThreadSafetyCommon.cpp b/clang/lib/Analysis/ThreadSafetyCommon.cpp index fc5b7d3b6f1977..3a864f079f75b1 100644 --- a/clang/lib/Analysis/ThreadSafetyCommon.cpp +++ b/clang/lib/Analysis/ThreadSafetyCommon.cpp @@ -995,6 +995,7 @@ void SExprBuilder::exitCFG(const CFGBlock *Last) { IncompleteArgs.clear(); } +#ifndef NDEBUG namespace { class TILPrinter : @@ -1012,6 +1013,7 @@ void printSCFG(CFGWalker &Walker) { til::SCFG *Scfg = SxBuilder.buildCFG(Walker); TILPrinter::print(Scfg, llvm::errs()); } +#endif // NDEBUG } // namespace threadSafety } // namespace clang _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits