Author: Bruno De Fraine Date: 2026-09-16T15:22:00+02:00 New Revision: 3693a9b748c55b94994ff8ad6f48deffb1c90d40
URL: https://github.com/llvm/llvm-project/commit/3693a9b748c55b94994ff8ad6f48deffb1c90d40 DIFF: https://github.com/llvm/llvm-project/commit/3693a9b748c55b94994ff8ad6f48deffb1c90d40.diff LOG: [SSAF][PointerFlow] Properly declare functions in header (#223390) In a GCC build, this fixes some warnings of the following kind: clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.cpp:15:1: warning: ‘clang::ssaf::PointerFlowEntitySummary clang::ssaf::buildPointerFlowEntitySummary(EdgeSet)’ has not been declared within ‘clang::ssaf’ 15 | ssaf::buildPointerFlowEntitySummary(EdgeSet Edges) { | ^~~~ In file included from clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.cpp:9: clang/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.h:29:35: note: only here as a ‘friend’ 29 | friend PointerFlowEntitySummary buildPointerFlowEntitySummary(EdgeSet Edges); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixed by centralizing the function declarations in the header, which also removes the duplication across multiple files/tests. Added: Modified: clang/include/clang/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.h clang/include/clang/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowExtractor.cpp clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowFormat.cpp clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageFormat.cpp clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp Removed: ################################################################################ diff --git a/clang/include/clang/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.h b/clang/include/clang/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.h index abff90cc37662..720b1f74c21cd 100644 --- a/clang/include/clang/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.h +++ b/clang/include/clang/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlow.h @@ -47,6 +47,12 @@ class PointerFlowEntitySummary final : public EntitySummary { static SummaryName summaryName() { return SummaryName{Name.str()}; } }; + +PointerFlowEntitySummary buildPointerFlowEntitySummary(EdgeSet Edges); + +llvm::iterator_range<EdgeSet::const_iterator> +getEdges(const PointerFlowEntitySummary &); + } // namespace clang::ssaf #endif // LLVM_CLANG_SCALABLESTATICANALYSIS_ANALYSES_POINTERFLOW_POINTERFLOW_H diff --git a/clang/include/clang/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h b/clang/include/clang/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h index c84104c10db7e..b35a132f7e72a 100644 --- a/clang/include/clang/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h +++ b/clang/include/clang/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h @@ -45,6 +45,13 @@ class UnsafeBufferUsageEntitySummary final : public EntitySummary { static SummaryName summaryName() { return SummaryName{Name.str()}; } }; + +UnsafeBufferUsageEntitySummary + buildUnsafeBufferUsageEntitySummary(EntityPointerLevelSet); + +llvm::iterator_range<EntityPointerLevelSet::const_iterator> +getUnsafeBuffers(const UnsafeBufferUsageEntitySummary &); + } // namespace clang::ssaf #endif // LLVM_CLANG_SCALABLESTATICANALYSIS_ANALYSES_UNSAFEBUFFERUSAGE_UNSAFEBUFFERUSAGE_H diff --git a/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowExtractor.cpp b/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowExtractor.cpp index 719929bd7d43a..8d5ab0f8a85ef 100644 --- a/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowExtractor.cpp +++ b/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowExtractor.cpp @@ -26,10 +26,6 @@ #include "llvm/Support/Error.h" #include <memory> -namespace clang::ssaf { -extern PointerFlowEntitySummary buildPointerFlowEntitySummary(EdgeSet Edges); -} // namespace clang::ssaf - namespace { using namespace clang; using namespace ssaf; diff --git a/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowFormat.cpp b/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowFormat.cpp index ccad92be9b745..3ca54873263f3 100644 --- a/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowFormat.cpp +++ b/clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowFormat.cpp @@ -21,12 +21,6 @@ using Object = llvm::json::Object; using Array = llvm::json::Array; using Value = llvm::json::Value; -ssaf::PointerFlowEntitySummary -ssaf::buildPointerFlowEntitySummary(EdgeSet Edges); - -llvm::iterator_range<EdgeSet::const_iterator> -ssaf::getEdges(const PointerFlowEntitySummary &Sum); - namespace { constexpr const char *const PointerFlowKey = "PointerFlow"; } // namespace diff --git a/clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageFormat.cpp b/clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageFormat.cpp index 5fafe0e92abfa..aed305125ac76 100644 --- a/clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageFormat.cpp +++ b/clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageFormat.cpp @@ -21,12 +21,6 @@ using Object = llvm::json::Object; static constexpr llvm::StringLiteral SummarySerializationKey = "UnsafeBuffers"; -extern UnsafeBufferUsageEntitySummary -ssaf::buildUnsafeBufferUsageEntitySummary(EntityPointerLevelSet UnsafeBuffers); - -extern llvm::iterator_range<EntityPointerLevelSet::const_iterator> -ssaf::getUnsafeBuffers(const UnsafeBufferUsageEntitySummary &S); - static Object serialize(const EntitySummary &S, JSONFormat::EntityIdToJSONFn Fn) { const auto &SS = static_cast<const UnsafeBufferUsageEntitySummary &>(S); diff --git a/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp b/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp index 8c43ead9750ca..2684c4d7e6e49 100644 --- a/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp +++ b/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp @@ -27,8 +27,6 @@ using namespace ssaf; using testing::IsEmpty; using testing::UnorderedElementsAre; -PointerFlowEntitySummary ssaf::buildPointerFlowEntitySummary(EdgeSet Edges); - namespace { class PointerFlowWPATest : public TestFixture { diff --git a/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp b/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp index 448f838297e8f..6b388795056bf 100644 --- a/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp +++ b/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp @@ -27,9 +27,6 @@ using namespace ssaf; using testing::IsEmpty; using testing::UnorderedElementsAre; -UnsafeBufferUsageEntitySummary -ssaf::buildUnsafeBufferUsageEntitySummary(EntityPointerLevelSet UnsafeBuffers); - namespace { class UnsafeBufferUsageWPATest : public TestFixture { diff --git a/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp b/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp index 7bfe39f98768f..d856bc14f436a 100644 --- a/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp +++ b/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp @@ -47,12 +47,6 @@ using namespace clang; using namespace ssaf; -namespace clang::ssaf { -extern PointerFlowEntitySummary buildPointerFlowEntitySummary(EdgeSet Edges); -extern UnsafeBufferUsageEntitySummary - buildUnsafeBufferUsageEntitySummary(EntityPointerLevelSet); -} // namespace clang::ssaf - namespace { class UnsafeBufferReachableAnalysisTest : public TestFixture { _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
