[clang] [llvm] [clang][ssaf][NFC] Move SSAF from Analysis/Scalable/ to ScalableStaticAnalysisFramework/ (PR #186156)

Paul Osmialowski via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 16 13:00:31 PDT 2026


pawosm-arm wrote:

I can't build it on SLES15:

```
21:10:55  /usr/include/c++/7/bits/stl_map.h:199:7:   required from 'llvm::Expected<T>::Expected(OtherT&&, std::enable_if_t<is_convertible_v<U, T> >*) [with OtherT = clang::ssaf::SummaryDataStore&; T = clang::ssaf::SummaryDataStore; std::enable_if_t<is_convertible_v<U, T> > = void]'
21:10:55  /workspace/src/clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.cpp:58:10:   required from here
21:10:55  /usr/include/c++/7/ext/new_allocator.h:136:4: error: use of deleted function 'std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = const clang::ssaf::SummaryName; _T2 = std::unique_ptr<clang::ssaf::SummaryData>]'
21:10:55    { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
21:10:55      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21:10:55  In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
21:10:55                   from /usr/include/c++/7/bits/char_traits.h:39,
21:10:55                   from /usr/include/c++/7/ios:40,
21:10:55                   from /usr/include/c++/7/ostream:38,
21:10:55                   from /usr/include/c++/7/iterator:64,
21:10:55                   from /workspace/src/llvm/include/llvm/ADT/ADL.h:13,
21:10:55                   from /workspace/src/llvm/include/llvm/ADT/STLExtras.h:20,
21:10:55                   from /workspace/src/clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.h:21,
21:10:55                   from /workspace/src/clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h:17,
21:10:55                   from /workspace/src/clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.h:17,
21:10:55                   from /workspace/src/clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.cpp:9:
21:10:55  /usr/include/c++/7/bits/stl_pair.h:303:17: note: 'std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = const clang::ssaf::SummaryName; _T2 = std::unique_ptr<clang::ssaf::SummaryData>]' is implicitly deleted because the default definition would be ill-formed:
21:10:55         constexpr pair(const pair&) = default;
21:10:55                   ^~~~
21:10:55  /usr/include/c++/7/bits/stl_pair.h:303:17: error: use of deleted function 'std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = clang::ssaf::SummaryData; _Dp = std::default_delete<clang::ssaf::SummaryData>]'
21:10:55  In file included from /usr/include/c++/7/memory:80:0,
21:10:55                   from /workspace/src/llvm/include/llvm/ADT/STLExtras.h:37,
21:10:55                   from /workspace/src/clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.h:21,
21:10:55                   from /workspace/src/clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h:17,
21:10:55                   from /workspace/src/clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.h:17,
21:10:55                   from /workspace/src/clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.cpp:9:
21:10:55  /usr/include/c++/7/bits/unique_ptr.h:383:7: note: declared here
21:10:55         unique_ptr(const unique_ptr&) = delete;
21:10:55         ^~~~~~~~~~
21:10:55  [3976/4478] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/ASTOps.cpp.o
21:10:55  In file included from /workspace/src/clang/include/clang/AST/TypeBase.h:31:0,
21:10:55                   from /workspace/src/clang/include/clang/AST/DeclarationName.h:16,
21:10:55                   from /workspace/src/clang/include/clang/AST/DeclBase.h:19,
21:10:55                   from /workspace/src/clang/include/clang/AST/Decl.h:20,
21:10:55                   from /workspace/src/clang/include/clang/Analysis/FlowSensitive/ASTOps.h:16,
21:10:55                   from /workspace/src/clang/lib/Analysis/FlowSensitive/ASTOps.cpp:13:
21:10:55  /workspace/src/clang/include/clang/Basic/PointerAuthOptions.h:94:18: warning: 'clang::PointerAuthSchema::TheKind' is too small to hold all values of 'enum class clang::PointerAuthSchema::Kind'
21:10:55     Kind TheKind : 2;
21:10:55                    ^
21:10:55  /workspace/src/clang/include/clang/Basic/PointerAuthOptions.h:98:58: warning: 'clang::PointerAuthSchema::SelectedAuthenticationMode' is too small to hold all values of 'enum class clang::PointerAuthenticationMode'
21:10:55     PointerAuthenticationMode SelectedAuthenticationMode : 2;
21:10:55                                                            ^
21:10:55  /workspace/src/clang/include/clang/Basic/PointerAuthOptions.h:99:39: warning: 'clang::PointerAuthSchema::DiscriminationKind' is too small to hold all values of 'enum class clang::PointerAuthSchema::Discrimination'
21:10:55     Discrimination DiscriminationKind : 2;
21:10:55                                         ^
21:10:55  In file included from /workspace/src/llvm/include/llvm/Support/Error.h:20:0,
21:10:55                   from /workspace/src/llvm/include/llvm/BinaryFormat/DXContainer.h:20,
21:10:55                   from /workspace/src/clang/include/clang/Basic/LangOptions.h:27,
21:10:55                   from /workspace/src/clang/include/clang/AST/TypeBase.h:28,
21:10:55                   from /workspace/src/clang/include/clang/AST/DeclarationName.h:16,
21:10:55                   from /workspace/src/clang/include/clang/AST/DeclBase.h:19,
21:10:55                   from /workspace/src/clang/include/clang/AST/Decl.h:20,
21:10:55                   from /workspace/src/clang/include/clang/Analysis/FlowSensitive/ASTOps.h:16,
21:10:55                   from /workspace/src/clang/lib/Analysis/FlowSensitive/ASTOps.cpp:13:
21:10:55  /workspace/src/clang/include/clang/Analysis/FlowSensitive/StorageLocation.h: In member function 'clang::dataflow::StorageLocation& clang::dataflow::RecordStorageLocation::getSyntheticField(llvm::StringRef) const':
21:10:55  /workspace/src/clang/include/clang/Analysis/FlowSensitive/StorageLocation.h:153:53: warning: unused variable 'Loc' [-Wunused-variable]
21:10:55           for ([[maybe_unused]] const auto &[Name, Loc] : SyntheticFields) {
21:10:55                                                       ^
21:10:55  /workspace/src/llvm/include/llvm/Support/Debug.h:75:7: note: in definition of macro 'DEBUG_WITH_TYPE'
21:10:55         __VA_ARGS__;                                                             \
21:10:55         ^~~~~~~~~~~
21:10:55  /workspace/src/clang/include/clang/Analysis/FlowSensitive/StorageLocation.h:147:5: note: in expansion of macro 'LLVM_DEBUG'
21:10:55       LLVM_DEBUG({
21:10:55       ^
```

Is there anything that can be done to make it build on the still supported Linux distribution with an ancient version of libstdc++?


https://github.com/llvm/llvm-project/pull/186156


More information about the cfe-commits mailing list