[clang] [clang][ssaf] Add `JSONFormat` support for `WPASuite` (PR #191082)

Jake Egan via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 15 08:05:37 PDT 2026


jakeegan wrote:

`with-plugins.test` is failing on the AIX bot:
```
******************** TEST 'Clang :: Analysis/Scalable/ssaf-format/WPASuite/with-plugin.test' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 5
rm -rf /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/tools/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Output/with-plugin.test.tmp
# executed command: rm -rf /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/tools/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Output/with-plugin.test.tmp
# RUN: at line 6
mkdir -p /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/tools/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Output/with-plugin.test.tmp
# executed command: mkdir -p /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/tools/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Output/with-plugin.test.tmp
# RUN: at line 14
not /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/bin/clang-ssaf-format --load /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/lib/SSAFExamplePlugin.so --type wpa /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-result-field.json 2>&1    | /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/bin/FileCheck /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/with-plugin.test --match-full-lines --check-prefix=NO-RESULT-FIELD
# executed command: not /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/bin/clang-ssaf-format --load /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/lib/SSAFExamplePlugin.so --type wpa /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-result-field.json
# note: command had no output on stdout or stderr
# error: command failed with exit status: 1
# executed command: /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/bin/FileCheck /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/with-plugin.test --match-full-lines --check-prefix=NO-RESULT-FIELD
# .---command stderr------------
# | /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/with-plugin.test:16:21: error: NO-RESULT-FIELD: expected string not found in input
# | // NO-RESULT-FIELD: clang-ssaf-format: error: reading WPASuite from file '{{.*}}result-entry-missing-result-field.json'
# |                     ^
# | <stdin>:1:1: note: scanning from here
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | ^
# | <stdin>:3:356: note: possible intended match here
# | 0. Program arguments: /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/bin/clang-ssaf-format --load /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/lib/SSAFExamplePlugin.so --type wpa /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-result-field.json
# |                                                                                                                                                                                                                                                                                                                                                                    ^
# | 
# | Input file: <stdin>
# | Check file: /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/with-plugin.test
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug. 
# | check:16'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             2: Stack dump: 
# | check:16'0     ~~~~~~~~~~~~
# |             3: 0. Program arguments: /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/bin/clang-ssaf-format --load /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/build/lib/SSAFExamplePlugin.so --type wpa /home/llvm/llvm-external-buildbots/workers/aix-ppc64/clang-flang-ppc64-aix/llvm-project/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-result-field.json 
# | check:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:16'1                                                                                                                                                                                                                                                                                                                                                                        ?                                                                              possible intended match
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
********************
```

With debug enabled:
```
$ dbx /home/jake1/llvm/up/build/bin/clang-ssaf-format core
Type 'help' for help.
[using memory image in core]
reading symbolic information ...
warning: function symbol "$llvm::cl::parser<(anonymous namespace)::SummaryType>::llvm::cl::parser<-inline$793" may have some processing issues

warning: function symbol "" may have some processing issues

warning: function symbol "$std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string-inline$14" may have some processing issues

warning: function symbol "$std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string-inline$45" may have some processing issues

warning: function symbol "$llvm::cl::parser<(anonymous namespace)::SummaryType>::llvm::cl::parser<-inline$793" may have some processing issues

warning: function symbol "" may have some processing issues

warning: function symbol "$llvm::cl::parser<(anonymous namespace)::SummaryType>::llvm::cl::parser<-inline$793" may have some processing issues

warning: function symbol "_ZN4llvm6detail27getRegistryLinkListInstanceINS_8RegistryIN5clang4ssaf19SerializationFormatEJEEEEERNS0_23RegistryLinkListStorageIT_EEv" may have some processing issues

warning: function symbol "" may have some processing issues


Illegal instruction (illegal opcode) in std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&>::__split_buffer at 0x0 ($t1)
warning: Unable to access address 0x0 from core
(dbx) where
std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&>::__split_buffer() at 0x0

warning: function symbol "$llvm::Registry<clang::ssaf::SerializationFormat::AnalysisResultRegistryGenerator<clang::ssaf::JSONFormat, llvm::function_ref<llvm::json::Object (clang::ssaf::AnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)> >::Codec>::Add<clang::ssaf::SerializationFormat::AnalysisResultRegistryGenerator<clang::ssaf::JSONFormat, llvm::function_ref<llvm::json::Object (clang::ssaf::AnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)> >::Add<(anonymous namespace)::TagsPairsAnalysisResult>::Add(llvm::function_ref<llvm::json::Object ((anonymous namespace)::TagsPairsAnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)>)::ConcreteCodec>::llvm::function_ref<llvm::json::Object -inline$1139" may have some processing issues

warning: function symbol "(anonymous namespace)::namespace)::serializeTagsPairsAnalysisResult" may have some processing issues

warning: function symbol "$llvm::Registry<clang::ssaf::SerializationFormat::AnalysisResultRegistryGenerator<clang::ssaf::JSONFormat, llvm::function_ref<llvm::json::Object (clang::ssaf::AnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)> >::Codec>::Add<clang::ssaf::SerializationFormat::AnalysisResultRegistryGenerator<clang::ssaf::JSONFormat, llvm::function_ref<llvm::json::Object (clang::ssaf::AnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)> >::Add<(anonymous namespace)::TagsPairsAnalysisResult>::Add(llvm::function_ref<llvm::json::Object ((anonymous namespace)::TagsPairsAnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)>)::ConcreteCodec>::llvm::function_ref<llvm::json::Object -inline$1139" may have some processing issues

warning: function symbol "(anonymous namespace)::namespace)::deserializeTagsPairsAnalysisResult" may have some processing issues

warning: function symbol "$llvm::Registry<clang::ssaf::SerializationFormat::AnalysisResultRegistryGenerator<clang::ssaf::JSONFormat, llvm::function_ref<llvm::json::Object (clang::ssaf::AnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)> >::Codec>::Add<clang::ssaf::SerializationFormat::AnalysisResultRegistryGenerator<clang::ssaf::JSONFormat, llvm::function_ref<llvm::json::Object (clang::ssaf::AnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)> >::Add<(anonymous namespace)::TagsPairsAnalysisResult>::Add(llvm::function_ref<llvm::json::Object ((anonymous namespace)::TagsPairsAnalysisResult const&, llvm::function_ref<llvm::json::Object (clang::ssaf::EntityId)>)>, llvm::function_ref<llvm::Expected<std::__1::unique_ptr<clang::ssaf::AnalysisResult, std::__1::default_delete<clang::ssaf::AnalysisResult> > > (llvm::json::Object const&, llvm::function_ref<llvm::Expected<clang::ssaf::EntityId> (llvm::json::Object const&)>)>)::ConcreteCodec>::llvm::function_ref<llvm::json::Object -inline$1139" may have some processing issues
__sinit80000000_clangPidTidTime_55247496_1_10587059310803232_0(), line 49 in "TagsPairsAnalysis.cpp"
cxa_personality.__catchThrownException(0x1, 0x9, 0xfffffffffffefe0, 0x9001000a0090b00) at 0x9000000027ccacc
IPRA.$initialize_one_library(??, ??) at 0x900000000062d68
initialize_libs at AF36_7(??, ??, ??) at 0x9000000000654c8
IPRA.$load_libs(??) at 0x900000000061a8c
loadAndInit(??, ??, ??) at 0x900000000064ce0
dlopen(??, ??) at 0x9000000000aabf4
llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)(0xb, 0x10363f31c, 0xffffffffffffa50) at 0x10005ca38
clang::ssaf::loadPlugins(llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >)(0x1102fac90, 0x1) at 0x10005c8dc
main(argc = 6, argv = 0x0ffffffffffff920) at 0x100000aac
(dbx) registers
  $r0:0x0000000000000000  $stkp:0x0fffffffffffed50   $toc:0x0000000000000000  
  $r3:0x0000000000000017    $r4:0x08001000a002b3d0    $r5:0x00000001102faff0  
  $r6:0x0000000000000000    $r7:0xffffffffffffff80    $r8:0x0000000000000080  
  $r9:0x00000000171e08f5   $r10:0x09001000a00a07c8   $r11:0x0000000000000000  
 $r12:0x0000000000000000   $r13:0x00000001102d0ce0   $r14:0x00000001102d2d50  
 $r15:0x00000001102d2d50   $r16:0x0000000000000340   $r17:0x0000000000000009  
 $r18:0x08001000a0029a30   $r19:0x0000000000000000   $r20:0x0000000000000000  
 $r21:0x08001000a0029a38   $r22:0x09001000a007f460   $r23:0x0000000000000000  
 $r24:0x08001000a002a5a0   $r25:0x0000000000000000   $r26:0x00000001102d3090  
 $r27:0x0000000000000000   $r28:0x09001000a007f478   $r29:0x0000000000000000  
 $r30:0x08001000a002b400   $r31:0x08001000a002b310  
 $iar:0x0000000000000000   $msr:0xa00000000208d032    $cr:0x8240122b  
$link:0x0900000004657408   $ctr:0x0000000000000000   $xer:0x20000000  


          Condition status = 0:l 1:e 2:g 4:o 5:e 6:e 7:leo 
        [unset $noflregs to view floating point registers]
        [unset $novregs to view vector registers]
        [unset $novsregs to view vector scalar registers]
in std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&>::__split_buffer at 0x0 ($t1)
0x0000000000000000 warning: Unable to access address 0x0 from core
```

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


More information about the cfe-commits mailing list