[clang] [clang][ssaf] Implement JSONFormat (PR #180021)

LLVM Continuous Integration via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 16 13:45:35 PST 2026


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `openmp-offload-sles-build-only` running on `rocm-worker-hw-04-sles` while building `clang` at step 5 "compile-openmp".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/140/builds/38765

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 5 (compile-openmp) failure: build (failure)
...
                  ^
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.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’
   PointerAuthenticationMode SelectedAuthenticationMode : 2;
                                                          ^
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.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’
   Discrimination DiscriminationKind : 2;
                                       ^
21.603 [1728/32/6017] Building CXX object tools/clang/lib/Frontend/CMakeFiles/obj.clangFrontend.dir/HeaderIncludeGen.cpp.o
21.620 [1727/32/6018] Building CXX object tools/clang/lib/Frontend/CMakeFiles/obj.clangFrontend.dir/PrintPreprocessedOutput.cpp.o
21.626 [1726/32/6019] Building CXX object tools/clang/lib/Analysis/Scalable/CMakeFiles/obj.clangAnalysisScalable.dir/Serialization/JSONFormat.cpp.o
FAILED: tools/clang/lib/Analysis/Scalable/CMakeFiles/obj.clangAnalysisScalable.dir/Serialization/JSONFormat.cpp.o 
ccache /usr/bin/c++ -DCLANG_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/lib/Analysis/Scalable -I/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/lib/Analysis/Scalable -I/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/include -Itools/clang/include -Iinclude -I/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-array-bounds -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -O3 -DNDEBUG -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -std=c++1z -MD -MT tools/clang/lib/Analysis/Scalable/CMakeFiles/obj.clangAnalysisScalable.dir/Serialization/JSONFormat.cpp.o -MF tools/clang/lib/Analysis/Scalable/CMakeFiles/obj.clangAnalysisScalable.dir/Serialization/JSONFormat.cpp.o.d -o tools/clang/lib/Analysis/Scalable/CMakeFiles/obj.clangAnalysisScalable.dir/Serialization/JSONFormat.cpp.o -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/lib/Analysis/Scalable/Serialization/JSONFormat.cpp
In file included from /usr/include/c++/7/x86_64-suse-linux/bits/c++allocator.h:33:0,
                 from /usr/include/c++/7/bits/allocator.h:46,
                 from /usr/include/c++/7/string:41,
                 from /usr/include/c++/7/bits/locale_classes.h:40,
                 from /usr/include/c++/7/bits/ios_base.h:41,
                 from /usr/include/c++/7/ios:42,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iterator:64,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/llvm/ADT/ADL.h:13,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/llvm/ADT/STLExtras.h:20,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/include/clang/Analysis/Scalable/Model/BuildNamespace.h:21,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h:17,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/include/clang/Analysis/Scalable/Serialization/JSONFormat.h:16,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/lib/Analysis/Scalable/Serialization/JSONFormat.cpp:1:
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _Args = {const std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary, std::default_delete<clang::ssaf::EntitySummary> > >&}; _Tp = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >]’:
/usr/include/c++/7/bits/alloc_traits.h:475:4:   required from ‘static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _Args = {const std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary, std::default_delete<clang::ssaf::EntitySummary> > >&}; _Tp = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > > >]’
/usr/include/c++/7/bits/stl_tree.h:626:32:   required from ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_construct_node(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, _Args&& ...) [with _Args = {const std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary, std::default_delete<clang::ssaf::EntitySummary> > >&}; _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*]’
/usr/include/c++/7/bits/stl_tree.h:643:21:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary, std::default_delete<clang::ssaf::EntitySummary> > >&}; _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*]’
/usr/include/c++/7/bits/stl_tree.h:556:62:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Alloc_node::operator()(_Arg&&) const [with _Arg = const std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >&; _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*]’
/usr/include/c++/7/bits/stl_tree.h:666:33:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_clone_node(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type, _NodeGen&) [with _NodeGen = std::_Rb_tree<clang::ssaf::EntityId, std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >, std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >, std::less<clang::ssaf::EntityId>, std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > > >::_Alloc_node; _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*]’
/usr/include/c++/7/bits/stl_tree.h:1818:34:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_copy(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, _NodeGen&) [with _NodeGen = std::_Rb_tree<clang::ssaf::EntityId, std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >, std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >, std::less<clang::ssaf::EntityId>, std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > > >::_Alloc_node; _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr = std::_Rb_tree_node_base*]’
/usr/include/c++/7/bits/stl_tree.h:875:31:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_copy(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&, _NodeGen&) [with _NodeGen = std::_Rb_tree<clang::ssaf::EntityId, std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >, std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >, std::less<clang::ssaf::EntityId>, std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > > >::_Alloc_node; _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*]’
/usr/include/c++/7/bits/stl_tree.h:886:16:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_copy(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&) [with _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >*]’
/usr/include/c++/7/bits/stl_tree.h:924:23:   required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Rb_tree(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&) [with _Key = clang::ssaf::EntityId; _Val = std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; _KeyOfValue = std::_Select1st<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >; _Compare = std::less<clang::ssaf::EntityId>; _Alloc = std::allocator<std::pair<const clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> > >]’
/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 = std::map<clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >&; T = std::map<clang::ssaf::EntityId, std::unique_ptr<clang::ssaf::EntitySummary> >; std::enable_if_t<is_convertible_v<U, T> > = void]’
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/lib/Analysis/Scalable/Serialization/JSONFormat.cpp:708:10:   required from here
/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::EntityId; _T2 = std::unique_ptr<clang::ssaf::EntitySummary>]’
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iterator:64,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/llvm/ADT/ADL.h:13,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/llvm/ADT/STLExtras.h:20,
                 from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/clang/include/clang/Analysis/Scalable/Model/BuildNamespace.h:21,

```

</details>

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


More information about the cfe-commits mailing list