diff --git a/.github/workflows/Test-Suite.yml b/.github/workflows/Test-Suite.yml index ea8d5798..8113a3cb 100644 --- a/.github/workflows/Test-Suite.yml +++ b/.github/workflows/Test-Suite.yml @@ -16,7 +16,7 @@ jobs: # This workflow contains a single job called "build" linux_build: # The type of runner that the job will run on - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 # Steps represent a sequence of tasks that will be executed as part of the job steps: @@ -26,9 +26,11 @@ jobs: - name: env-setup run: | sudo apt-get update - sudo apt-get install unzip tar - wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz - mkdir -p "/opt/llvm" && tar -xf clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -C "/opt/llvm" --strip-components 1 + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get install cmake gcc g++ nodejs doxygen graphviz lcov libncurses5-dev libtinfo6 libzstd-dev unzip tar + wget https://github.com/SVF-tools/SVF/releases/download/SVF-3.0/llvm-16.0.0-ubuntu24-rtti-x86-64.tar.gz + mkdir -p "/opt/llvm" && tar -xf llvm-16.0.0-ubuntu24-rtti-x86-64.tar.gz -C "/opt/llvm" --strip-components 1 echo "/opt/llvm/bin" >> $GITHUB_PATH - name: stash-changes diff --git a/CMakeLists.txt b/CMakeLists.txt index 259afa48..e8652dfc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -269,7 +269,7 @@ endforeach() # Run with: (ctest -R diff-perf-cruxbc-small -VV) set(diff_tests_cruxbc_small dc bc libbz2.so bunzip2 htop) -set(cmdw "wpa -vfspta -dump-vfg -dump-json=ir.json") +set(cmdw "wpa -vfspta -dump-vfg") string(REPLACE " " ";" commandtempw ${cmdw}) set(commandw ${commandtempw}) foreach(file ${diff_tests_cruxbc_small}) @@ -289,7 +289,7 @@ endforeach() # Crux bc Big: Filesystem & Performance regression testing # Run with (ctest -R diff-perf-cruxbc-big -VV) set(diff_tests_cruxbc_big libcurl.so bash) -set(cmdw "wpa -ander -dump-json=ir.json") +set(cmdw "wpa -ander") string(REPLACE " " ";" commandtempw ${cmdw}) set(commandw ${commandtempw}) foreach(file ${diff_tests_cruxbc_big}) @@ -326,19 +326,37 @@ foreach(filename ${ae_overflow_files}) COMMAND ae -overflow -field-limit=1024 ${CMAKE_CURRENT_SOURCE_DIR}/${filename} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) + add_test( + NAME ae_recursion_tests/${filename}-widen-narrow + COMMAND ae -overflow -handle-recur=widen-narrow -field-limit=1024 ${CMAKE_CURRENT_SOURCE_DIR}/${filename} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin + ) endforeach() -# loops over ae_nullptr_files and run "ae $bc_file" -file(GLOB ae_nullptr_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/test_cases_bc/ae_nullptr_deref_tests/*.bc") +# loops over ae_nullptr_deref_files and run "ae -null-ptr-deref $bc_file" +file(GLOB ae_nullptr_deref_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/test_cases_bc/ae_nullptr_deref_tests/*.bc") -foreach(filename ${ae_nullptr_files}) +foreach(filename ${ae_nullptr_deref_files}) add_test( - NAME ae_nullptr/${filename} - COMMAND ae -nullptr ${CMAKE_CURRENT_SOURCE_DIR}/${filename} + NAME ae_nullptr_deref_tests/${filename} + COMMAND ae -null-ptr-deref ${CMAKE_CURRENT_SOURCE_DIR}/${filename} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) + endforeach() +# loops over ae_recursion_files and run "ae -overflow $bc_file" under 3 recursion modes +file(GLOB ae_recursion_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/test_cases_bc/ae_recursion_tests/*.bc") + +foreach(filename ${ae_recursion_files}) + add_test( + NAME ae_recursion_tests/${filename}-widen-narrow + COMMAND ae -overflow -handle-recur=widen-narrow -field-limit=1024 -widen-delay=10 ${CMAKE_CURRENT_SOURCE_DIR}/${filename} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin + ) +endforeach() + + ## symbolic abstraction tests (ctest -R symabs -VV) set(cmd "ae -symabs") string(REPLACE " " ";" commandtemp ${cmd}) diff --git a/diff_tests/difftest.py b/diff_tests/difftest.py index 90cb2cb6..3ad9514c 100755 --- a/diff_tests/difftest.py +++ b/diff_tests/difftest.py @@ -67,6 +67,8 @@ def comparer_andersen(stats1: Stats, stats2: Stats): delta = abs(d1 - d2) / d1 exceptions = [ ('basic_cpp_tests/queue-1.cpp.bc', 0.01), # 0.00604714303344439 + ('basic_cpp_tests/deque-3.cpp.bc', 0.01), # 0.0010105589240854218 + ('basic_cpp_tests/deque-4.cpp.bc', 0.01), # 0.0010217113665389242 ('basic_cpp_tests/stack-1.cpp.bc', 0.01), # 0.0022123893805308967 ('basic_cpp_tests/vector-1.cpp.bc', 0.15), # 0.1426766811269205 ('basic_cpp_tests/vector-3.cpp.bc', 0.17), # 0.15063392744891338 diff --git a/diff_tests/perf-latest.txt b/diff_tests/perf-latest.txt index f0c2f72f..15e47f4e 100644 --- a/diff_tests/perf-latest.txt +++ b/diff_tests/perf-latest.txt @@ -1,16 +1,16 @@ -Start testing: Dec 10 11:49 UTC +Start testing: Apr 28 13:38 UTC ---------------------------------------------------------- -1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc -1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc -Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +1169/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" Directory: /home/runner/work/SVF/SVF/Release-build/bin -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Apr 28 13:38 UTC Output: ---------------------------------------------------------- *********General Stats*************** ################ (program : dc.bc)############### -AddrsNum 896 +AddrsNum 894 BBWith2Succ 521 BBWith3Succ 7 CallsNum 863 @@ -19,30 +19,30 @@ ConstStructObj 0 ConstantObj 0 CopysNum 329 FIObjNum 8 -FSObjNum 743 +FSObjNum 741 FunctionObjs 154 GepsNum 977 GlobalObjs 30 -HeapObjs 22 +HeapObjs 21 IndCallSites 23 LoadsNum 2667 MaxStructSize 18 -NonPtrObj 470 -ReturnsNum 227 +NonPtrObj 469 +ReturnsNum 217 StackObjs 544 StoresNum 1209 -TotalCallSite 702 +TotalCallSite 700 TotalFieldObjects 112 -TotalObjects 752 -TotalPTASVFStmts 4523 -TotalPointers 9712 -TotalSVFStmts 9459 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 VarArrayObj 6 VarStructObj 57 ----------------Time and memory stats-------------------- -LLVMIRTime 0.045 -SVFIRTime 0.187 -SymbolTableTime 0.007 +LLVMIRTime 0.029 +SVFIRTime 0.058 +SymbolTableTime 0.006 ####################################################### *********PTACallGraph Stats (Andersen analysis)*************** @@ -52,38 +52,38 @@ CalRetPairInCycle 5 MaxNodeInCycle 2 NodeInCycle 3 TotalCycle 2 -TotalEdge 718 +TotalEdge 716 TotalNode 154 ####################################################### *********Andersen Pointer Analysis Stats*************** ################ (program : dc.bc)############### ----------------Time and memory stats-------------------- -AvgIn/OutAddrEdge 0.191 -AvgIn/OutCopyEdge 0.800818 -AvgIn/OutEdge 1.46689 -AvgIn/OutLoadEdge 0.359243 -AvgIn/OutStoreEdge 0.115827 -AvgPtsSetSize 0.945698 -AvgTopLvlPtsSize 2.57062 +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 CollapseTime 0 CopyGepTime 0 LoadStoreTime 0 -MemoryUsageVmrss 384 -MemoryUsageVmsize 0 +MemoryUsageVmrss 11904 +MemoryUsageVmsize 11500 SCCDetectTime 0 SCCMergeTime 0 -TotalTime 0.033 +TotalTime 0.041 UpdateCGTime 0 ----------------Numbers stats---------------------------- -AddrProcessed 828 -CopyProcessed 3860 +AddrProcessed 826 +CopyProcessed 3848 DummyFieldPtrs 28 FieldObjs 112 GepProcessed 1685 IndCallSites 23 IndEdgeSolved 35 -LoadProcessed 3427 +LoadProcessed 3419 LocalVarInRecur 42 MaxInAddrEdge 1 MaxInCopyEdge 46 @@ -95,47 +95,47 @@ MaxOutCopyEdge 361 MaxOutLoadEdge 55 MaxOutStoreEdge 91 MaxPtsSetSize 59 -MemObjects 752 +MemObjects 862 NodesInCycles 267 -NullPointer 13 -NumOfAddrs 747 -NumOfCGEdge 4990 -NumOfCGNode 4012 -NumOfCopys 2251 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 NumOfFieldExpand 0 NumOfGeps 881 NumOfLoads 1405 NumOfSCCDetect 5 NumOfSFRs 0 NumOfStores 453 -NumOfValidNode 3911 -NumOfValidObjNode 734 -Pointers 9684 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 PointsToBlkPtr 0 PointsToConstPtr 0 SolveIterations 5 StoreProcessed 1008 TotalCycleNum 36 -TotalObjects 864 +TotalObjects 862 TotalPWCCycleNum 1 -TotalPointers 9712 +TotalPointers 9942 ####################################################### ****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** ################ (program : dc.bc)############### -UniquePointsToSets 1087 -TotalUnions 7700 -PropertyUnions 4211 +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 UniqueUnions 213 LookupUnions 2865 PreemptiveUnions 411 -TotalComplements 21184 -PropertyComplements 18573 +TotalComplements 21164 +PropertyComplements 18553 UniqueComplements 70 LookupComplements 2471 PreemptiveComplements 70 -TotalIntersections 3465 -PropertyIntersections 3325 +TotalIntersections 3457 +PropertyIntersections 3317 UniqueIntersections 0 LookupIntersections 0 PreemptiveIntersections 140 @@ -144,27 +144,27 @@ PreemptiveIntersections 140 *********Memory SSA Statistics*************** ################ (program : dc.bc)############### ----------------Time and memory stats-------------------- -AverageRegSize 1.62708 -GenMUCHITime 0.003 -GenRegionTime 0.017 -InsertPHITime 0.001 +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.016 +InsertPHITime 0 SSARenameTime 0.002 TotalMSSATime 0.023 ----------------Numbers stats---------------------------- -BBHasMSSAPhi 249 -CSChiNode 1010 -CSHasChi 390 -CSHasMu 489 -CSMuNode 1738 -FunEntryChi 749 -FunHasEntryChi 114 -FunHasRetMu 117 -FunRetMu 744 +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 LoadHasMu 1489 -LoadMuNode 1533 -MSSAPhi 962 +LoadMuNode 1525 +MSSAPhi 950 MaxRegSize 55 -MemRegions 421 +MemRegions 419 StoreChiNode 538 StoreHasChi 519 ####################################################### @@ -173,45 +173,45 @@ StoreHasChi 519 ################ (program : dc.bc)############### ----------------Time and memory stats-------------------- ATNodeTime 0.003 -AvgWeight 1.58216 +AvgWeight 1.58647 ConnDirEdgeTime 0 -ConnIndEdgeTime 0.006 +ConnIndEdgeTime 0.008 OptTime 0 TLNodeTime 0 -TotalTime 0.009 +TotalTime 0.011 ----------------Numbers stats---------------------------- -ActualIn 1738 -ActualOut 1010 +ActualIn 1726 +ActualOut 998 ActualParam 870 ActualRet 84 -Addr 828 +Addr 826 AvgInDegree 1 AvgIndInDeg 1 AvgIndOutDeg 1 AvgOutDegree 1 Copy 26 DirectCallEdge 567 -DirectEdge 5116 -DirectRetEdge 84 -FormalIn 749 -FormalOut 744 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 FormalParam 146 -FormalRet 18 +FormalRet 16 Gep 977 -IndCallEdge 1823 -IndRetEdge 1068 -IndirectEdge 9652 -IndirectEdgeLabels 15271 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 Load 1489 -MSSAPhi 962 +MSSAPhi 950 MaxInDegree 64 MaxIndInDeg 64 MaxIndOutDeg 83 MaxOutDegree 83 -PHI 19 +PHI 17 Store 533 -TotalEdge 14768 -TotalNode 10194 +TotalEdge 14683 +TotalNode 10138 ####################################################### Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... *********PTACallGraph Stats (Flow-sensitive analysis)*************** @@ -219,11 +219,11 @@ Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... ----------------Numbers stats---------------------------- CalRetPairInCycle 5 FIObjNum 8 -FSObjNum 744 +FSObjNum 742 MaxNodeInCycle 2 NodeInCycle 3 TotalCycle 2 -TotalEdge 718 +TotalEdge 716 TotalNode 154 ####################################################### @@ -232,28 +232,28 @@ TotalNode 154 ----------------Time and memory stats-------------------- AddrTime 0 AverageSCCSize 0 -AvgPtsSize 5.05956 -AvgTopLvlPtsSize 2.33343 -AvgVersionPtsSize 3.84196 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 CopyTime 0 DirectPropaTime 0 GepTime 0 IndirectPropaTime 0 LoadTime 0 -MemoryUsageVmrss 1332 -MemoryUsageVmsize 81924 +MemoryUsageVmrss 3532 +MemoryUsageVmsize 83972 PhiTime 0 -PrelabelingTime 0 +PrelabelingTime 0.001 ProcessTime 0 PropagationTime 0 SCCTime 0 -SolveTime 0.021 +SolveTime 0.026 StoreTime 0 Strong/WeakUpdTime 0 -TotalTime 0.076 +TotalTime 0.097 UpdateCGTime 0 VersionPropTime 0 -meldLabelingTime 0.01 +meldLabelingTime 0.015 ----------------Numbers stats---------------------------- CopysNum 26 DummyFieldPtrs 28 @@ -265,39 +265,39 @@ MaxSCCSize 1 MaxTopLvlPtsSize 59 MaxVersionPtsSize 59 MaxVersionsForObj 0 -MemObjects 752 +MemObjects 862 NumOfNodesInSCC 0 NumOfSCC 0 -Pointers 9684 +Pointers 9942 ProcessedAParam 0 -ProcessedAddr 1656 -ProcessedCopy 53 +ProcessedAddr 1652 +ProcessedCopy 101 ProcessedFRet 0 -ProcessedGep 3624 -ProcessedLoad 6558 -ProcessedMSSANode 10406 -ProcessedPhi 61 -ProcessedStore 2319 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 SolveIterations 2 StoresNum 533 StrongUpdates 432 TotalEmptyVPts 0 -TotalExistingVPts 3670 -TotalNonEmptyVPts 3670 -TotalObjects 867 -TotalPointers 9712 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 TotalSingleVObjs 0 -TotalVersions 4882 +TotalVersions 4888 ####################################################### ****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** ################ (program : dc.bc)############### -UniquePointsToSets 1044 -TotalUnions 33960 -PropertyUnions 24642 -UniqueUnions 332 -LookupUnions 8480 -PreemptiveUnions 506 +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 TotalComplements 0 PropertyComplements 0 UniqueComplements 0 @@ -310,24 +310,24 @@ LookupIntersections 0 PreemptiveIntersections 0 ####################################################### -Test time = 0.52 sec +Test time = 0.43 sec ---------------------------------------------------------- Test Passed. -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Apr 28 13:38 UTC "diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 ---------------------------------------------------------- -1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc -1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc -Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +1170/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" Directory: /home/runner/work/SVF/SVF/Release-build/bin -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Apr 28 13:38 UTC Output: ---------------------------------------------------------- *********General Stats*************** ################ (program : bc.bc)############### -AddrsNum 1354 +AddrsNum 1352 BBWith2Succ 827 BBWith3Succ 23 CallsNum 1180 @@ -336,30 +336,30 @@ ConstStructObj 0 ConstantObj 0 CopysNum 754 FIObjNum 23 -FSObjNum 852 +FSObjNum 850 FunctionObjs 189 GepsNum 1522 GlobalObjs 90 -HeapObjs 30 +HeapObjs 29 IndCallSites 21 LoadsNum 4518 MaxStructSize 12 -NonPtrObj 558 -ReturnsNum 325 +NonPtrObj 557 +ReturnsNum 318 StackObjs 565 StoresNum 1951 -TotalCallSite 1147 +TotalCallSite 1145 TotalFieldObjects 27 -TotalObjects 876 -TotalPTASVFStmts 7046 -TotalPointers 15929 -TotalSVFStmts 15421 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 VarArrayObj 12 VarStructObj 16 ----------------Time and memory stats-------------------- -LLVMIRTime 0.072 -SVFIRTime 0.347 -SymbolTableTime 0.012 +LLVMIRTime 0.038 +SVFIRTime 0.1 +SymbolTableTime 0.01 ####################################################### *********PTACallGraph Stats (Andersen analysis)*************** @@ -369,38 +369,38 @@ CalRetPairInCycle 11 MaxNodeInCycle 1 NodeInCycle 7 TotalCycle 7 -TotalEdge 1163 +TotalEdge 1161 TotalNode 189 ####################################################### *********Andersen Pointer Analysis Stats*************** ################ (program : bc.bc)############### ----------------Time and memory stats-------------------- -AvgIn/OutAddrEdge 0.19065 -AvgIn/OutCopyEdge 0.822732 -AvgIn/OutEdge 1.5398 -AvgIn/OutLoadEdge 0.408585 -AvgIn/OutStoreEdge 0.117831 -AvgPtsSetSize 2.92681 -AvgTopLvlPtsSize 8.35814 +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 CollapseTime 0 CopyGepTime 0 LoadStoreTime 0 -MemoryUsageVmrss 128 -MemoryUsageVmsize 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18048 SCCDetectTime 0 SCCMergeTime 0 -TotalTime 0.079 +TotalTime 0.094 UpdateCGTime 0 ----------------Numbers stats---------------------------- -AddrProcessed 1193 -CopyProcessed 8801 +AddrProcessed 1191 +CopyProcessed 8792 DummyFieldPtrs 30 FieldObjs 27 GepProcessed 3314 IndCallSites 21 IndEdgeSolved 29 -LoadProcessed 14284 +LoadProcessed 14280 LocalVarInRecur 44 MaxInAddrEdge 1 MaxInCopyEdge 63 @@ -412,47 +412,47 @@ MaxOutCopyEdge 716 MaxOutLoadEdge 179 MaxOutStoreEdge 138 MaxPtsSetSize 50 -MemObjects 876 +MemObjects 901 NodesInCycles 335 -NullPointer 36 -NumOfAddrs 1097 -NumOfCGEdge 7763 -NumOfCGNode 5838 -NumOfCopys 3368 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 NumOfFieldExpand 0 NumOfGeps 1366 NumOfLoads 2351 NumOfSCCDetect 7 NumOfSFRs 0 NumOfStores 678 -NumOfValidNode 5754 -NumOfValidObjNode 788 -Pointers 15899 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 PointsToBlkPtr 0 PointsToConstPtr 76 SolveIterations 7 StoreProcessed 3816 TotalCycleNum 48 -TotalObjects 903 +TotalObjects 901 TotalPWCCycleNum 2 -TotalPointers 15929 +TotalPointers 16173 ####################################################### ****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** ################ (program : bc.bc)############### -UniquePointsToSets 1378 -TotalUnions 17458 -PropertyUnions 7262 +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 UniqueUnions 331 LookupUnions 9229 PreemptiveUnions 636 -TotalComplements 45000 -PropertyComplements 36662 +TotalComplements 44972 +PropertyComplements 36634 UniqueComplements 246 LookupComplements 7846 PreemptiveComplements 246 -TotalIntersections 7625 -PropertyIntersections 6913 +TotalIntersections 7621 +PropertyIntersections 6909 UniqueIntersections 5 LookupIntersections 214 PreemptiveIntersections 493 @@ -461,27 +461,27 @@ PreemptiveIntersections 493 *********Memory SSA Statistics*************** ################ (program : bc.bc)############### ----------------Time and memory stats-------------------- -AverageRegSize 2.25882 -GenMUCHITime 0.007 -GenRegionTime 0.035 -InsertPHITime 0.001 -SSARenameTime 0.003 -TotalMSSATime 0.046 +AverageRegSize 2.26478 +GenMUCHITime 0.01 +GenRegionTime 0.033 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.047 ----------------Numbers stats---------------------------- -BBHasMSSAPhi 388 -CSChiNode 1641 -CSHasChi 586 -CSHasMu 857 -CSMuNode 3270 -FunEntryChi 896 -FunHasEntryChi 134 -FunHasRetMu 145 -FunRetMu 894 +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 LoadHasMu 2516 -LoadMuNode 2809 -MSSAPhi 1410 +LoadMuNode 2805 +MSSAPhi 1405 MaxRegSize 34 -MemRegions 425 +MemRegions 423 StoreChiNode 793 StoreHasChi 738 ####################################################### @@ -489,46 +489,46 @@ StoreHasChi 738 *********SVFG Statistics*************** ################ (program : bc.bc)############### ----------------Time and memory stats-------------------- -ATNodeTime 0.004 -AvgWeight 3.46879 +ATNodeTime 0.006 +AvgWeight 3.47539 ConnDirEdgeTime 0 -ConnIndEdgeTime 0.012 +ConnIndEdgeTime 0.016 OptTime 0 TLNodeTime 0 -TotalTime 0.016 +TotalTime 0.022 ----------------Numbers stats---------------------------- -ActualIn 3270 -ActualOut 1641 +ActualIn 3261 +ActualOut 1632 ActualParam 1109 ActualRet 147 -Addr 1193 +Addr 1191 AvgInDegree 1 AvgIndInDeg 1 AvgIndOutDeg 2 AvgOutDegree 1 Copy 5 DirectCallEdge 796 -DirectEdge 7827 -DirectRetEdge 146 -FormalIn 896 -FormalOut 894 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 FormalParam 120 -FormalRet 28 +FormalRet 26 Gep 1522 -IndCallEdge 3490 -IndRetEdge 1831 -IndirectEdge 16483 -IndirectEdgeLabels 57176 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 Load 2519 -MSSAPhi 1410 +MSSAPhi 1405 MaxInDegree 330 MaxIndInDeg 330 MaxIndOutDeg 264 MaxOutDegree 264 -PHI 37 +PHI 35 Store 828 -TotalEdge 24310 -TotalNode 15620 +TotalEdge 24255 +TotalNode 15577 ####################################################### Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... *********PTACallGraph Stats (Flow-sensitive analysis)*************** @@ -536,11 +536,11 @@ Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... ----------------Numbers stats---------------------------- CalRetPairInCycle 11 FIObjNum 23 -FSObjNum 853 +FSObjNum 851 MaxNodeInCycle 1 NodeInCycle 7 TotalCycle 7 -TotalEdge 1163 +TotalEdge 1161 TotalNode 189 ####################################################### @@ -549,28 +549,28 @@ TotalNode 189 ----------------Time and memory stats-------------------- AddrTime 0 AverageSCCSize 0 -AvgPtsSize 17.0547 -AvgTopLvlPtsSize 6.2249 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 AvgVersionPtsSize 11.3741 CopyTime 0 DirectPropaTime 0 GepTime 0 IndirectPropaTime 0 LoadTime 0 -MemoryUsageVmrss 2804 -MemoryUsageVmsize 81924 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83928 PhiTime 0 PrelabelingTime 0.001 ProcessTime 0 PropagationTime 0 SCCTime 0 -SolveTime 0.04 +SolveTime 0.056 StoreTime 0 Strong/WeakUpdTime 0 -TotalTime 0.183 +TotalTime 0.238 UpdateCGTime 0 VersionPropTime 0 -meldLabelingTime 0.038 +meldLabelingTime 0.039 ----------------Numbers stats---------------------------- CopysNum 5 DummyFieldPtrs 30 @@ -582,39 +582,39 @@ MaxSCCSize 1 MaxTopLvlPtsSize 46 MaxVersionPtsSize 46 MaxVersionsForObj 0 -MemObjects 876 +MemObjects 901 NumOfNodesInSCC 0 NumOfSCC 0 -Pointers 15899 +Pointers 16173 ProcessedAParam 0 -ProcessedAddr 2386 -ProcessedCopy 17 +ProcessedAddr 2382 +ProcessedCopy 18 ProcessedFRet 0 -ProcessedGep 6408 -ProcessedLoad 12923 -ProcessedMSSANode 16222 -ProcessedPhi 130 -ProcessedStore 4219 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 SolveIterations 2 StoresNum 828 StrongUpdates 579 TotalEmptyVPts 0 TotalExistingVPts 10479 TotalNonEmptyVPts 10479 -TotalObjects 905 -TotalPointers 15929 +TotalObjects 901 +TotalPointers 16173 TotalSingleVObjs 0 -TotalVersions 13521 +TotalVersions 13520 ####################################################### ****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** ################ (program : bc.bc)############### -UniquePointsToSets 1080 -TotalUnions 98224 -PropertyUnions 77269 -UniqueUnions 373 -LookupUnions 20023 -PreemptiveUnions 559 +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 TotalComplements 0 PropertyComplements 0 UniqueComplements 0 @@ -627,24 +627,24 @@ LookupIntersections 0 PreemptiveIntersections 0 ####################################################### -Test time = 1.04 sec +Test time = 0.89 sec ---------------------------------------------------------- Test Passed. -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 10 11:49 UTC -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 ---------------------------------------------------------- -1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc -1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc -Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +1171/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" Directory: /home/runner/work/SVF/SVF/Release-build/bin -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Apr 28 13:38 UTC Output: ---------------------------------------------------------- *********General Stats*************** ################ (program : libbz2.so.bc)############### -AddrsNum 869 +AddrsNum 868 BBWith2Succ 990 BBWith3Succ 4 CallsNum 476 @@ -653,7 +653,7 @@ ConstStructObj 0 ConstantObj 0 CopysNum 1812 FIObjNum 9 -FSObjNum 648 +FSObjNum 647 FunctionObjs 83 GepsNum 4058 GlobalObjs 7 @@ -662,21 +662,21 @@ IndCallSites 20 LoadsNum 8613 MaxStructSize 64 NonPtrObj 504 -ReturnsNum 57 +ReturnsNum 56 StackObjs 560 StoresNum 2858 -TotalCallSite 277 +TotalCallSite 276 TotalFieldObjects 29 -TotalObjects 658 -TotalPTASVFStmts 9038 -TotalPointers 25045 -TotalSVFStmts 24212 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 VarArrayObj 28 VarStructObj 4 ----------------Time and memory stats-------------------- -LLVMIRTime 0.096 -SVFIRTime 0.519 -SymbolTableTime 0.014 +LLVMIRTime 0.045 +SVFIRTime 0.161 +SymbolTableTime 0.011 ####################################################### *********PTACallGraph Stats (Andersen analysis)*************** @@ -686,38 +686,38 @@ CalRetPairInCycle 0 MaxNodeInCycle 0 NodeInCycle 0 TotalCycle 0 -TotalEdge 277 +TotalEdge 276 TotalNode 83 ####################################################### *********Andersen Pointer Analysis Stats*************** ################ (program : libbz2.so.bc)############### ----------------Time and memory stats-------------------- -AvgIn/OutAddrEdge 0.0749836 -AvgIn/OutCopyEdge 0.88599 -AvgIn/OutEdge 1.40079 -AvgIn/OutLoadEdge 0.408902 -AvgIn/OutStoreEdge 0.0309143 -AvgPtsSetSize 2.43223 -AvgTopLvlPtsSize 7.20135 +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 CollapseTime 0 CopyGepTime 0 LoadStoreTime 0 -MemoryUsageVmrss 256 -MemoryUsageVmsize 0 +MemoryUsageVmrss 28604 +MemoryUsageVmsize 28036 SCCDetectTime 0 SCCMergeTime 0 -TotalTime 0.091 +TotalTime 0.14 UpdateCGTime 0 ----------------Numbers stats---------------------------- -AddrProcessed 699 -CopyProcessed 8724 +AddrProcessed 698 +CopyProcessed 8722 DummyFieldPtrs 4 FieldObjs 29 GepProcessed 7363 IndCallSites 20 IndEdgeSolved 20 -LoadProcessed 9129 +LoadProcessed 9128 LocalVarInRecur 0 MaxInAddrEdge 1 MaxInCopyEdge 70 @@ -729,47 +729,47 @@ MaxOutCopyEdge 1533 MaxOutLoadEdge 935 MaxOutStoreEdge 63 MaxPtsSetSize 9 -MemObjects 658 +MemObjects 686 NodesInCycles 9 -NullPointer 87 -NumOfAddrs 684 -NumOfCGEdge 12094 -NumOfCGNode 9175 -NumOfCopys 4104 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 NumOfFieldExpand 0 NumOfGeps 3978 NumOfLoads 3730 NumOfSCCDetect 7 NumOfSFRs 0 NumOfStores 282 -NumOfValidNode 9122 -NumOfValidObjNode 644 -Pointers 25041 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 PointsToBlkPtr 0 PointsToConstPtr 2 SolveIterations 7 StoreProcessed 1049 TotalCycleNum 3 -TotalObjects 687 +TotalObjects 686 TotalPWCCycleNum 0 -TotalPointers 25045 +TotalPointers 25133 ####################################################### ****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** ################ (program : libbz2.so.bc)############### -UniquePointsToSets 828 -TotalUnions 17475 -PropertyUnions 10415 +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 UniqueUnions 48 LookupUnions 6925 PreemptiveUnions 87 -TotalComplements 65657 -PropertyComplements 58570 +TotalComplements 65643 +PropertyComplements 58556 UniqueComplements 124 LookupComplements 6839 PreemptiveComplements 124 -TotalIntersections 7164 -PropertyIntersections 6916 +TotalIntersections 7163 +PropertyIntersections 6915 UniqueIntersections 0 LookupIntersections 0 PreemptiveIntersections 248 @@ -778,27 +778,27 @@ PreemptiveIntersections 248 *********Memory SSA Statistics*************** ################ (program : libbz2.so.bc)############### ----------------Time and memory stats-------------------- -AverageRegSize 1.32022 -GenMUCHITime 0.002 -GenRegionTime 0.014 +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.013 InsertPHITime 0 -SSARenameTime 0.006 -TotalMSSATime 0.022 +SSARenameTime 0.004 +TotalMSSATime 0.023 ----------------Numbers stats---------------------------- -BBHasMSSAPhi 157 -CSChiNode 65 -CSHasChi 42 -CSHasMu 170 -CSMuNode 224 -FunEntryChi 238 -FunHasEntryChi 62 -FunHasRetMu 64 -FunRetMu 237 +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 LoadHasMu 3740 -LoadMuNode 4180 -MSSAPhi 358 +LoadMuNode 4179 +MSSAPhi 355 MaxRegSize 9 -MemRegions 178 +MemRegions 177 StoreChiNode 337 StoreHasChi 290 ####################################################### @@ -806,46 +806,46 @@ StoreHasChi 290 *********SVFG Statistics*************** ################ (program : libbz2.so.bc)############### ----------------Time and memory stats-------------------- -ATNodeTime 0 -AvgWeight 2.37546 +ATNodeTime 0.001 +AvgWeight 2.37846 ConnDirEdgeTime 0 ConnIndEdgeTime 0.003 OptTime 0 TLNodeTime 0 -TotalTime 0.003 +TotalTime 0.004 ----------------Numbers stats---------------------------- -ActualIn 224 -ActualOut 65 +ActualIn 222 +ActualOut 63 ActualParam 345 ActualRet 14 -Addr 699 +Addr 698 AvgInDegree 1 AvgIndInDeg 1 AvgIndOutDeg 5 AvgOutDegree 1 Copy 3 DirectCallEdge 220 -DirectEdge 8996 -DirectRetEdge 6 -FormalIn 238 -FormalOut 237 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 FormalParam 110 -FormalRet 9 +FormalRet 8 Gep 4058 -IndCallEdge 225 -IndRetEdge 64 -IndirectEdge 5974 -IndirectEdgeLabels 14191 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 Load 3740 -MSSAPhi 358 +MSSAPhi 355 MaxInDegree 70 MaxIndInDeg 70 MaxIndOutDeg 944 MaxOutDegree 944 -PHI 11 +PHI 10 Store 301 -TotalEdge 14970 -TotalNode 10413 +TotalEdge 14954 +TotalNode 10399 ####################################################### Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... *********PTACallGraph Stats (Flow-sensitive analysis)*************** @@ -853,11 +853,11 @@ Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... ----------------Numbers stats---------------------------- CalRetPairInCycle 0 FIObjNum 9 -FSObjNum 649 +FSObjNum 648 MaxNodeInCycle 0 NodeInCycle 0 TotalCycle 0 -TotalEdge 277 +TotalEdge 276 TotalNode 83 ####################################################### @@ -866,28 +866,28 @@ TotalNode 83 ----------------Time and memory stats-------------------- AddrTime 0 AverageSCCSize 0 -AvgPtsSize 5.5279 -AvgTopLvlPtsSize 2.7565 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 AvgVersionPtsSize 4.59595 CopyTime 0 DirectPropaTime 0 GepTime 0 IndirectPropaTime 0 LoadTime 0 -MemoryUsageVmrss 1600 -MemoryUsageVmsize 81924 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85060 PhiTime 0 PrelabelingTime 0.001 ProcessTime 0 PropagationTime 0 SCCTime 0 -SolveTime 0.033 +SolveTime 0.04 StoreTime 0 Strong/WeakUpdTime 0 -TotalTime 0.374 +TotalTime 0.452 UpdateCGTime 0 VersionPropTime 0 -meldLabelingTime 0.007 +meldLabelingTime 0.01 ----------------Numbers stats---------------------------- CopysNum 3 DummyFieldPtrs 4 @@ -899,39 +899,39 @@ MaxSCCSize 1 MaxTopLvlPtsSize 7 MaxVersionPtsSize 9 MaxVersionsForObj 0 -MemObjects 658 +MemObjects 686 NumOfNodesInSCC 0 NumOfSCC 0 -Pointers 25041 +Pointers 25133 ProcessedAParam 0 -ProcessedAddr 2097 -ProcessedCopy 9 +ProcessedAddr 2094 +ProcessedCopy 14 ProcessedFRet 0 -ProcessedGep 19078 -ProcessedLoad 21433 -ProcessedMSSANode 3366 -ProcessedPhi 36 -ProcessedStore 1847 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 SolveIterations 3 StoresNum 301 StrongUpdates 181 TotalEmptyVPts 0 TotalExistingVPts 6514 TotalNonEmptyVPts 6514 -TotalObjects 687 -TotalPointers 25045 +TotalObjects 686 +TotalPointers 25133 TotalSingleVObjs 0 TotalVersions 8563 ####################################################### ****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** ################ (program : libbz2.so.bc)############### -UniquePointsToSets 708 -TotalUnions 72582 -PropertyUnions 59285 -UniqueUnions 39 -LookupUnions 13192 -PreemptiveUnions 66 +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 TotalComplements 0 PropertyComplements 0 UniqueComplements 0 @@ -944,24 +944,24 @@ LookupIntersections 0 PreemptiveIntersections 0 ####################################################### -Test time = 1.58 sec +Test time = 1.39 sec ---------------------------------------------------------- Test Passed. -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Apr 28 13:38 UTC "diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 ---------------------------------------------------------- -1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc -1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc -Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +1172/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" Directory: /home/runner/work/SVF/SVF/Release-build/bin -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Apr 28 13:38 UTC Output: ---------------------------------------------------------- *********General Stats*************** ################ (program : bunzip2.bc)############### -AddrsNum 1273 +AddrsNum 1271 BBWith2Succ 1275 BBWith3Succ 14 CallsNum 718 @@ -970,30 +970,30 @@ ConstStructObj 0 ConstantObj 0 CopysNum 1913 FIObjNum 22 -FSObjNum 918 +FSObjNum 916 FunctionObjs 150 GepsNum 4218 GlobalObjs 32 -HeapObjs 31 +HeapObjs 30 IndCallSites 20 LoadsNum 9449 MaxStructSize 64 -NonPtrObj 718 -ReturnsNum 115 +NonPtrObj 717 +ReturnsNum 102 StackObjs 726 StoresNum 3219 -TotalCallSite 703 +TotalCallSite 701 TotalFieldObjects 51 -TotalObjects 941 -TotalPTASVFStmts 10430 -TotalPointers 28663 -TotalSVFStmts 27443 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 VarArrayObj 40 VarStructObj 16 ----------------Time and memory stats-------------------- -LLVMIRTime 0.114 -SVFIRTime 0.628 -SymbolTableTime 0.019 +LLVMIRTime 0.052 +SVFIRTime 0.181 +SymbolTableTime 0.014 ####################################################### *********PTACallGraph Stats (Andersen analysis)*************** @@ -1003,38 +1003,38 @@ CalRetPairInCycle 1 MaxNodeInCycle 1 NodeInCycle 1 TotalCycle 1 -TotalEdge 703 +TotalEdge 701 TotalNode 150 ####################################################### *********Andersen Pointer Analysis Stats*************** ################ (program : bunzip2.bc)############### ----------------Time and memory stats-------------------- -AvgIn/OutAddrEdge 0.100951 -AvgIn/OutCopyEdge 0.858801 -AvgIn/OutEdge 1.39962 -AvgIn/OutLoadEdge 0.401713 -AvgIn/OutStoreEdge 0.0381541 -AvgPtsSetSize 3.78461 -AvgTopLvlPtsSize 11.4205 +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 CollapseTime 0 CopyGepTime 0 LoadStoreTime 0 -MemoryUsageVmrss 128 -MemoryUsageVmsize 0 +MemoryUsageVmrss 33852 +MemoryUsageVmsize 33388 SCCDetectTime 0 SCCMergeTime 0 -TotalTime 0.124 +TotalTime 0.22 UpdateCGTime 0 ----------------Numbers stats---------------------------- -AddrProcessed 1087 -CopyProcessed 11237 +AddrProcessed 1085 +CopyProcessed 11222 DummyFieldPtrs 12 FieldObjs 51 GepProcessed 9174 IndCallSites 20 IndEdgeSolved 20 -LoadProcessed 23749 +LoadProcessed 23746 LocalVarInRecur 5 MaxInAddrEdge 1 MaxInCopyEdge 70 @@ -1046,47 +1046,47 @@ MaxOutCopyEdge 1548 MaxOutLoadEdge 935 MaxOutStoreEdge 63 MaxPtsSetSize 16 -MemObjects 941 +MemObjects 990 NodesInCycles 20 -NullPointer 9 -NumOfAddrs 1061 -NumOfCGEdge 13649 -NumOfCGNode 10611 -NumOfCopys 4891 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 NumOfFieldExpand 0 NumOfGeps 4135 NumOfLoads 4222 NumOfSCCDetect 7 NumOfSFRs 0 NumOfStores 401 -NumOfValidNode 10510 -NumOfValidObjNode 923 -Pointers 28651 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 PointsToBlkPtr 0 PointsToConstPtr 6 SolveIterations 7 StoreProcessed 2286 TotalCycleNum 6 -TotalObjects 992 +TotalObjects 990 TotalPWCCycleNum 1 -TotalPointers 28663 +TotalPointers 28829 ####################################################### ****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** ################ (program : bunzip2.bc)############### -UniquePointsToSets 1199 -TotalUnions 22686 -PropertyUnions 12276 +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 UniqueUnions 101 LookupUnions 10124 PreemptiveUnions 185 -TotalComplements 76089 -PropertyComplements 65548 +TotalComplements 76061 +PropertyComplements 65520 UniqueComplements 167 LookupComplements 10207 PreemptiveComplements 167 -TotalIntersections 11888 -PropertyIntersections 11554 +TotalIntersections 11885 +PropertyIntersections 11551 UniqueIntersections 0 LookupIntersections 0 PreemptiveIntersections 334 @@ -1095,27 +1095,27 @@ PreemptiveIntersections 334 *********Memory SSA Statistics*************** ################ (program : bunzip2.bc)############### ----------------Time and memory stats-------------------- -AverageRegSize 1.66779 +AverageRegSize 1.6723 GenMUCHITime 0.005 -GenRegionTime 0.024 -InsertPHITime 0.002 -SSARenameTime 0.003 -TotalMSSATime 0.034 +GenRegionTime 0.023 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.035 ----------------Numbers stats---------------------------- -BBHasMSSAPhi 235 -CSChiNode 246 -CSHasChi 143 -CSHasMu 331 -CSMuNode 662 -FunEntryChi 474 -FunHasEntryChi 107 -FunHasRetMu 101 -FunRetMu 447 +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 LoadHasMu 4233 -LoadMuNode 4686 -MSSAPhi 663 +LoadMuNode 4683 +MSSAPhi 652 MaxRegSize 16 -MemRegions 298 +MemRegions 296 StoreChiNode 463 StoreHasChi 410 ####################################################### @@ -1124,45 +1124,45 @@ StoreHasChi 410 ################ (program : bunzip2.bc)############### ----------------Time and memory stats-------------------- ATNodeTime 0.002 -AvgWeight 3.18455 +AvgWeight 3.20501 ConnDirEdgeTime 0 -ConnIndEdgeTime 0.004 +ConnIndEdgeTime 0.006 OptTime 0 TLNodeTime 0 -TotalTime 0.006 +TotalTime 0.008 ----------------Numbers stats---------------------------- -ActualIn 662 -ActualOut 246 +ActualIn 647 +ActualOut 231 ActualParam 965 ActualRet 45 -Addr 1087 +Addr 1085 AvgInDegree 1 AvgIndInDeg 1 AvgIndOutDeg 3 AvgOutDegree 1 Copy 8 DirectCallEdge 399 -DirectEdge 10756 -DirectRetEdge 37 -FormalIn 474 -FormalOut 447 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 FormalParam 151 -FormalRet 15 +FormalRet 13 Gep 4218 -IndCallEdge 681 -IndRetEdge 250 -IndirectEdge 8621 -IndirectEdgeLabels 27454 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 Load 4233 -MSSAPhi 663 +MSSAPhi 652 MaxInDegree 70 MaxIndInDeg 70 MaxIndOutDeg 944 MaxOutDegree 944 -PHI 19 +PHI 17 Store 429 -TotalEdge 19377 -TotalNode 13663 +TotalEdge 19280 +TotalNode 13602 ####################################################### Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... *********PTACallGraph Stats (Flow-sensitive analysis)*************** @@ -1170,11 +1170,11 @@ Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... ----------------Numbers stats---------------------------- CalRetPairInCycle 1 FIObjNum 22 -FSObjNum 919 +FSObjNum 917 MaxNodeInCycle 1 NodeInCycle 1 TotalCycle 1 -TotalEdge 703 +TotalEdge 701 TotalNode 150 ####################################################### @@ -1183,28 +1183,28 @@ TotalNode 150 ----------------Time and memory stats-------------------- AddrTime 0 AverageSCCSize 0 -AvgPtsSize 14.0751 -AvgTopLvlPtsSize 7.45619 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 AvgVersionPtsSize 9.85726 CopyTime 0 DirectPropaTime 0 GepTime 0 IndirectPropaTime 0 LoadTime 0 -MemoryUsageVmrss 2444 -MemoryUsageVmsize 81924 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85340 PhiTime 0 -PrelabelingTime 0 +PrelabelingTime 0.001 ProcessTime 0 PropagationTime 0 SCCTime 0 -SolveTime 0.054 +SolveTime 0.07 StoreTime 0 Strong/WeakUpdTime 0 -TotalTime 0.448 +TotalTime 0.529 UpdateCGTime 0 VersionPropTime 0 -meldLabelingTime 0.017 +meldLabelingTime 0.018 ----------------Numbers stats---------------------------- CopysNum 8 DummyFieldPtrs 12 @@ -1216,39 +1216,39 @@ MaxSCCSize 1 MaxTopLvlPtsSize 15 MaxVersionPtsSize 16 MaxVersionsForObj 0 -MemObjects 941 +MemObjects 990 NumOfNodesInSCC 0 NumOfSCC 0 -Pointers 28651 +Pointers 28829 ProcessedAParam 0 -ProcessedAddr 2174 -ProcessedCopy 19 +ProcessedAddr 2170 +ProcessedCopy 25 ProcessedFRet 0 -ProcessedGep 20324 -ProcessedLoad 25529 -ProcessedMSSANode 4984 -ProcessedPhi 43 -ProcessedStore 2225 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 SolveIterations 2 StoresNum 429 StrongUpdates 287 TotalEmptyVPts 0 TotalExistingVPts 11426 TotalNonEmptyVPts 11426 -TotalObjects 992 -TotalPointers 28663 +TotalObjects 990 +TotalPointers 28829 TotalSingleVObjs 0 TotalVersions 14394 ####################################################### ****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** ################ (program : bunzip2.bc)############### -UniquePointsToSets 1066 -TotalUnions 174307 -PropertyUnions 145584 -UniqueUnions 154 -LookupUnions 28331 -PreemptiveUnions 238 +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150188 +UniqueUnions 128 +LookupUnions 28175 +PreemptiveUnions 202 TotalComplements 0 PropertyComplements 0 UniqueComplements 0 @@ -1261,57 +1261,57 @@ LookupIntersections 0 PreemptiveIntersections 0 ####################################################### -Test time = 1.93 sec +Test time = 1.68 sec ---------------------------------------------------------- Test Passed. -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Apr 28 13:38 UTC "diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 ---------------------------------------------------------- -1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc -1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc -Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +1173/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" Directory: /home/runner/work/SVF/SVF/Release-build/bin -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Apr 28 13:38 UTC Output: ---------------------------------------------------------- vcall gep idx not constantint *********General Stats*************** ################ (program : htop.bc)############### -AddrsNum 4614 -BBWith2Succ 1519 -BBWith3Succ 26 -CallsNum 2676 +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 ConstArrayObj 40 ConstStructObj 51 ConstantObj 0 CopysNum 1452 FIObjNum 251 -FSObjNum 2791 +FSObjNum 2782 FunctionObjs 550 -GepsNum 5199 +GepsNum 5207 GlobalObjs 151 -HeapObjs 62 +HeapObjs 58 IndCallSites 46 -LoadsNum 10440 +LoadsNum 10444 MaxStructSize 65 -NonPtrObj 1971 -ReturnsNum 609 -StackObjs 2278 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 StoresNum 5154 -TotalCallSite 2502 -TotalFieldObjects 157 -TotalObjects 3043 -TotalPTASVFStmts 20164 -TotalPointers 37161 -TotalSVFStmts 37169 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 VarArrayObj 92 -VarStructObj 54 +VarStructObj 52 ----------------Time and memory stats-------------------- -LLVMIRTime 0.154 -SVFIRTime 0.822 -SymbolTableTime 0.032 +LLVMIRTime 0.069 +SVFIRTime 0.245 +SymbolTableTime 0.024 ####################################################### *********PTACallGraph Stats (Andersen analysis)*************** @@ -1321,166 +1321,166 @@ CalRetPairInCycle 979 MaxNodeInCycle 125 NodeInCycle 126 TotalCycle 2 -TotalEdge 3881 +TotalEdge 3876 TotalNode 550 ####################################################### *********Andersen Pointer Analysis Stats*************** ################ (program : htop.bc)############### ----------------Time and memory stats-------------------- -AvgIn/OutAddrEdge 0.199086 -AvgIn/OutCopyEdge 0.820665 -AvgIn/OutEdge 1.47375 -AvgIn/OutLoadEdge 0.320366 -AvgIn/OutStoreEdge 0.133631 -AvgPtsSetSize 39.0117 -AvgTopLvlPtsSize 87.9575 +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 CollapseTime 0 CopyGepTime 0 LoadStoreTime 0 -MemoryUsageVmrss 384 -MemoryUsageVmsize 0 +MemoryUsageVmrss 111420 +MemoryUsageVmsize 110840 SCCDetectTime 0 SCCMergeTime 0 -TotalTime 1.008 +TotalTime 1.254 UpdateCGTime 0 ----------------Numbers stats---------------------------- -AddrProcessed 4049 -CopyProcessed 29287 +AddrProcessed 4040 +CopyProcessed 29249 DummyFieldPtrs 123 -FieldObjs 157 -GepProcessed 9613 +FieldObjs 155 +GepProcessed 9639 IndCallSites 46 IndEdgeSolved 1423 -LoadProcessed 387409 +LoadProcessed 389104 LocalVarInRecur 100 MaxInAddrEdge 1 MaxInCopyEdge 462 -MaxInLoadEdge 287 +MaxInLoadEdge 291 MaxInStoreEdge 69 MaxNodesInSCC 173 MaxOutAddrEdge 1008 MaxOutCopyEdge 1457 MaxOutLoadEdge 352 -MaxOutStoreEdge 235 +MaxOutStoreEdge 239 MaxPtsSetSize 222 -MemObjects 3043 +MemObjects 3189 NodesInCycles 244 -NullPointer 152 -NumOfAddrs 3659 -NumOfCGEdge 23427 -NumOfCGNode 18622 -NumOfCopys 9985 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 NumOfFieldExpand 0 -NumOfGeps 5098 -NumOfLoads 5888 +NumOfGeps 5106 +NumOfLoads 5892 NumOfSCCDetect 14 NumOfSFRs 0 -NumOfStores 2456 -NumOfValidNode 18379 -NumOfValidObjNode 2716 -Pointers 37038 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 PointsToBlkPtr 0 -PointsToConstPtr 2402 +PointsToConstPtr 2410 SolveIterations 14 -StoreProcessed 57447 +StoreProcessed 59147 TotalCycleNum 22 -TotalObjects 3200 +TotalObjects 3189 TotalPWCCycleNum 8 -TotalPointers 37161 +TotalPointers 38427 ####################################################### ****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** ################ (program : htop.bc)############### -UniquePointsToSets 6125 -TotalUnions 55511 -PropertyUnions 31689 -UniqueUnions 1630 -LookupUnions 19137 -PreemptiveUnions 3055 -TotalComplements 276266 -PropertyComplements 257020 -UniqueComplements 1635 -LookupComplements 15976 -PreemptiveComplements 1635 -TotalIntersections 87434 -PropertyIntersections 81085 +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 UniqueIntersections 31 -LookupIntersections 3023 -PreemptiveIntersections 3295 +LookupIntersections 3025 +PreemptiveIntersections 3307 ####################################################### *********Memory SSA Statistics*************** ################ (program : htop.bc)############### ----------------Time and memory stats-------------------- -AverageRegSize 5.47678 -GenMUCHITime 0.034 -GenRegionTime 0.461 +AverageRegSize 5.50467 +GenMUCHITime 0.033 +GenRegionTime 0.445 InsertPHITime 0.002 -SSARenameTime 0.003 -TotalMSSATime 0.506 +SSARenameTime 0.006 +TotalMSSATime 0.486 ----------------Numbers stats---------------------------- -BBHasMSSAPhi 477 -CSChiNode 1924 -CSHasChi 936 -CSHasMu 1134 -CSMuNode 2970 -FunEntryChi 2347 -FunHasEntryChi 418 -FunHasRetMu 419 -FunRetMu 2339 -LoadHasMu 6145 -LoadMuNode 7288 -MSSAPhi 1445 +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 MaxRegSize 206 -MemRegions 1292 -StoreChiNode 1627 -StoreHasChi 1506 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 ####################################################### *********SVFG Statistics*************** ################ (program : htop.bc)############### ----------------Time and memory stats-------------------- -ATNodeTime 0.013 -AvgWeight 24.3227 +ATNodeTime 0.014 +AvgWeight 24.5386 ConnDirEdgeTime 0 -ConnIndEdgeTime 0.04 +ConnIndEdgeTime 0.042 OptTime 0 TLNodeTime 0 -TotalTime 0.053 +TotalTime 0.057 ----------------Numbers stats---------------------------- -ActualIn 2970 -ActualOut 1924 +ActualIn 2947 +ActualOut 1901 ActualParam 3222 ActualRet 388 -Addr 4049 +Addr 4040 AvgInDegree 1 AvgIndInDeg 1 AvgIndOutDeg 2 AvgOutDegree 1 Copy 6 -DirectCallEdge 1752 -DirectEdge 21964 -DirectRetEdge 385 -FormalIn 2347 -FormalOut 2339 -FormalParam 601 -FormalRet 84 -Gep 5199 -IndCallEdge 3000 -IndRetEdge 1943 -IndirectEdge 23183 -IndirectEdgeLabels 563873 -Load 6145 -MSSAPhi 1445 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 MaxInDegree 499 MaxIndInDeg 499 MaxIndOutDeg 183 MaxOutDegree 411 -PHI 113 -Store 2515 -TotalEdge 45147 -TotalNode 33348 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 ####################################################### Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... *********PTACallGraph Stats (Flow-sensitive analysis)*************** @@ -1488,11 +1488,11 @@ Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... ----------------Numbers stats---------------------------- CalRetPairInCycle 796 FIObjNum 251 -FSObjNum 2792 +FSObjNum 2783 MaxNodeInCycle 118 NodeInCycle 119 TotalCycle 2 -TotalEdge 3437 +TotalEdge 3432 TotalNode 550 ####################################################### @@ -1501,32 +1501,32 @@ TotalNode 550 ----------------Time and memory stats-------------------- AddrTime 0 AverageSCCSize 0 -AvgPtsSize 112.435 -AvgTopLvlPtsSize 44.7293 -AvgVersionPtsSize 61.0659 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 CopyTime 0 DirectPropaTime 0 GepTime 0 IndirectPropaTime 0 LoadTime 0 -MemoryUsageVmrss 44628 -MemoryUsageVmsize 102336 +MemoryUsageVmrss 46772 +MemoryUsageVmsize 103984 PhiTime 0 -PrelabelingTime 0.003 +PrelabelingTime 0.004 ProcessTime 0 PropagationTime 0 SCCTime 0 -SolveTime 0.817 +SolveTime 1.013 StoreTime 0 Strong/WeakUpdTime 0 -TotalTime 1.693 +TotalTime 2.151 UpdateCGTime 0 VersionPropTime 0 -meldLabelingTime 0.393 +meldLabelingTime 0.46 ----------------Numbers stats---------------------------- CopysNum 6 DummyFieldPtrs 123 -FieldObjs 157 +FieldObjs 155 IndEdgeSolved 979 LocalVarInRecur 711 MaxPtsSize 190 @@ -1534,39 +1534,39 @@ MaxSCCSize 1 MaxTopLvlPtsSize 190 MaxVersionPtsSize 190 MaxVersionsForObj 0 -MemObjects 3043 +MemObjects 3189 NumOfNodesInSCC 0 NumOfSCC 0 -Pointers 37038 +Pointers 38427 ProcessedAParam 0 -ProcessedAddr 16196 -ProcessedCopy 26 +ProcessedAddr 16160 +ProcessedCopy 36 ProcessedFRet 0 -ProcessedGep 30709 -ProcessedLoad 50779 -ProcessedMSSANode 44100 -ProcessedPhi 641 -ProcessedStore 17029 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 SolveIterations 4 -StoresNum 2515 -StrongUpdates 855 +StoresNum 2517 +StrongUpdates 853 TotalEmptyVPts 0 -TotalExistingVPts 114951 -TotalNonEmptyVPts 114951 -TotalObjects 3200 -TotalPointers 37161 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 TotalSingleVObjs 0 -TotalVersions 140087 +TotalVersions 140899 ####################################################### ****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** ################ (program : htop.bc)############### -UniquePointsToSets 5995 -TotalUnions 1938715 -PropertyUnions 1720222 -UniqueUnions 7172 -LookupUnions 201230 -PreemptiveUnions 10091 +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761940 +UniqueUnions 9398 +LookupUnions 193121 +PreemptiveUnions 13299 TotalComplements 0 PropertyComplements 0 UniqueComplements 0 @@ -1579,56 +1579,56 @@ LookupIntersections 0 PreemptiveIntersections 0 ####################################################### -Test time = 5.27 sec +Test time = 5.50 sec ---------------------------------------------------------- Test Passed. -"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 10 11:49 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Apr 28 13:38 UTC "diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 ---------------------------------------------------------- -1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc -1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc -Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +1174/1440 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1440 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" Directory: /home/runner/work/SVF/SVF/Release-build/bin -"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 10 11:49 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Apr 28 13:38 UTC Output: ---------------------------------------------------------- *********General Stats*************** ################ (program : libcurl.so.bc)############### -AddrsNum 12175 -BBWith2Succ 8503 -BBWith3Succ 217 +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 CallsNum 11660 ConstArrayObj 17 ConstStructObj 31 ConstantObj 0 CopysNum 4389 FIObjNum 390 -FSObjNum 8736 +FSObjNum 8735 FunctionObjs 1550 -GepsNum 27922 +GepsNum 27964 GlobalObjs 76 HeapObjs 301 IndCallSites 1068 -LoadsNum 43084 +LoadsNum 43105 MaxStructSize 458 -NonPtrObj 4986 -ReturnsNum 3092 +NonPtrObj 4985 +ReturnsNum 3010 StackObjs 7198 -StoresNum 22562 -TotalCallSite 7147 -TotalFieldObjects 1162 -TotalObjects 9127 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 TotalPTASVFStmts 87170 -TotalPointers 151806 +TotalPointers 161748 TotalSVFStmts 161651 VarArrayObj 220 VarStructObj 199 ----------------Time and memory stats-------------------- -LLVMIRTime 0.696 -SVFIRTime 3.814 -SymbolTableTime 0.138 +LLVMIRTime 0.208 +SVFIRTime 1.367 +SymbolTableTime 0.088 ####################################################### *********PTACallGraph Stats (Andersen analysis)*************** @@ -1638,248 +1638,248 @@ CalRetPairInCycle 182 MaxNodeInCycle 58 NodeInCycle 96 TotalCycle 10 -TotalEdge 7757 +TotalEdge 7756 TotalNode 1550 ####################################################### *********Andersen Pointer Analysis Stats*************** ################ (program : libcurl.so.bc)############### ----------------Time and memory stats-------------------- -AvgIn/OutAddrEdge 0.134748 -AvgIn/OutCopyEdge 0.882193 -AvgIn/OutEdge 1.50944 -AvgIn/OutLoadEdge 0.371571 -AvgIn/OutStoreEdge 0.120927 -AvgPtsSetSize 56.3202 -AvgTopLvlPtsSize 124.013 +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 CollapseTime 0 CopyGepTime 0 LoadStoreTime 0 -MemoryUsageVmrss 104520 -MemoryUsageVmsize 103384 +MemoryUsageVmrss 594108 +MemoryUsageVmsize 593272 SCCDetectTime 0 SCCMergeTime 0 -TotalTime 9.74 +TotalTime 12.373 UpdateCGTime 0 ----------------Numbers stats---------------------------- -AddrProcessed 10898 -CopyProcessed 136749 +AddrProcessed 10897 +CopyProcessed 136827 DummyFieldPtrs 345 -FieldObjs 1162 -GepProcessed 91731 +FieldObjs 1163 +GepProcessed 91953 IndCallSites 1068 IndEdgeSolved 1641 -LoadProcessed 5341298 +LoadProcessed 5371327 LocalVarInRecur 221 MaxInAddrEdge 1 -MaxInCopyEdge 1122 -MaxInLoadEdge 1902 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 MaxInStoreEdge 299 MaxNodesInSCC 515 MaxOutAddrEdge 2060 -MaxOutCopyEdge 5482 +MaxOutCopyEdge 5490 MaxOutLoadEdge 613 -MaxOutStoreEdge 1865 +MaxOutStoreEdge 1877 MaxPtsSetSize 352 -MemObjects 9127 +MemObjects 10289 NodesInCycles 1765 -NullPointer 4709 -NumOfAddrs 10364 -NumOfCGEdge 105733 -NumOfCGNode 78170 -NumOfCopys 40699 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 NumOfFieldExpand 0 -NumOfGeps 27154 -NumOfLoads 28579 +NumOfGeps 27196 +NumOfLoads 28600 NumOfSCCDetect 15 NumOfSFRs 0 -NumOfStores 9301 -NumOfValidNode 76914 -NumOfValidObjNode 8968 -Pointers 151461 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 PointsToBlkPtr 0 -PointsToConstPtr 9191 +PointsToConstPtr 9224 SolveIterations 15 -StoreProcessed 2516327 +StoreProcessed 2538125 TotalCycleNum 175 TotalObjects 10289 TotalPWCCycleNum 29 -TotalPointers 151806 +TotalPointers 161748 ####################################################### ****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** ################ (program : libcurl.so.bc)############### -UniquePointsToSets 17812 -TotalUnions 271902 -PropertyUnions 82377 -UniqueUnions 5908 -LookupUnions 173335 -PreemptiveUnions 10282 -TotalComplements 1215633 -PropertyComplements 1042950 -UniqueComplements 5131 -LookupComplements 162426 -PreemptiveComplements 5126 -TotalIntersections 507647 -PropertyIntersections 494743 +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498700 UniqueIntersections 59 -LookupIntersections 2554 -PreemptiveIntersections 10291 +LookupIntersections 2550 +PreemptiveIntersections 10315 ####################################################### -Test time = 16.81 sec +Test time = 16.41 sec ---------------------------------------------------------- Test Passed. -"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 10 11:49 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Apr 28 13:38 UTC "diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 ---------------------------------------------------------- -1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc -1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc -Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +1175/1440 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1440 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" Directory: /home/runner/work/SVF/SVF/Release-build/bin -"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 10 11:49 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Apr 28 13:38 UTC Output: ---------------------------------------------------------- *********General Stats*************** ################ (program : bash.bc)############### -AddrsNum 17597 -BBWith2Succ 17391 -BBWith3Succ 158 -CallsNum 18052 +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 ConstArrayObj 95 ConstStructObj 36 ConstantObj 0 CopysNum 10183 FIObjNum 327 -FSObjNum 12587 +FSObjNum 12583 FunctionObjs 2369 -GepsNum 17899 +GepsNum 17909 GlobalObjs 875 -HeapObjs 70 +HeapObjs 71 IndCallSites 72 -LoadsNum 59146 +LoadsNum 59151 MaxStructSize 24 -NonPtrObj 8137 -ReturnsNum 5697 -StackObjs 9599 -StoresNum 27669 -TotalCallSite 13534 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 TotalFieldObjects 1278 -TotalObjects 12915 -TotalPTASVFStmts 93563 -TotalPointers 223871 -TotalSVFStmts 223603 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 VarArrayObj 157 VarStructObj 462 ----------------Time and memory stats-------------------- -LLVMIRTime 1.312 -SVFIRTime 5.852 -SymbolTableTime 0.234 +LLVMIRTime 0.373 +SVFIRTime 2.206 +SymbolTableTime 0.159 ####################################################### *********PTACallGraph Stats (Andersen analysis)*************** ################ (program : bash.bc)############### ----------------Numbers stats---------------------------- -CalRetPairInCycle 6395 +CalRetPairInCycle 6385 MaxNodeInCycle 1158 -NodeInCycle 1184 -TotalCycle 12 -TotalEdge 14865 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 TotalNode 2369 ####################################################### *********Andersen Pointer Analysis Stats*************** ################ (program : bash.bc)############### ----------------Time and memory stats-------------------- -AvgIn/OutAddrEdge 0.177235 -AvgIn/OutCopyEdge 0.752778 -AvgIn/OutEdge 1.4764 -AvgIn/OutLoadEdge 0.408356 -AvgIn/OutStoreEdge 0.138032 -AvgPtsSetSize 63.1382 -AvgTopLvlPtsSize 195.826 +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 CollapseTime 0 CopyGepTime 0 LoadStoreTime 0 -MemoryUsageVmrss 21632 -MemoryUsageVmsize 21336 +MemoryUsageVmrss 836352 +MemoryUsageVmsize 835820 SCCDetectTime 0 SCCMergeTime 0 -TotalTime 10.357 +TotalTime 13.006 UpdateCGTime 0 ----------------Numbers stats---------------------------- -AddrProcessed 15089 -CopyProcessed 115354 +AddrProcessed 15085 +CopyProcessed 113956 DummyFieldPtrs 977 FieldObjs 1278 -GepProcessed 25732 +GepProcessed 25632 IndCallSites 72 IndEdgeSolved 1375 -LoadProcessed 1652362 -LocalVarInRecur 3420 +LoadProcessed 1618078 +LocalVarInRecur 3372 MaxInAddrEdge 1 -MaxInCopyEdge 1067 -MaxInLoadEdge 3724 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 MaxInStoreEdge 95 MaxNodesInSCC 281 MaxOutAddrEdge 2176 -MaxOutCopyEdge 13327 +MaxOutCopyEdge 13223 MaxOutLoadEdge 300 -MaxOutStoreEdge 3280 +MaxOutStoreEdge 3282 MaxPtsSetSize 327 -MemObjects 12915 +MemObjects 14189 NodesInCycles 3050 -NullPointer 511 -NumOfAddrs 12505 -NumOfCGEdge 91664 -NumOfCGNode 71405 -NumOfCopys 36081 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 NumOfFieldExpand 0 -NumOfGeps 17032 -NumOfLoads 28812 +NumOfGeps 17042 +NumOfLoads 28817 NumOfSCCDetect 9 NumOfSFRs 0 -NumOfStores 9739 -NumOfValidNode 70556 -NumOfValidObjNode 10666 -Pointers 222894 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 PointsToBlkPtr 0 -PointsToConstPtr 13127 +PointsToConstPtr 12752 SolveIterations 9 -StoreProcessed 479542 +StoreProcessed 481320 TotalCycleNum 346 -TotalObjects 14193 +TotalObjects 14189 TotalPWCCycleNum 26 -TotalPointers 223871 +TotalPointers 229277 ####################################################### ****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** ################ (program : bash.bc)############### -UniquePointsToSets 15695 -TotalUnions 175727 -PropertyUnions 144034 -UniqueUnions 1403 -LookupUnions 27651 -PreemptiveUnions 2639 -TotalComplements 668784 -PropertyComplements 643801 +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 UniqueComplements 515 -LookupComplements 23953 +LookupComplements 23586 PreemptiveComplements 515 -TotalIntersections 1097534 -PropertyIntersections 1088297 +TotalIntersections 1070583 +PropertyIntersections 1068990 UniqueIntersections 6 -LookupIntersections 8196 +LookupIntersections 552 PreemptiveIntersections 1035 ####################################################### -Test time = 21.15 sec +Test time = 19.35 sec ---------------------------------------------------------- Test Passed. -"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 10 11:50 UTC -"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:21 +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 ---------------------------------------------------------- -End testing: Dec 10 11:50 UTC +End testing: Apr 28 13:38 UTC diff --git a/diff_tests/perf_history/perf-2024-12-16T05:15:36.txt b/diff_tests/perf_history/perf-2024-12-16T05:15:36.txt new file mode 100644 index 00000000..1a25cc67 --- /dev/null +++ b/diff_tests/perf_history/perf-2024-12-16T05:15:36.txt @@ -0,0 +1,1885 @@ +Start testing: Dec 16 05:14 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 16 05:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 896 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 743 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 22 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 470 +ReturnsNum 227 +StackObjs 544 +StoresNum 1209 +TotalCallSite 702 +TotalFieldObjects 112 +TotalObjects 752 +TotalPTASVFStmts 4523 +TotalPointers 9712 +TotalSVFStmts 9459 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.186 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.191 +AvgIn/OutCopyEdge 0.800818 +AvgIn/OutEdge 1.46689 +AvgIn/OutLoadEdge 0.359243 +AvgIn/OutStoreEdge 0.115827 +AvgPtsSetSize 0.945698 +AvgTopLvlPtsSize 2.57062 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.031 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 828 +CopyProcessed 3860 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3427 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 752 +NodesInCycles 267 +NullPointer 13 +NumOfAddrs 747 +NumOfCGEdge 4990 +NumOfCGNode 4012 +NumOfCopys 2251 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3911 +NumOfValidObjNode 734 +Pointers 9684 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 864 +TotalPWCCycleNum 1 +TotalPointers 9712 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1087 +TotalUnions 7700 +PropertyUnions 4211 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21184 +PropertyComplements 18573 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3465 +PropertyIntersections 3325 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.62708 +GenMUCHITime 0.005 +GenRegionTime 0.018 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 249 +CSChiNode 1010 +CSHasChi 390 +CSHasMu 489 +CSMuNode 1738 +FunEntryChi 749 +FunHasEntryChi 114 +FunHasRetMu 117 +FunRetMu 744 +LoadHasMu 1489 +LoadMuNode 1533 +MSSAPhi 962 +MaxRegSize 55 +MemRegions 421 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58216 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 1738 +ActualOut 1010 +ActualParam 870 +ActualRet 84 +Addr 828 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5116 +DirectRetEdge 84 +FormalIn 749 +FormalOut 744 +FormalParam 146 +FormalRet 18 +Gep 977 +IndCallEdge 1823 +IndRetEdge 1068 +IndirectEdge 9652 +IndirectEdgeLabels 15271 +Load 1489 +MSSAPhi 962 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 19 +Store 533 +TotalEdge 14768 +TotalNode 10194 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 744 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05956 +AvgTopLvlPtsSize 2.33343 +AvgVersionPtsSize 3.84196 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1488 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.079 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 752 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9684 +ProcessedAParam 0 +ProcessedAddr 1656 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10406 +ProcessedPhi 61 +ProcessedStore 2319 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3670 +TotalNonEmptyVPts 3670 +TotalObjects 867 +TotalPointers 9712 +TotalSingleVObjs 0 +TotalVersions 4882 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1044 +TotalUnions 33960 +PropertyUnions 24642 +UniqueUnions 332 +LookupUnions 8480 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.52 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 16 05:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 16 05:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1354 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 852 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 30 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 558 +ReturnsNum 325 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1147 +TotalFieldObjects 27 +TotalObjects 876 +TotalPTASVFStmts 7046 +TotalPointers 15929 +TotalSVFStmts 15421 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.072 +SVFIRTime 0.344 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.19065 +AvgIn/OutCopyEdge 0.822732 +AvgIn/OutEdge 1.5398 +AvgIn/OutLoadEdge 0.408585 +AvgIn/OutStoreEdge 0.117831 +AvgPtsSetSize 2.92681 +AvgTopLvlPtsSize 8.35814 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 512 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.077 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1193 +CopyProcessed 8801 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14284 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 876 +NodesInCycles 335 +NullPointer 36 +NumOfAddrs 1097 +NumOfCGEdge 7763 +NumOfCGNode 5838 +NumOfCopys 3368 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5754 +NumOfValidObjNode 788 +Pointers 15899 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 903 +TotalPWCCycleNum 2 +TotalPointers 15929 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1378 +TotalUnions 17458 +PropertyUnions 7262 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 45000 +PropertyComplements 36662 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7625 +PropertyIntersections 6913 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.25882 +GenMUCHITime 0.007 +GenRegionTime 0.035 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 388 +CSChiNode 1641 +CSHasChi 586 +CSHasMu 857 +CSMuNode 3270 +FunEntryChi 896 +FunHasEntryChi 134 +FunHasRetMu 145 +FunRetMu 894 +LoadHasMu 2516 +LoadMuNode 2809 +MSSAPhi 1410 +MaxRegSize 34 +MemRegions 425 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.46879 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.015 +----------------Numbers stats---------------------------- +ActualIn 3270 +ActualOut 1641 +ActualParam 1109 +ActualRet 147 +Addr 1193 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7827 +DirectRetEdge 146 +FormalIn 896 +FormalOut 894 +FormalParam 120 +FormalRet 28 +Gep 1522 +IndCallEdge 3490 +IndRetEdge 1831 +IndirectEdge 16483 +IndirectEdgeLabels 57176 +Load 2519 +MSSAPhi 1410 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 37 +Store 828 +TotalEdge 24310 +TotalNode 15620 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 853 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0547 +AvgTopLvlPtsSize 6.2249 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.175 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.033 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 876 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15899 +ProcessedAParam 0 +ProcessedAddr 2386 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16222 +ProcessedPhi 130 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 905 +TotalPointers 15929 +TotalSingleVObjs 0 +TotalVersions 13521 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1081 +TotalUnions 98225 +PropertyUnions 77269 +UniqueUnions 373 +LookupUnions 20023 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.02 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 16 05:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 16 05:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 869 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 648 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 57 +StackObjs 560 +StoresNum 2858 +TotalCallSite 277 +TotalFieldObjects 29 +TotalObjects 658 +TotalPTASVFStmts 9038 +TotalPointers 25045 +TotalSVFStmts 24212 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.515 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0749836 +AvgIn/OutCopyEdge 0.88599 +AvgIn/OutEdge 1.40079 +AvgIn/OutLoadEdge 0.408902 +AvgIn/OutStoreEdge 0.0309143 +AvgPtsSetSize 2.43223 +AvgTopLvlPtsSize 7.20135 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.09 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 699 +CopyProcessed 8724 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9129 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 658 +NodesInCycles 9 +NullPointer 87 +NumOfAddrs 684 +NumOfCGEdge 12094 +NumOfCGNode 9175 +NumOfCopys 4104 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9122 +NumOfValidObjNode 644 +Pointers 25041 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 687 +TotalPWCCycleNum 0 +TotalPointers 25045 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 828 +TotalUnions 17475 +PropertyUnions 10415 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65657 +PropertyComplements 58570 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7164 +PropertyIntersections 6916 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32022 +GenMUCHITime 0.003 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 157 +CSChiNode 65 +CSHasChi 42 +CSHasMu 170 +CSMuNode 224 +FunEntryChi 238 +FunHasEntryChi 62 +FunHasRetMu 64 +FunRetMu 237 +LoadHasMu 3740 +LoadMuNode 4180 +MSSAPhi 358 +MaxRegSize 9 +MemRegions 178 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37546 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 224 +ActualOut 65 +ActualParam 345 +ActualRet 14 +Addr 699 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8996 +DirectRetEdge 6 +FormalIn 238 +FormalOut 237 +FormalParam 110 +FormalRet 9 +Gep 4058 +IndCallEdge 225 +IndRetEdge 64 +IndirectEdge 5974 +IndirectEdgeLabels 14191 +Load 3740 +MSSAPhi 358 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 11 +Store 301 +TotalEdge 14970 +TotalNode 10413 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 649 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.5279 +AvgTopLvlPtsSize 2.7565 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1616 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.032 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.367 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 658 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25041 +ProcessedAParam 0 +ProcessedAddr 2097 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3366 +ProcessedPhi 36 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 687 +TotalPointers 25045 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 708 +TotalUnions 72582 +PropertyUnions 59285 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 16 05:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 16 05:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1273 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 918 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 31 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 718 +ReturnsNum 115 +StackObjs 726 +StoresNum 3219 +TotalCallSite 703 +TotalFieldObjects 51 +TotalObjects 941 +TotalPTASVFStmts 10430 +TotalPointers 28663 +TotalSVFStmts 27443 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.112 +SVFIRTime 0.602 +SymbolTableTime 0.018 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100951 +AvgIn/OutCopyEdge 0.858801 +AvgIn/OutEdge 1.39962 +AvgIn/OutLoadEdge 0.401713 +AvgIn/OutStoreEdge 0.0381541 +AvgPtsSetSize 3.78461 +AvgTopLvlPtsSize 11.4205 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.122 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1087 +CopyProcessed 11237 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23749 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 941 +NodesInCycles 20 +NullPointer 9 +NumOfAddrs 1061 +NumOfCGEdge 13649 +NumOfCGNode 10611 +NumOfCopys 4891 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10510 +NumOfValidObjNode 923 +Pointers 28651 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 992 +TotalPWCCycleNum 1 +TotalPointers 28663 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1199 +TotalUnions 22686 +PropertyUnions 12276 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76089 +PropertyComplements 65548 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11888 +PropertyIntersections 11554 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.66779 +GenMUCHITime 0.008 +GenRegionTime 0.023 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.033 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 235 +CSChiNode 246 +CSHasChi 143 +CSHasMu 331 +CSMuNode 662 +FunEntryChi 474 +FunHasEntryChi 107 +FunHasRetMu 101 +FunRetMu 447 +LoadHasMu 4233 +LoadMuNode 4686 +MSSAPhi 663 +MaxRegSize 16 +MemRegions 298 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 3.18455 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 662 +ActualOut 246 +ActualParam 965 +ActualRet 45 +Addr 1087 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10756 +DirectRetEdge 37 +FormalIn 474 +FormalOut 447 +FormalParam 151 +FormalRet 15 +Gep 4218 +IndCallEdge 681 +IndRetEdge 250 +IndirectEdge 8621 +IndirectEdgeLabels 27454 +Load 4233 +MSSAPhi 663 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 19 +Store 429 +TotalEdge 19377 +TotalNode 13663 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 919 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0751 +AvgTopLvlPtsSize 7.45619 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2444 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.053 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.425 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 941 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28651 +ProcessedAParam 0 +ProcessedAddr 2174 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25549 +ProcessedMSSANode 4984 +ProcessedPhi 43 +ProcessedStore 2229 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 992 +TotalPointers 28663 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1066 +TotalUnions 174828 +PropertyUnions 146139 +UniqueUnions 154 +LookupUnions 28297 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.86 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 16 05:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 16 05:14 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4614 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2676 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2791 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 62 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1971 +ReturnsNum 609 +StackObjs 2278 +StoresNum 5154 +TotalCallSite 2502 +TotalFieldObjects 157 +TotalObjects 3043 +TotalPTASVFStmts 20164 +TotalPointers 37161 +TotalSVFStmts 37169 +VarArrayObj 92 +VarStructObj 54 +----------------Time and memory stats-------------------- +LLVMIRTime 0.151 +SVFIRTime 0.805 +SymbolTableTime 0.032 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3881 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.199086 +AvgIn/OutCopyEdge 0.820665 +AvgIn/OutEdge 1.47375 +AvgIn/OutLoadEdge 0.320366 +AvgIn/OutStoreEdge 0.133631 +AvgPtsSetSize 39.0117 +AvgTopLvlPtsSize 87.9575 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.972 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4049 +CopyProcessed 29287 +DummyFieldPtrs 123 +FieldObjs 157 +GepProcessed 9613 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387409 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3043 +NodesInCycles 244 +NullPointer 152 +NumOfAddrs 3659 +NumOfCGEdge 23427 +NumOfCGNode 18622 +NumOfCopys 9985 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2456 +NumOfValidNode 18379 +NumOfValidObjNode 2716 +Pointers 37038 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57447 +TotalCycleNum 22 +TotalObjects 3200 +TotalPWCCycleNum 8 +TotalPointers 37161 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6125 +TotalUnions 55511 +PropertyUnions 31689 +UniqueUnions 1630 +LookupUnions 19137 +PreemptiveUnions 3055 +TotalComplements 276266 +PropertyComplements 257020 +UniqueComplements 1635 +LookupComplements 15976 +PreemptiveComplements 1635 +TotalIntersections 87434 +PropertyIntersections 81084 +UniqueIntersections 32 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.47678 +GenMUCHITime 0.038 +GenRegionTime 0.449 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.493 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 477 +CSChiNode 1924 +CSHasChi 936 +CSHasMu 1134 +CSMuNode 2970 +FunEntryChi 2347 +FunHasEntryChi 418 +FunHasRetMu 419 +FunRetMu 2339 +LoadHasMu 6145 +LoadMuNode 7288 +MSSAPhi 1445 +MaxRegSize 206 +MemRegions 1292 +StoreChiNode 1627 +StoreHasChi 1506 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.012 +AvgWeight 24.3227 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.053 +----------------Numbers stats---------------------------- +ActualIn 2970 +ActualOut 1924 +ActualParam 3222 +ActualRet 388 +Addr 4049 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1752 +DirectEdge 21964 +DirectRetEdge 385 +FormalIn 2347 +FormalOut 2339 +FormalParam 601 +FormalRet 84 +Gep 5199 +IndCallEdge 3000 +IndRetEdge 1943 +IndirectEdge 23183 +IndirectEdgeLabels 563873 +Load 6145 +MSSAPhi 1445 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 113 +Store 2515 +TotalEdge 45147 +TotalNode 33348 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2792 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3437 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.435 +AvgTopLvlPtsSize 44.7293 +AvgVersionPtsSize 61.0659 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44656 +MemoryUsageVmsize 102344 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.79 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.665 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.395 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 157 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3043 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37038 +ProcessedAParam 0 +ProcessedAddr 16196 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30711 +ProcessedLoad 50785 +ProcessedMSSANode 44100 +ProcessedPhi 641 +ProcessedStore 17039 +SolveIterations 4 +StoresNum 2515 +StrongUpdates 855 +TotalEmptyVPts 0 +TotalExistingVPts 114951 +TotalNonEmptyVPts 114951 +TotalObjects 3200 +TotalPointers 37161 +TotalSingleVObjs 0 +TotalVersions 140087 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 5996 +TotalUnions 1938739 +PropertyUnions 1720228 +UniqueUnions 7173 +LookupUnions 201245 +PreemptiveUnions 10093 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.15 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 16 05:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 16 05:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12175 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8736 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4986 +ReturnsNum 3092 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7147 +TotalFieldObjects 1162 +TotalObjects 9127 +TotalPTASVFStmts 87170 +TotalPointers 151806 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.672 +SVFIRTime 3.737 +SymbolTableTime 0.134 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7757 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134748 +AvgIn/OutCopyEdge 0.882193 +AvgIn/OutEdge 1.50944 +AvgIn/OutLoadEdge 0.371571 +AvgIn/OutStoreEdge 0.120927 +AvgPtsSetSize 56.3202 +AvgTopLvlPtsSize 124.013 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104252 +MemoryUsageVmsize 103368 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 9.215 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10898 +CopyProcessed 136749 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9127 +NodesInCycles 1765 +NullPointer 4709 +NumOfAddrs 10364 +NumOfCGEdge 105733 +NumOfCGNode 78170 +NumOfCopys 40699 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76914 +NumOfValidObjNode 8968 +Pointers 151461 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 151806 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17812 +TotalUnions 271901 +PropertyUnions 82377 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215633 +PropertyComplements 1042950 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494741 +UniqueIntersections 59 +LookupIntersections 2556 +PreemptiveIntersections 10291 +####################################################### + +Test time = 16.07 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 16 05:15 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 16 05:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17597 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18052 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12587 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 70 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8137 +ReturnsNum 5697 +StackObjs 9599 +StoresNum 27669 +TotalCallSite 13534 +TotalFieldObjects 1278 +TotalObjects 12915 +TotalPTASVFStmts 93563 +TotalPointers 223871 +TotalSVFStmts 223603 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.255 +SVFIRTime 5.746 +SymbolTableTime 0.235 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6395 +MaxNodeInCycle 1158 +NodeInCycle 1184 +TotalCycle 12 +TotalEdge 14865 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177235 +AvgIn/OutCopyEdge 0.752778 +AvgIn/OutEdge 1.4764 +AvgIn/OutLoadEdge 0.408356 +AvgIn/OutStoreEdge 0.138032 +AvgPtsSetSize 63.1382 +AvgTopLvlPtsSize 195.826 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 21760 +MemoryUsageVmsize 21340 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 10.427 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15089 +CopyProcessed 115354 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25732 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1652362 +LocalVarInRecur 3420 +MaxInAddrEdge 1 +MaxInCopyEdge 1067 +MaxInLoadEdge 3724 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13327 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3280 +MaxPtsSetSize 327 +MemObjects 12915 +NodesInCycles 3050 +NullPointer 511 +NumOfAddrs 12505 +NumOfCGEdge 91664 +NumOfCGNode 71405 +NumOfCopys 36081 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9739 +NumOfValidNode 70556 +NumOfValidObjNode 10666 +Pointers 222894 +PointsToBlkPtr 0 +PointsToConstPtr 13127 +SolveIterations 9 +StoreProcessed 479542 +TotalCycleNum 346 +TotalObjects 14193 +TotalPWCCycleNum 26 +TotalPointers 223871 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15695 +TotalUnions 175727 +PropertyUnions 144034 +UniqueUnions 1403 +LookupUnions 27651 +PreemptiveUnions 2639 +TotalComplements 668784 +PropertyComplements 643801 +UniqueComplements 515 +LookupComplements 23953 +PreemptiveComplements 515 +TotalIntersections 1097534 +PropertyIntersections 1088297 +UniqueIntersections 6 +LookupIntersections 8196 +PreemptiveIntersections 1035 +####################################################### + +Test time = 21.02 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 16 05:15 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:21 +---------------------------------------------------------- + +End testing: Dec 16 05:15 UTC diff --git a/diff_tests/perf_history/perf-2024-12-18T04:26:19.txt b/diff_tests/perf_history/perf-2024-12-18T04:26:19.txt new file mode 100644 index 00000000..4eec1d55 --- /dev/null +++ b/diff_tests/perf_history/perf-2024-12-18T04:26:19.txt @@ -0,0 +1,1885 @@ +Start testing: Dec 18 04:25 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 18 04:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 896 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 743 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 23 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 470 +ReturnsNum 227 +StackObjs 544 +StoresNum 1209 +TotalCallSite 702 +TotalFieldObjects 112 +TotalObjects 752 +TotalPTASVFStmts 4523 +TotalPointers 9712 +TotalSVFStmts 9459 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.2 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.191 +AvgIn/OutCopyEdge 0.800818 +AvgIn/OutEdge 1.46689 +AvgIn/OutLoadEdge 0.359243 +AvgIn/OutStoreEdge 0.115827 +AvgPtsSetSize 0.945698 +AvgTopLvlPtsSize 2.57062 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.032 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 828 +CopyProcessed 3860 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3427 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 752 +NodesInCycles 267 +NullPointer 13 +NumOfAddrs 747 +NumOfCGEdge 4990 +NumOfCGNode 4012 +NumOfCopys 2251 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3911 +NumOfValidObjNode 734 +Pointers 9684 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 864 +TotalPWCCycleNum 1 +TotalPointers 9712 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1087 +TotalUnions 7700 +PropertyUnions 4211 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21184 +PropertyComplements 18573 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3465 +PropertyIntersections 3325 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.62708 +GenMUCHITime 0.005 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 249 +CSChiNode 1010 +CSHasChi 390 +CSHasMu 489 +CSMuNode 1738 +FunEntryChi 749 +FunHasEntryChi 114 +FunHasRetMu 117 +FunRetMu 744 +LoadHasMu 1489 +LoadMuNode 1533 +MSSAPhi 962 +MaxRegSize 55 +MemRegions 421 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58216 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 1738 +ActualOut 1010 +ActualParam 870 +ActualRet 84 +Addr 828 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5116 +DirectRetEdge 84 +FormalIn 749 +FormalOut 744 +FormalParam 146 +FormalRet 18 +Gep 977 +IndCallEdge 1823 +IndRetEdge 1068 +IndirectEdge 9652 +IndirectEdgeLabels 15271 +Load 1489 +MSSAPhi 962 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 19 +Store 533 +TotalEdge 14768 +TotalNode 10194 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 744 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05956 +AvgTopLvlPtsSize 2.33343 +AvgVersionPtsSize 3.84196 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1436 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.02 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.08 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 752 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9684 +ProcessedAParam 0 +ProcessedAddr 1656 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10406 +ProcessedPhi 61 +ProcessedStore 2319 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3670 +TotalNonEmptyVPts 3670 +TotalObjects 867 +TotalPointers 9712 +TotalSingleVObjs 0 +TotalVersions 4882 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1044 +TotalUnions 33960 +PropertyUnions 24642 +UniqueUnions 332 +LookupUnions 8480 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.53 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 18 04:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 18 04:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1354 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 852 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 31 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 558 +ReturnsNum 325 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1147 +TotalFieldObjects 27 +TotalObjects 876 +TotalPTASVFStmts 7046 +TotalPointers 15929 +TotalSVFStmts 15421 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.353 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.19065 +AvgIn/OutCopyEdge 0.822732 +AvgIn/OutEdge 1.5398 +AvgIn/OutLoadEdge 0.408585 +AvgIn/OutStoreEdge 0.117831 +AvgPtsSetSize 2.92681 +AvgTopLvlPtsSize 8.35814 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.072 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1193 +CopyProcessed 8801 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14284 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 876 +NodesInCycles 335 +NullPointer 36 +NumOfAddrs 1097 +NumOfCGEdge 7763 +NumOfCGNode 5838 +NumOfCopys 3368 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5754 +NumOfValidObjNode 788 +Pointers 15899 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 903 +TotalPWCCycleNum 2 +TotalPointers 15929 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1378 +TotalUnions 17458 +PropertyUnions 7262 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 45000 +PropertyComplements 36662 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7625 +PropertyIntersections 6913 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.25882 +GenMUCHITime 0.007 +GenRegionTime 0.034 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 388 +CSChiNode 1641 +CSHasChi 586 +CSHasMu 857 +CSMuNode 3270 +FunEntryChi 896 +FunHasEntryChi 134 +FunHasRetMu 145 +FunRetMu 894 +LoadHasMu 2516 +LoadMuNode 2809 +MSSAPhi 1410 +MaxRegSize 34 +MemRegions 425 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.46879 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.016 +----------------Numbers stats---------------------------- +ActualIn 3270 +ActualOut 1641 +ActualParam 1109 +ActualRet 147 +Addr 1193 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7827 +DirectRetEdge 146 +FormalIn 896 +FormalOut 894 +FormalParam 120 +FormalRet 28 +Gep 1522 +IndCallEdge 3490 +IndRetEdge 1831 +IndirectEdge 16483 +IndirectEdgeLabels 57176 +Load 2519 +MSSAPhi 1410 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 37 +Store 828 +TotalEdge 24310 +TotalNode 15620 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 853 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0547 +AvgTopLvlPtsSize 6.2249 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2680 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.044 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.193 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 876 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15899 +ProcessedAParam 0 +ProcessedAddr 2386 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16222 +ProcessedPhi 130 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 905 +TotalPointers 15929 +TotalSingleVObjs 0 +TotalVersions 13521 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1081 +TotalUnions 98225 +PropertyUnions 77269 +UniqueUnions 373 +LookupUnions 20023 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.05 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 18 04:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 18 04:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 869 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 648 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 7 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 57 +StackObjs 560 +StoresNum 2858 +TotalCallSite 277 +TotalFieldObjects 29 +TotalObjects 658 +TotalPTASVFStmts 9038 +TotalPointers 25045 +TotalSVFStmts 24212 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.096 +SVFIRTime 0.543 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0749836 +AvgIn/OutCopyEdge 0.88599 +AvgIn/OutEdge 1.40079 +AvgIn/OutLoadEdge 0.408902 +AvgIn/OutStoreEdge 0.0309143 +AvgPtsSetSize 2.43223 +AvgTopLvlPtsSize 7.20135 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.093 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 699 +CopyProcessed 8724 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9129 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 658 +NodesInCycles 9 +NullPointer 87 +NumOfAddrs 684 +NumOfCGEdge 12094 +NumOfCGNode 9175 +NumOfCopys 4104 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9122 +NumOfValidObjNode 644 +Pointers 25041 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 687 +TotalPWCCycleNum 0 +TotalPointers 25045 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 828 +TotalUnions 17475 +PropertyUnions 10415 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65657 +PropertyComplements 58570 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7164 +PropertyIntersections 6916 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32022 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 157 +CSChiNode 65 +CSHasChi 42 +CSHasMu 170 +CSMuNode 224 +FunEntryChi 238 +FunHasEntryChi 62 +FunHasRetMu 64 +FunRetMu 237 +LoadHasMu 3740 +LoadMuNode 4180 +MSSAPhi 358 +MaxRegSize 9 +MemRegions 178 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37546 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 224 +ActualOut 65 +ActualParam 345 +ActualRet 14 +Addr 699 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8996 +DirectRetEdge 6 +FormalIn 238 +FormalOut 237 +FormalParam 110 +FormalRet 9 +Gep 4058 +IndCallEdge 225 +IndRetEdge 64 +IndirectEdge 5974 +IndirectEdgeLabels 14191 +Load 3740 +MSSAPhi 358 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 11 +Store 301 +TotalEdge 14970 +TotalNode 10413 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 649 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.5279 +AvgTopLvlPtsSize 2.7565 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1616 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.033 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.372 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.008 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 658 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25041 +ProcessedAParam 0 +ProcessedAddr 2097 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3366 +ProcessedPhi 36 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 687 +TotalPointers 25045 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 708 +TotalUnions 72582 +PropertyUnions 59285 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.61 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 18 04:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 18 04:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1273 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 918 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 32 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 718 +ReturnsNum 115 +StackObjs 726 +StoresNum 3219 +TotalCallSite 703 +TotalFieldObjects 51 +TotalObjects 941 +TotalPTASVFStmts 10430 +TotalPointers 28663 +TotalSVFStmts 27443 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.112 +SVFIRTime 0.626 +SymbolTableTime 0.02 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100951 +AvgIn/OutCopyEdge 0.858801 +AvgIn/OutEdge 1.39962 +AvgIn/OutLoadEdge 0.401713 +AvgIn/OutStoreEdge 0.0381541 +AvgPtsSetSize 3.78461 +AvgTopLvlPtsSize 11.4205 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.134 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1087 +CopyProcessed 11237 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23749 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 941 +NodesInCycles 20 +NullPointer 9 +NumOfAddrs 1061 +NumOfCGEdge 13649 +NumOfCGNode 10611 +NumOfCopys 4891 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10510 +NumOfValidObjNode 923 +Pointers 28651 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 992 +TotalPWCCycleNum 1 +TotalPointers 28663 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1199 +TotalUnions 22686 +PropertyUnions 12276 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76089 +PropertyComplements 65548 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11888 +PropertyIntersections 11554 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.66779 +GenMUCHITime 0.005 +GenRegionTime 0.023 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 235 +CSChiNode 246 +CSHasChi 143 +CSHasMu 331 +CSMuNode 662 +FunEntryChi 474 +FunHasEntryChi 107 +FunHasRetMu 101 +FunRetMu 447 +LoadHasMu 4233 +LoadMuNode 4686 +MSSAPhi 663 +MaxRegSize 16 +MemRegions 298 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.18455 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.007 +----------------Numbers stats---------------------------- +ActualIn 662 +ActualOut 246 +ActualParam 965 +ActualRet 45 +Addr 1087 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10756 +DirectRetEdge 37 +FormalIn 474 +FormalOut 447 +FormalParam 151 +FormalRet 15 +Gep 4218 +IndCallEdge 681 +IndRetEdge 250 +IndirectEdge 8621 +IndirectEdgeLabels 27454 +Load 4233 +MSSAPhi 663 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 19 +Store 429 +TotalEdge 19377 +TotalNode 13663 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 919 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0751 +AvgTopLvlPtsSize 7.45619 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2448 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.055 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.447 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 941 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28651 +ProcessedAParam 0 +ProcessedAddr 2174 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4984 +ProcessedPhi 43 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 992 +TotalPointers 28663 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1066 +TotalUnions 174307 +PropertyUnions 145584 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.93 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 18 04:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 18 04:25 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4614 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2676 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2791 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 63 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1971 +ReturnsNum 609 +StackObjs 2278 +StoresNum 5154 +TotalCallSite 2502 +TotalFieldObjects 157 +TotalObjects 3043 +TotalPTASVFStmts 20164 +TotalPointers 37161 +TotalSVFStmts 37169 +VarArrayObj 92 +VarStructObj 54 +----------------Time and memory stats-------------------- +LLVMIRTime 0.158 +SVFIRTime 0.843 +SymbolTableTime 0.034 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3881 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.199086 +AvgIn/OutCopyEdge 0.820665 +AvgIn/OutEdge 1.47375 +AvgIn/OutLoadEdge 0.320366 +AvgIn/OutStoreEdge 0.133631 +AvgPtsSetSize 39.0117 +AvgTopLvlPtsSize 87.9575 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.032 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4049 +CopyProcessed 29287 +DummyFieldPtrs 123 +FieldObjs 157 +GepProcessed 9613 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387409 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3043 +NodesInCycles 244 +NullPointer 152 +NumOfAddrs 3659 +NumOfCGEdge 23427 +NumOfCGNode 18622 +NumOfCopys 9985 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2456 +NumOfValidNode 18379 +NumOfValidObjNode 2716 +Pointers 37038 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57447 +TotalCycleNum 22 +TotalObjects 3200 +TotalPWCCycleNum 8 +TotalPointers 37161 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6125 +TotalUnions 55511 +PropertyUnions 31689 +UniqueUnions 1630 +LookupUnions 19137 +PreemptiveUnions 3055 +TotalComplements 276266 +PropertyComplements 257020 +UniqueComplements 1635 +LookupComplements 15976 +PreemptiveComplements 1635 +TotalIntersections 87434 +PropertyIntersections 81085 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.47678 +GenMUCHITime 0.037 +GenRegionTime 0.481 +InsertPHITime 0.004 +SSARenameTime 0.003 +TotalMSSATime 0.526 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 477 +CSChiNode 1924 +CSHasChi 936 +CSHasMu 1134 +CSMuNode 2970 +FunEntryChi 2347 +FunHasEntryChi 418 +FunHasRetMu 419 +FunRetMu 2339 +LoadHasMu 6145 +LoadMuNode 7288 +MSSAPhi 1445 +MaxRegSize 206 +MemRegions 1292 +StoreChiNode 1627 +StoreHasChi 1506 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.3227 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.04 +OptTime 0 +TLNodeTime 0 +TotalTime 0.053 +----------------Numbers stats---------------------------- +ActualIn 2970 +ActualOut 1924 +ActualParam 3222 +ActualRet 388 +Addr 4049 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1752 +DirectEdge 21964 +DirectRetEdge 385 +FormalIn 2347 +FormalOut 2339 +FormalParam 601 +FormalRet 84 +Gep 5199 +IndCallEdge 3000 +IndRetEdge 1943 +IndirectEdge 23183 +IndirectEdgeLabels 563873 +Load 6145 +MSSAPhi 1445 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 113 +Store 2515 +TotalEdge 45147 +TotalNode 33348 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2792 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3437 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.435 +AvgTopLvlPtsSize 44.7293 +AvgVersionPtsSize 61.0659 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44768 +MemoryUsageVmsize 102440 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.86 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.801 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.442 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 157 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3043 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37038 +ProcessedAParam 0 +ProcessedAddr 16196 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30656 +ProcessedLoad 50563 +ProcessedMSSANode 44100 +ProcessedPhi 643 +ProcessedStore 17158 +SolveIterations 4 +StoresNum 2515 +StrongUpdates 855 +TotalEmptyVPts 0 +TotalExistingVPts 114951 +TotalNonEmptyVPts 114951 +TotalObjects 3200 +TotalPointers 37161 +TotalSingleVObjs 0 +TotalVersions 140087 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 5972 +TotalUnions 1955733 +PropertyUnions 1743759 +UniqueUnions 6436 +LookupUnions 196166 +PreemptiveUnions 9372 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.50 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 18 04:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 18 04:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12175 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8736 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 302 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4986 +ReturnsNum 3092 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7147 +TotalFieldObjects 1162 +TotalObjects 9127 +TotalPTASVFStmts 87170 +TotalPointers 151806 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.729 +SVFIRTime 3.95 +SymbolTableTime 0.144 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7757 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134748 +AvgIn/OutCopyEdge 0.882193 +AvgIn/OutEdge 1.50944 +AvgIn/OutLoadEdge 0.371571 +AvgIn/OutStoreEdge 0.120927 +AvgPtsSetSize 56.3202 +AvgTopLvlPtsSize 124.013 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104432 +MemoryUsageVmsize 103380 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 9.992 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10898 +CopyProcessed 136749 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9127 +NodesInCycles 1765 +NullPointer 4709 +NumOfAddrs 10364 +NumOfCGEdge 105733 +NumOfCGNode 78170 +NumOfCopys 40699 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76914 +NumOfValidObjNode 8968 +Pointers 151461 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 151806 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17813 +TotalUnions 271904 +PropertyUnions 82377 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10284 +TotalComplements 1215633 +PropertyComplements 1042950 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507650 +PropertyIntersections 494739 +UniqueIntersections 63 +LookupIntersections 2554 +PreemptiveIntersections 10294 +####################################################### + +Test time = 17.29 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 18 04:25 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 18 04:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17597 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18052 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12587 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8137 +ReturnsNum 5697 +StackObjs 9599 +StoresNum 27669 +TotalCallSite 13534 +TotalFieldObjects 1278 +TotalObjects 12915 +TotalPTASVFStmts 93563 +TotalPointers 223871 +TotalSVFStmts 223603 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.35 +SVFIRTime 6.048 +SymbolTableTime 0.256 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6395 +MaxNodeInCycle 1158 +NodeInCycle 1184 +TotalCycle 12 +TotalEdge 14865 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177235 +AvgIn/OutCopyEdge 0.752778 +AvgIn/OutEdge 1.4764 +AvgIn/OutLoadEdge 0.408356 +AvgIn/OutStoreEdge 0.138032 +AvgPtsSetSize 63.1382 +AvgTopLvlPtsSize 195.826 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 21632 +MemoryUsageVmsize 21348 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 10.664 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15089 +CopyProcessed 115354 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25732 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1652362 +LocalVarInRecur 3420 +MaxInAddrEdge 1 +MaxInCopyEdge 1067 +MaxInLoadEdge 3724 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13327 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3280 +MaxPtsSetSize 327 +MemObjects 12915 +NodesInCycles 3050 +NullPointer 511 +NumOfAddrs 12505 +NumOfCGEdge 91664 +NumOfCGNode 71405 +NumOfCopys 36081 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9739 +NumOfValidNode 70556 +NumOfValidObjNode 10666 +Pointers 222894 +PointsToBlkPtr 0 +PointsToConstPtr 13127 +SolveIterations 9 +StoreProcessed 479542 +TotalCycleNum 346 +TotalObjects 14193 +TotalPWCCycleNum 26 +TotalPointers 223871 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15695 +TotalUnions 175727 +PropertyUnions 144034 +UniqueUnions 1403 +LookupUnions 27651 +PreemptiveUnions 2639 +TotalComplements 668784 +PropertyComplements 643801 +UniqueComplements 515 +LookupComplements 23953 +PreemptiveComplements 515 +TotalIntersections 1097534 +PropertyIntersections 1088297 +UniqueIntersections 6 +LookupIntersections 8196 +PreemptiveIntersections 1035 +####################################################### + +Test time = 21.98 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 18 04:26 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:21 +---------------------------------------------------------- + +End testing: Dec 18 04:26 UTC diff --git a/diff_tests/perf_history/perf-2024-12-18T09:20:19.txt b/diff_tests/perf_history/perf-2024-12-18T09:20:19.txt new file mode 100644 index 00000000..258c1025 --- /dev/null +++ b/diff_tests/perf_history/perf-2024-12-18T09:20:19.txt @@ -0,0 +1,1885 @@ +Start testing: Dec 18 09:19 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 18 09:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 896 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 743 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 23 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 470 +ReturnsNum 227 +StackObjs 544 +StoresNum 1209 +TotalCallSite 702 +TotalFieldObjects 112 +TotalObjects 752 +TotalPTASVFStmts 4523 +TotalPointers 9712 +TotalSVFStmts 9459 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.205 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.191 +AvgIn/OutCopyEdge 0.800818 +AvgIn/OutEdge 1.46689 +AvgIn/OutLoadEdge 0.359243 +AvgIn/OutStoreEdge 0.115827 +AvgPtsSetSize 0.945698 +AvgTopLvlPtsSize 2.57062 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.031 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 828 +CopyProcessed 3860 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3427 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 752 +NodesInCycles 267 +NullPointer 13 +NumOfAddrs 747 +NumOfCGEdge 4990 +NumOfCGNode 4012 +NumOfCopys 2251 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3911 +NumOfValidObjNode 734 +Pointers 9684 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 864 +TotalPWCCycleNum 1 +TotalPointers 9712 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1087 +TotalUnions 7700 +PropertyUnions 4211 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21184 +PropertyComplements 18573 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3465 +PropertyIntersections 3325 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.62708 +GenMUCHITime 0.004 +GenRegionTime 0.015 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 249 +CSChiNode 1010 +CSHasChi 390 +CSHasMu 489 +CSMuNode 1738 +FunEntryChi 749 +FunHasEntryChi 114 +FunHasRetMu 117 +FunRetMu 744 +LoadHasMu 1489 +LoadMuNode 1533 +MSSAPhi 962 +MaxRegSize 55 +MemRegions 421 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58216 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 1738 +ActualOut 1010 +ActualParam 870 +ActualRet 84 +Addr 828 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5116 +DirectRetEdge 84 +FormalIn 749 +FormalOut 744 +FormalParam 146 +FormalRet 18 +Gep 977 +IndCallEdge 1823 +IndRetEdge 1068 +IndirectEdge 9652 +IndirectEdgeLabels 15271 +Load 1489 +MSSAPhi 962 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 19 +Store 533 +TotalEdge 14768 +TotalNode 10194 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 744 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05956 +AvgTopLvlPtsSize 2.33343 +AvgVersionPtsSize 3.84196 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1360 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.081 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 752 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9684 +ProcessedAParam 0 +ProcessedAddr 1656 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10406 +ProcessedPhi 61 +ProcessedStore 2319 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3670 +TotalNonEmptyVPts 3670 +TotalObjects 867 +TotalPointers 9712 +TotalSingleVObjs 0 +TotalVersions 4882 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1044 +TotalUnions 33960 +PropertyUnions 24642 +UniqueUnions 332 +LookupUnions 8480 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.54 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 18 09:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 18 09:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1354 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 852 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 31 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 558 +ReturnsNum 325 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1147 +TotalFieldObjects 27 +TotalObjects 876 +TotalPTASVFStmts 7046 +TotalPointers 15929 +TotalSVFStmts 15421 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.354 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.19065 +AvgIn/OutCopyEdge 0.822732 +AvgIn/OutEdge 1.5398 +AvgIn/OutLoadEdge 0.408585 +AvgIn/OutStoreEdge 0.117831 +AvgPtsSetSize 2.92681 +AvgTopLvlPtsSize 8.35814 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.069 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1193 +CopyProcessed 8801 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14284 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 876 +NodesInCycles 335 +NullPointer 36 +NumOfAddrs 1097 +NumOfCGEdge 7763 +NumOfCGNode 5838 +NumOfCopys 3368 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5754 +NumOfValidObjNode 788 +Pointers 15899 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 903 +TotalPWCCycleNum 2 +TotalPointers 15929 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1378 +TotalUnions 17458 +PropertyUnions 7262 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 45000 +PropertyComplements 36662 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7625 +PropertyIntersections 6913 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.25882 +GenMUCHITime 0.006 +GenRegionTime 0.034 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.045 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 388 +CSChiNode 1641 +CSHasChi 586 +CSHasMu 857 +CSMuNode 3270 +FunEntryChi 896 +FunHasEntryChi 134 +FunHasRetMu 145 +FunRetMu 894 +LoadHasMu 2516 +LoadMuNode 2809 +MSSAPhi 1410 +MaxRegSize 34 +MemRegions 425 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.46879 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.016 +----------------Numbers stats---------------------------- +ActualIn 3270 +ActualOut 1641 +ActualParam 1109 +ActualRet 147 +Addr 1193 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7827 +DirectRetEdge 146 +FormalIn 896 +FormalOut 894 +FormalParam 120 +FormalRet 28 +Gep 1522 +IndCallEdge 3490 +IndRetEdge 1831 +IndirectEdge 16483 +IndirectEdgeLabels 57176 +Load 2519 +MSSAPhi 1410 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 37 +Store 828 +TotalEdge 24310 +TotalNode 15620 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 853 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0547 +AvgTopLvlPtsSize 6.2249 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2672 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.184 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.034 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 876 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15899 +ProcessedAParam 0 +ProcessedAddr 2386 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16222 +ProcessedPhi 130 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 905 +TotalPointers 15929 +TotalSingleVObjs 0 +TotalVersions 13521 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1081 +TotalUnions 98225 +PropertyUnions 77269 +UniqueUnions 373 +LookupUnions 20023 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.04 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 18 09:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 18 09:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 869 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 648 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 7 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 57 +StackObjs 560 +StoresNum 2858 +TotalCallSite 277 +TotalFieldObjects 29 +TotalObjects 658 +TotalPTASVFStmts 9038 +TotalPointers 25045 +TotalSVFStmts 24212 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.097 +SVFIRTime 0.53 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0749836 +AvgIn/OutCopyEdge 0.88599 +AvgIn/OutEdge 1.40079 +AvgIn/OutLoadEdge 0.408902 +AvgIn/OutStoreEdge 0.0309143 +AvgPtsSetSize 2.43223 +AvgTopLvlPtsSize 7.20135 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.094 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 699 +CopyProcessed 8724 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9129 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 658 +NodesInCycles 9 +NullPointer 87 +NumOfAddrs 684 +NumOfCGEdge 12094 +NumOfCGNode 9175 +NumOfCopys 4104 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9122 +NumOfValidObjNode 644 +Pointers 25041 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 687 +TotalPWCCycleNum 0 +TotalPointers 25045 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 828 +TotalUnions 17475 +PropertyUnions 10415 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65657 +PropertyComplements 58570 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7164 +PropertyIntersections 6916 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32022 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 157 +CSChiNode 65 +CSHasChi 42 +CSHasMu 170 +CSMuNode 224 +FunEntryChi 238 +FunHasEntryChi 62 +FunHasRetMu 64 +FunRetMu 237 +LoadHasMu 3740 +LoadMuNode 4180 +MSSAPhi 358 +MaxRegSize 9 +MemRegions 178 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37546 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 224 +ActualOut 65 +ActualParam 345 +ActualRet 14 +Addr 699 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8996 +DirectRetEdge 6 +FormalIn 238 +FormalOut 237 +FormalParam 110 +FormalRet 9 +Gep 4058 +IndCallEdge 225 +IndRetEdge 64 +IndirectEdge 5974 +IndirectEdgeLabels 14191 +Load 3740 +MSSAPhi 358 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 11 +Store 301 +TotalEdge 14970 +TotalNode 10413 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 649 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.5279 +AvgTopLvlPtsSize 2.7565 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1616 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.034 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.38 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.008 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 658 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25041 +ProcessedAParam 0 +ProcessedAddr 2097 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3366 +ProcessedPhi 36 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 687 +TotalPointers 25045 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 708 +TotalUnions 72582 +PropertyUnions 59285 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.62 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 18 09:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 18 09:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1273 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 918 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 32 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 718 +ReturnsNum 115 +StackObjs 726 +StoresNum 3219 +TotalCallSite 703 +TotalFieldObjects 51 +TotalObjects 941 +TotalPTASVFStmts 10430 +TotalPointers 28663 +TotalSVFStmts 27443 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.113 +SVFIRTime 0.631 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100951 +AvgIn/OutCopyEdge 0.858801 +AvgIn/OutEdge 1.39962 +AvgIn/OutLoadEdge 0.401713 +AvgIn/OutStoreEdge 0.0381541 +AvgPtsSetSize 3.78461 +AvgTopLvlPtsSize 11.4205 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.134 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1087 +CopyProcessed 11237 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23749 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 941 +NodesInCycles 20 +NullPointer 9 +NumOfAddrs 1061 +NumOfCGEdge 13649 +NumOfCGNode 10611 +NumOfCopys 4891 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10510 +NumOfValidObjNode 923 +Pointers 28651 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 992 +TotalPWCCycleNum 1 +TotalPointers 28663 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1199 +TotalUnions 22686 +PropertyUnions 12276 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76089 +PropertyComplements 65548 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11888 +PropertyIntersections 11554 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.66779 +GenMUCHITime 0.008 +GenRegionTime 0.023 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 235 +CSChiNode 246 +CSHasChi 143 +CSHasMu 331 +CSMuNode 662 +FunEntryChi 474 +FunHasEntryChi 107 +FunHasRetMu 101 +FunRetMu 447 +LoadHasMu 4233 +LoadMuNode 4686 +MSSAPhi 663 +MaxRegSize 16 +MemRegions 298 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 3.18455 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 662 +ActualOut 246 +ActualParam 965 +ActualRet 45 +Addr 1087 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10756 +DirectRetEdge 37 +FormalIn 474 +FormalOut 447 +FormalParam 151 +FormalRet 15 +Gep 4218 +IndCallEdge 681 +IndRetEdge 250 +IndirectEdge 8621 +IndirectEdgeLabels 27454 +Load 4233 +MSSAPhi 663 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 19 +Store 429 +TotalEdge 19377 +TotalNode 13663 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 919 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0751 +AvgTopLvlPtsSize 7.45619 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2444 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.057 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.448 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.016 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 941 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28651 +ProcessedAParam 0 +ProcessedAddr 2174 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25564 +ProcessedMSSANode 4984 +ProcessedPhi 43 +ProcessedStore 2232 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 992 +TotalPointers 28663 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1066 +TotalUnions 175215 +PropertyUnions 146566 +UniqueUnions 154 +LookupUnions 28257 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.95 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 18 09:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 18 09:19 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4614 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2676 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2791 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 63 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1971 +ReturnsNum 609 +StackObjs 2278 +StoresNum 5154 +TotalCallSite 2502 +TotalFieldObjects 157 +TotalObjects 3043 +TotalPTASVFStmts 20164 +TotalPointers 37161 +TotalSVFStmts 37169 +VarArrayObj 92 +VarStructObj 54 +----------------Time and memory stats-------------------- +LLVMIRTime 0.157 +SVFIRTime 0.848 +SymbolTableTime 0.033 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3881 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.199086 +AvgIn/OutCopyEdge 0.820665 +AvgIn/OutEdge 1.47375 +AvgIn/OutLoadEdge 0.320366 +AvgIn/OutStoreEdge 0.133631 +AvgPtsSetSize 39.0117 +AvgTopLvlPtsSize 87.9575 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.041 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4049 +CopyProcessed 29287 +DummyFieldPtrs 123 +FieldObjs 157 +GepProcessed 9613 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387409 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3043 +NodesInCycles 244 +NullPointer 152 +NumOfAddrs 3659 +NumOfCGEdge 23427 +NumOfCGNode 18622 +NumOfCopys 9985 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2456 +NumOfValidNode 18379 +NumOfValidObjNode 2716 +Pointers 37038 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57447 +TotalCycleNum 22 +TotalObjects 3200 +TotalPWCCycleNum 8 +TotalPointers 37161 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6125 +TotalUnions 55511 +PropertyUnions 31689 +UniqueUnions 1630 +LookupUnions 19137 +PreemptiveUnions 3055 +TotalComplements 276266 +PropertyComplements 257020 +UniqueComplements 1635 +LookupComplements 15976 +PreemptiveComplements 1635 +TotalIntersections 87434 +PropertyIntersections 81076 +UniqueIntersections 32 +LookupIntersections 3031 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.47678 +GenMUCHITime 0.04 +GenRegionTime 0.48 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.526 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 477 +CSChiNode 1924 +CSHasChi 936 +CSHasMu 1134 +CSMuNode 2970 +FunEntryChi 2347 +FunHasEntryChi 418 +FunHasRetMu 419 +FunRetMu 2339 +LoadHasMu 6145 +LoadMuNode 7288 +MSSAPhi 1445 +MaxRegSize 206 +MemRegions 1292 +StoreChiNode 1627 +StoreHasChi 1506 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.3227 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.042 +OptTime 0 +TLNodeTime 0 +TotalTime 0.056 +----------------Numbers stats---------------------------- +ActualIn 2970 +ActualOut 1924 +ActualParam 3222 +ActualRet 388 +Addr 4049 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1752 +DirectEdge 21964 +DirectRetEdge 385 +FormalIn 2347 +FormalOut 2339 +FormalParam 601 +FormalRet 84 +Gep 5199 +IndCallEdge 3000 +IndRetEdge 1943 +IndirectEdge 23183 +IndirectEdgeLabels 563873 +Load 6145 +MSSAPhi 1445 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 113 +Store 2515 +TotalEdge 45147 +TotalNode 33348 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2792 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3437 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.435 +AvgTopLvlPtsSize 44.7293 +AvgVersionPtsSize 61.0659 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44756 +MemoryUsageVmsize 102448 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.834 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.763 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.436 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 157 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3043 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37038 +ProcessedAParam 0 +ProcessedAddr 16196 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30649 +ProcessedLoad 50659 +ProcessedMSSANode 44100 +ProcessedPhi 642 +ProcessedStore 17172 +SolveIterations 4 +StoresNum 2515 +StrongUpdates 855 +TotalEmptyVPts 0 +TotalExistingVPts 114951 +TotalNonEmptyVPts 114951 +TotalObjects 3200 +TotalPointers 37161 +TotalSingleVObjs 0 +TotalVersions 140087 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 5974 +TotalUnions 1960298 +PropertyUnions 1746223 +UniqueUnions 6440 +LookupUnions 198257 +PreemptiveUnions 9378 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.45 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 18 09:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 18 09:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12175 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8736 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 302 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4986 +ReturnsNum 3092 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7147 +TotalFieldObjects 1162 +TotalObjects 9127 +TotalPTASVFStmts 87170 +TotalPointers 151806 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.746 +SVFIRTime 3.946 +SymbolTableTime 0.147 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7757 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134748 +AvgIn/OutCopyEdge 0.882193 +AvgIn/OutEdge 1.50944 +AvgIn/OutLoadEdge 0.371571 +AvgIn/OutStoreEdge 0.120927 +AvgPtsSetSize 56.3202 +AvgTopLvlPtsSize 124.013 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104120 +MemoryUsageVmsize 103380 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 9.942 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10898 +CopyProcessed 136749 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9127 +NodesInCycles 1765 +NullPointer 4709 +NumOfAddrs 10364 +NumOfCGEdge 105733 +NumOfCGNode 78170 +NumOfCopys 40699 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76914 +NumOfValidObjNode 8968 +Pointers 151461 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 151806 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17812 +TotalUnions 271902 +PropertyUnions 82377 +UniqueUnions 5908 +LookupUnions 173335 +PreemptiveUnions 10282 +TotalComplements 1215633 +PropertyComplements 1042950 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494743 +UniqueIntersections 59 +LookupIntersections 2554 +PreemptiveIntersections 10291 +####################################################### + +Test time = 17.27 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 18 09:19 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 18 09:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17597 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18052 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12587 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8137 +ReturnsNum 5697 +StackObjs 9599 +StoresNum 27669 +TotalCallSite 13534 +TotalFieldObjects 1278 +TotalObjects 12915 +TotalPTASVFStmts 93563 +TotalPointers 223871 +TotalSVFStmts 223603 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.342 +SVFIRTime 6.022 +SymbolTableTime 0.267 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6395 +MaxNodeInCycle 1158 +NodeInCycle 1184 +TotalCycle 12 +TotalEdge 14865 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177235 +AvgIn/OutCopyEdge 0.752778 +AvgIn/OutEdge 1.4764 +AvgIn/OutLoadEdge 0.408356 +AvgIn/OutStoreEdge 0.138032 +AvgPtsSetSize 63.1382 +AvgTopLvlPtsSize 195.826 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 21388 +MemoryUsageVmsize 21340 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.212 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15089 +CopyProcessed 115354 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25732 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1652362 +LocalVarInRecur 3420 +MaxInAddrEdge 1 +MaxInCopyEdge 1067 +MaxInLoadEdge 3724 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13327 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3280 +MaxPtsSetSize 327 +MemObjects 12915 +NodesInCycles 3050 +NullPointer 511 +NumOfAddrs 12505 +NumOfCGEdge 91664 +NumOfCGNode 71405 +NumOfCopys 36081 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9739 +NumOfValidNode 70556 +NumOfValidObjNode 10666 +Pointers 222894 +PointsToBlkPtr 0 +PointsToConstPtr 13127 +SolveIterations 9 +StoreProcessed 479542 +TotalCycleNum 346 +TotalObjects 14193 +TotalPWCCycleNum 26 +TotalPointers 223871 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15695 +TotalUnions 175727 +PropertyUnions 144034 +UniqueUnions 1403 +LookupUnions 27651 +PreemptiveUnions 2639 +TotalComplements 668784 +PropertyComplements 643801 +UniqueComplements 515 +LookupComplements 23953 +PreemptiveComplements 515 +TotalIntersections 1097534 +PropertyIntersections 1088297 +UniqueIntersections 6 +LookupIntersections 8196 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.55 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 18 09:20 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Dec 18 09:20 UTC diff --git a/diff_tests/perf_history/perf-2024-12-19T11:47:18.txt b/diff_tests/perf_history/perf-2024-12-19T11:47:18.txt new file mode 100644 index 00000000..818d9d01 --- /dev/null +++ b/diff_tests/perf_history/perf-2024-12-19T11:47:18.txt @@ -0,0 +1,1885 @@ +Start testing: Dec 19 11:46 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 19 11:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 896 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 743 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 23 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 470 +ReturnsNum 227 +StackObjs 544 +StoresNum 1209 +TotalCallSite 702 +TotalFieldObjects 112 +TotalObjects 752 +TotalPTASVFStmts 4523 +TotalPointers 9712 +TotalSVFStmts 9459 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.19 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.191 +AvgIn/OutCopyEdge 0.800818 +AvgIn/OutEdge 1.46689 +AvgIn/OutLoadEdge 0.359243 +AvgIn/OutStoreEdge 0.115827 +AvgPtsSetSize 0.945698 +AvgTopLvlPtsSize 2.57062 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.035 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 828 +CopyProcessed 3860 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3427 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 752 +NodesInCycles 267 +NullPointer 13 +NumOfAddrs 747 +NumOfCGEdge 4990 +NumOfCGNode 4012 +NumOfCopys 2251 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3911 +NumOfValidObjNode 734 +Pointers 9684 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 864 +TotalPWCCycleNum 1 +TotalPointers 9712 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1087 +TotalUnions 7700 +PropertyUnions 4211 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21184 +PropertyComplements 18573 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3465 +PropertyIntersections 3325 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.62708 +GenMUCHITime 0.006 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 249 +CSChiNode 1010 +CSHasChi 390 +CSHasMu 489 +CSMuNode 1738 +FunEntryChi 749 +FunHasEntryChi 114 +FunHasRetMu 117 +FunRetMu 744 +LoadHasMu 1489 +LoadMuNode 1533 +MSSAPhi 962 +MaxRegSize 55 +MemRegions 421 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58216 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 1738 +ActualOut 1010 +ActualParam 870 +ActualRet 84 +Addr 828 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5116 +DirectRetEdge 84 +FormalIn 749 +FormalOut 744 +FormalParam 146 +FormalRet 18 +Gep 977 +IndCallEdge 1823 +IndRetEdge 1068 +IndirectEdge 9652 +IndirectEdgeLabels 15271 +Load 1489 +MSSAPhi 962 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 19 +Store 533 +TotalEdge 14768 +TotalNode 10194 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 744 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 718 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05956 +AvgTopLvlPtsSize 2.33343 +AvgVersionPtsSize 3.84196 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1332 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.078 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 752 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9684 +ProcessedAParam 0 +ProcessedAddr 1656 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10406 +ProcessedPhi 61 +ProcessedStore 2319 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3670 +TotalNonEmptyVPts 3670 +TotalObjects 867 +TotalPointers 9712 +TotalSingleVObjs 0 +TotalVersions 4882 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1044 +TotalUnions 33960 +PropertyUnions 24642 +UniqueUnions 332 +LookupUnions 8480 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.52 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 19 11:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 19 11:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1354 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 852 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 31 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 558 +ReturnsNum 325 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1147 +TotalFieldObjects 27 +TotalObjects 876 +TotalPTASVFStmts 7046 +TotalPointers 15929 +TotalSVFStmts 15421 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.073 +SVFIRTime 0.353 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.19065 +AvgIn/OutCopyEdge 0.822732 +AvgIn/OutEdge 1.5398 +AvgIn/OutLoadEdge 0.408585 +AvgIn/OutStoreEdge 0.117831 +AvgPtsSetSize 2.92681 +AvgTopLvlPtsSize 8.35814 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.073 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1193 +CopyProcessed 8801 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14284 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 876 +NodesInCycles 335 +NullPointer 36 +NumOfAddrs 1097 +NumOfCGEdge 7763 +NumOfCGNode 5838 +NumOfCopys 3368 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5754 +NumOfValidObjNode 788 +Pointers 15899 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 903 +TotalPWCCycleNum 2 +TotalPointers 15929 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1378 +TotalUnions 17458 +PropertyUnions 7262 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 45000 +PropertyComplements 36662 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7625 +PropertyIntersections 6913 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.25882 +GenMUCHITime 0.009 +GenRegionTime 0.036 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 388 +CSChiNode 1641 +CSHasChi 586 +CSHasMu 857 +CSMuNode 3270 +FunEntryChi 896 +FunHasEntryChi 134 +FunHasRetMu 145 +FunRetMu 894 +LoadHasMu 2516 +LoadMuNode 2809 +MSSAPhi 1410 +MaxRegSize 34 +MemRegions 425 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.46879 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.016 +----------------Numbers stats---------------------------- +ActualIn 3270 +ActualOut 1641 +ActualParam 1109 +ActualRet 147 +Addr 1193 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7827 +DirectRetEdge 146 +FormalIn 896 +FormalOut 894 +FormalParam 120 +FormalRet 28 +Gep 1522 +IndCallEdge 3490 +IndRetEdge 1831 +IndirectEdge 16483 +IndirectEdgeLabels 57176 +Load 2519 +MSSAPhi 1410 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 37 +Store 828 +TotalEdge 24310 +TotalNode 15620 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 853 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1163 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0547 +AvgTopLvlPtsSize 6.2249 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2680 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.041 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.187 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 876 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15899 +ProcessedAParam 0 +ProcessedAddr 2386 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6409 +ProcessedLoad 12940 +ProcessedMSSANode 16222 +ProcessedPhi 130 +ProcessedStore 4226 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 905 +TotalPointers 15929 +TotalSingleVObjs 0 +TotalVersions 13521 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1081 +TotalUnions 98278 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20099 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.06 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 19 11:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 19 11:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 869 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 648 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 7 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 57 +StackObjs 560 +StoresNum 2858 +TotalCallSite 277 +TotalFieldObjects 29 +TotalObjects 658 +TotalPTASVFStmts 9038 +TotalPointers 25045 +TotalSVFStmts 24212 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.101 +SVFIRTime 0.531 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0749836 +AvgIn/OutCopyEdge 0.88599 +AvgIn/OutEdge 1.40079 +AvgIn/OutLoadEdge 0.408902 +AvgIn/OutStoreEdge 0.0309143 +AvgPtsSetSize 2.43223 +AvgTopLvlPtsSize 7.20135 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.093 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 699 +CopyProcessed 8724 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9129 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 658 +NodesInCycles 9 +NullPointer 87 +NumOfAddrs 684 +NumOfCGEdge 12094 +NumOfCGNode 9175 +NumOfCopys 4104 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9122 +NumOfValidObjNode 644 +Pointers 25041 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 687 +TotalPWCCycleNum 0 +TotalPointers 25045 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 828 +TotalUnions 17475 +PropertyUnions 10415 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65657 +PropertyComplements 58570 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7164 +PropertyIntersections 6916 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32022 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 157 +CSChiNode 65 +CSHasChi 42 +CSHasMu 170 +CSMuNode 224 +FunEntryChi 238 +FunHasEntryChi 62 +FunHasRetMu 64 +FunRetMu 237 +LoadHasMu 3740 +LoadMuNode 4180 +MSSAPhi 358 +MaxRegSize 9 +MemRegions 178 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37546 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.002 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 224 +ActualOut 65 +ActualParam 345 +ActualRet 14 +Addr 699 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8996 +DirectRetEdge 6 +FormalIn 238 +FormalOut 237 +FormalParam 110 +FormalRet 9 +Gep 4058 +IndCallEdge 225 +IndRetEdge 64 +IndirectEdge 5974 +IndirectEdgeLabels 14191 +Load 3740 +MSSAPhi 358 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 11 +Store 301 +TotalEdge 14970 +TotalNode 10413 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 649 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 277 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.5279 +AvgTopLvlPtsSize 2.7565 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1616 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.032 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.365 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.008 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 658 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25041 +ProcessedAParam 0 +ProcessedAddr 2097 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3366 +ProcessedPhi 36 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 687 +TotalPointers 25045 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 708 +TotalUnions 72582 +PropertyUnions 59285 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 19 11:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 19 11:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1273 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 918 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 32 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 718 +ReturnsNum 115 +StackObjs 726 +StoresNum 3219 +TotalCallSite 703 +TotalFieldObjects 51 +TotalObjects 941 +TotalPTASVFStmts 10430 +TotalPointers 28663 +TotalSVFStmts 27443 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.112 +SVFIRTime 0.618 +SymbolTableTime 0.019 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100951 +AvgIn/OutCopyEdge 0.858801 +AvgIn/OutEdge 1.39962 +AvgIn/OutLoadEdge 0.401713 +AvgIn/OutStoreEdge 0.0381541 +AvgPtsSetSize 3.78461 +AvgTopLvlPtsSize 11.4205 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.14 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1087 +CopyProcessed 11237 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23749 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 941 +NodesInCycles 20 +NullPointer 9 +NumOfAddrs 1061 +NumOfCGEdge 13649 +NumOfCGNode 10611 +NumOfCopys 4891 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10510 +NumOfValidObjNode 923 +Pointers 28651 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 992 +TotalPWCCycleNum 1 +TotalPointers 28663 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1199 +TotalUnions 22686 +PropertyUnions 12276 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76089 +PropertyComplements 65548 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11888 +PropertyIntersections 11554 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.66779 +GenMUCHITime 0.005 +GenRegionTime 0.025 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 235 +CSChiNode 246 +CSHasChi 143 +CSHasMu 331 +CSMuNode 662 +FunEntryChi 474 +FunHasEntryChi 107 +FunHasRetMu 101 +FunRetMu 447 +LoadHasMu 4233 +LoadMuNode 4686 +MSSAPhi 663 +MaxRegSize 16 +MemRegions 298 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.18455 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.007 +----------------Numbers stats---------------------------- +ActualIn 662 +ActualOut 246 +ActualParam 965 +ActualRet 45 +Addr 1087 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10756 +DirectRetEdge 37 +FormalIn 474 +FormalOut 447 +FormalParam 151 +FormalRet 15 +Gep 4218 +IndCallEdge 681 +IndRetEdge 250 +IndirectEdge 8621 +IndirectEdgeLabels 27454 +Load 4233 +MSSAPhi 663 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 19 +Store 429 +TotalEdge 19377 +TotalNode 13663 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 919 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 703 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0751 +AvgTopLvlPtsSize 7.45619 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2444 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.057 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.443 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 941 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28651 +ProcessedAParam 0 +ProcessedAddr 2174 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4984 +ProcessedPhi 43 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 992 +TotalPointers 28663 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1066 +TotalUnions 174307 +PropertyUnions 145584 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.92 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 19 11:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 19 11:46 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4614 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2676 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2791 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 63 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1971 +ReturnsNum 609 +StackObjs 2278 +StoresNum 5154 +TotalCallSite 2502 +TotalFieldObjects 157 +TotalObjects 3043 +TotalPTASVFStmts 20164 +TotalPointers 37161 +TotalSVFStmts 37169 +VarArrayObj 92 +VarStructObj 54 +----------------Time and memory stats-------------------- +LLVMIRTime 0.153 +SVFIRTime 0.842 +SymbolTableTime 0.032 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3881 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.199086 +AvgIn/OutCopyEdge 0.820665 +AvgIn/OutEdge 1.47375 +AvgIn/OutLoadEdge 0.320366 +AvgIn/OutStoreEdge 0.133631 +AvgPtsSetSize 39.0117 +AvgTopLvlPtsSize 87.9575 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.024 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4049 +CopyProcessed 29287 +DummyFieldPtrs 123 +FieldObjs 157 +GepProcessed 9613 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387409 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3043 +NodesInCycles 244 +NullPointer 152 +NumOfAddrs 3659 +NumOfCGEdge 23427 +NumOfCGNode 18622 +NumOfCopys 9985 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2456 +NumOfValidNode 18379 +NumOfValidObjNode 2716 +Pointers 37038 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57447 +TotalCycleNum 22 +TotalObjects 3200 +TotalPWCCycleNum 8 +TotalPointers 37161 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6125 +TotalUnions 55511 +PropertyUnions 31689 +UniqueUnions 1630 +LookupUnions 19137 +PreemptiveUnions 3055 +TotalComplements 276266 +PropertyComplements 257020 +UniqueComplements 1635 +LookupComplements 15976 +PreemptiveComplements 1635 +TotalIntersections 87434 +PropertyIntersections 81087 +UniqueIntersections 31 +LookupIntersections 3021 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.47678 +GenMUCHITime 0.036 +GenRegionTime 0.491 +InsertPHITime 0.004 +SSARenameTime 0.007 +TotalMSSATime 0.54 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 477 +CSChiNode 1924 +CSHasChi 936 +CSHasMu 1134 +CSMuNode 2970 +FunEntryChi 2347 +FunHasEntryChi 418 +FunHasRetMu 419 +FunRetMu 2339 +LoadHasMu 6145 +LoadMuNode 7288 +MSSAPhi 1445 +MaxRegSize 206 +MemRegions 1292 +StoreChiNode 1627 +StoreHasChi 1506 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.3227 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2970 +ActualOut 1924 +ActualParam 3222 +ActualRet 388 +Addr 4049 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1752 +DirectEdge 21964 +DirectRetEdge 385 +FormalIn 2347 +FormalOut 2339 +FormalParam 601 +FormalRet 84 +Gep 5199 +IndCallEdge 3000 +IndRetEdge 1943 +IndirectEdge 23183 +IndirectEdgeLabels 563873 +Load 6145 +MSSAPhi 1445 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 113 +Store 2515 +TotalEdge 45147 +TotalNode 33348 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2792 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3437 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.435 +AvgTopLvlPtsSize 44.7293 +AvgVersionPtsSize 61.0659 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44768 +MemoryUsageVmsize 102452 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.831 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.753 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.423 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 157 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3043 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37038 +ProcessedAParam 0 +ProcessedAddr 16196 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30649 +ProcessedLoad 50659 +ProcessedMSSANode 44100 +ProcessedPhi 642 +ProcessedStore 17172 +SolveIterations 4 +StoresNum 2515 +StrongUpdates 855 +TotalEmptyVPts 0 +TotalExistingVPts 114951 +TotalNonEmptyVPts 114951 +TotalObjects 3200 +TotalPointers 37161 +TotalSingleVObjs 0 +TotalVersions 140087 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 5974 +TotalUnions 1960298 +PropertyUnions 1746223 +UniqueUnions 6440 +LookupUnions 198257 +PreemptiveUnions 9378 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.42 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 19 11:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 19 11:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12175 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8736 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 302 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4986 +ReturnsNum 3092 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7147 +TotalFieldObjects 1162 +TotalObjects 9127 +TotalPTASVFStmts 87170 +TotalPointers 151806 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.731 +SVFIRTime 3.87 +SymbolTableTime 0.14 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7757 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134748 +AvgIn/OutCopyEdge 0.882193 +AvgIn/OutEdge 1.50944 +AvgIn/OutLoadEdge 0.371571 +AvgIn/OutStoreEdge 0.120927 +AvgPtsSetSize 56.3202 +AvgTopLvlPtsSize 124.013 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104388 +MemoryUsageVmsize 103380 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 9.784 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10898 +CopyProcessed 136749 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9127 +NodesInCycles 1765 +NullPointer 4709 +NumOfAddrs 10364 +NumOfCGEdge 105733 +NumOfCGNode 78170 +NumOfCopys 40699 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76914 +NumOfValidObjNode 8968 +Pointers 151461 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 151806 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17812 +TotalUnions 271901 +PropertyUnions 82377 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215633 +PropertyComplements 1042950 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494751 +UniqueIntersections 58 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 16.93 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 19 11:46 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 19 11:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17597 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18052 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12587 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8137 +ReturnsNum 5697 +StackObjs 9599 +StoresNum 27669 +TotalCallSite 13534 +TotalFieldObjects 1278 +TotalObjects 12915 +TotalPTASVFStmts 93563 +TotalPointers 223871 +TotalSVFStmts 223603 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.287 +SVFIRTime 5.953 +SymbolTableTime 0.253 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6395 +MaxNodeInCycle 1158 +NodeInCycle 1184 +TotalCycle 12 +TotalEdge 14865 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177235 +AvgIn/OutCopyEdge 0.752778 +AvgIn/OutEdge 1.4764 +AvgIn/OutLoadEdge 0.408356 +AvgIn/OutStoreEdge 0.138032 +AvgPtsSetSize 63.1382 +AvgTopLvlPtsSize 195.826 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 21564 +MemoryUsageVmsize 21348 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 10.648 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15089 +CopyProcessed 115354 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25732 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1652362 +LocalVarInRecur 3420 +MaxInAddrEdge 1 +MaxInCopyEdge 1067 +MaxInLoadEdge 3724 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13327 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3280 +MaxPtsSetSize 327 +MemObjects 12915 +NodesInCycles 3050 +NullPointer 511 +NumOfAddrs 12505 +NumOfCGEdge 91664 +NumOfCGNode 71405 +NumOfCopys 36081 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9739 +NumOfValidNode 70556 +NumOfValidObjNode 10666 +Pointers 222894 +PointsToBlkPtr 0 +PointsToConstPtr 13127 +SolveIterations 9 +StoreProcessed 479542 +TotalCycleNum 346 +TotalObjects 14193 +TotalPWCCycleNum 26 +TotalPointers 223871 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15695 +TotalUnions 175727 +PropertyUnions 144034 +UniqueUnions 1403 +LookupUnions 27651 +PreemptiveUnions 2639 +TotalComplements 668784 +PropertyComplements 643801 +UniqueComplements 515 +LookupComplements 23953 +PreemptiveComplements 515 +TotalIntersections 1097534 +PropertyIntersections 1088297 +UniqueIntersections 6 +LookupIntersections 8196 +PreemptiveIntersections 1035 +####################################################### + +Test time = 21.70 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 19 11:47 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:21 +---------------------------------------------------------- + +End testing: Dec 19 11:47 UTC diff --git a/diff_tests/perf_history/perf-2024-12-20T09:53:24.txt b/diff_tests/perf_history/perf-2024-12-20T09:53:24.txt new file mode 100644 index 00000000..2be9b874 --- /dev/null +++ b/diff_tests/perf_history/perf-2024-12-20T09:53:24.txt @@ -0,0 +1,1885 @@ +Start testing: Dec 20 09:52 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 20 09:52 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.054 +SVFIRTime 0.208 +SymbolTableTime 0.009 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.033 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.017 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1404 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.026 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.091 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 20 09:52 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 20 09:52 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.076 +SVFIRTime 0.383 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.088 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.038 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.05 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.019 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2724 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.053 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.207 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4220 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98206 +PropertyUnions 77257 +UniqueUnions 373 +LookupUnions 20016 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.16 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 20 09:52 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 20 09:52 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.112 +SVFIRTime 0.598 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.13 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.017 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.026 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1616 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.394 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.007 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.81 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 20 09:52 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 20 09:52 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.122 +SVFIRTime 0.667 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.177 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.037 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.007 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2368 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.068 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.473 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25534 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2226 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174397 +PropertyUnions 145705 +UniqueUnions 154 +LookupUnions 28300 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 2.12 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 20 09:52 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:02 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 20 09:52 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.17 +SVFIRTime 0.879 +SymbolTableTime 0.033 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.202 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81075 +UniqueIntersections 32 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.043 +GenRegionTime 0.506 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.553 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.016 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.046 +OptTime 0 +TLNodeTime 0 +TotalTime 0.062 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45032 +MemoryUsageVmsize 102432 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.97 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.941 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.46 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30653 +ProcessedLoad 50671 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17155 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960841 +PropertyUnions 1746830 +UniqueUnions 6524 +LookupUnions 197982 +PreemptiveUnions 9505 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.98 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 20 09:52 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 20 09:52 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.867 +SVFIRTime 4.213 +SymbolTableTime 0.168 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104464 +MemoryUsageVmsize 103492 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 10.878 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271818 +PropertyUnions 82293 +UniqueUnions 5908 +LookupUnions 173335 +PreemptiveUnions 10282 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494743 +UniqueIntersections 59 +LookupIntersections 2554 +PreemptiveIntersections 10291 +####################################################### + +Test time = 18.89 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 20 09:53 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 20 09:53 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.534 +SVFIRTime 6.38 +SymbolTableTime 0.297 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 7296 +MemoryUsageVmsize 7084 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.973 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 24.06 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 20 09:53 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:24 +---------------------------------------------------------- + +End testing: Dec 20 09:53 UTC diff --git a/diff_tests/perf_history/perf-2024-12-21T06:11:38.txt b/diff_tests/perf_history/perf-2024-12-21T06:11:38.txt new file mode 100644 index 00000000..c46c6849 --- /dev/null +++ b/diff_tests/perf_history/perf-2024-12-21T06:11:38.txt @@ -0,0 +1,1885 @@ +Start testing: Dec 21 06:10 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 21 06:10 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.185 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.034 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.015 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.077 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.51 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 21 06:10 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 21 06:10 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.07 +SVFIRTime 0.349 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.074 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.035 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.016 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.041 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.178 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4220 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98206 +PropertyUnions 77257 +UniqueUnions 373 +LookupUnions 20016 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.03 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 21 06:10 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 21 06:10 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.094 +SVFIRTime 0.512 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.097 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.004 +GenRegionTime 0.015 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.002 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.036 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.372 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.59 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 21 06:10 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 21 06:10 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.11 +SVFIRTime 0.62 +SymbolTableTime 0.02 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.134 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.005 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.032 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.054 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.438 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25554 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2230 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174923 +PropertyUnions 146247 +UniqueUnions 154 +LookupUnions 28284 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.89 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 21 06:10 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 21 06:10 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.15 +SVFIRTime 0.801 +SymbolTableTime 0.032 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.105 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81080 +UniqueIntersections 31 +LookupIntersections 3019 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.032 +GenRegionTime 0.476 +InsertPHITime 0.006 +SSARenameTime 0.005 +TotalMSSATime 0.519 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.042 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44928 +MemoryUsageVmsize 102432 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.849 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.736 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.407 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30653 +ProcessedLoad 50674 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17155 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960843 +PropertyUnions 1746830 +UniqueUnions 6524 +LookupUnions 197984 +PreemptiveUnions 9505 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.38 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 21 06:10 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 21 06:10 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.688 +SVFIRTime 3.797 +SymbolTableTime 0.135 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104368 +MemoryUsageVmsize 103476 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.204 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494743 +UniqueIntersections 59 +LookupIntersections 2554 +PreemptiveIntersections 10291 +####################################################### + +Test time = 18.19 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 21 06:11 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 21 06:11 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.284 +SVFIRTime 5.851 +SymbolTableTime 0.241 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 7424 +MemoryUsageVmsize 6968 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.597 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.61 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 21 06:11 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Dec 21 06:11 UTC diff --git a/diff_tests/perf_history/perf-2024-12-25T05:45:41.txt b/diff_tests/perf_history/perf-2024-12-25T05:45:41.txt new file mode 100644 index 00000000..ec00c1e6 --- /dev/null +++ b/diff_tests/perf_history/perf-2024-12-25T05:45:41.txt @@ -0,0 +1,1885 @@ +Start testing: Dec 25 05:44 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Dec 25 05:44 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.194 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.034 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.008 +GenRegionTime 0.019 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.028 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.079 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.54 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Dec 25 05:44 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Dec 25 05:44 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.345 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.076 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.035 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.016 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.052 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.203 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.044 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6409 +ProcessedLoad 12940 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4227 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98260 +PropertyUnions 77234 +UniqueUnions 373 +LookupUnions 20094 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.05 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Dec 25 05:44 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Dec 25 05:44 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.093 +SVFIRTime 0.523 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.101 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.002 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.034 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.377 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.61 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Dec 25 05:44 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Dec 25 05:44 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.109 +SVFIRTime 0.62 +SymbolTableTime 0.018 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.136 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.033 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.058 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.448 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25559 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2231 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 175052 +PropertyUnions 146389 +UniqueUnions 154 +LookupUnions 28271 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.93 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Dec 25 05:44 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Dec 25 05:44 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.151 +SVFIRTime 0.823 +SymbolTableTime 0.033 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.108 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81078 +UniqueIntersections 31 +LookupIntersections 3021 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.037 +GenRegionTime 0.481 +InsertPHITime 0.003 +SSARenameTime 0.004 +TotalMSSATime 0.526 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.054 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44800 +MemoryUsageVmsize 102432 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.888 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.776 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.411 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30653 +ProcessedLoad 50676 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17155 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960846 +PropertyUnions 1746782 +UniqueUnions 6524 +LookupUnions 198036 +PreemptiveUnions 9504 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.46 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Dec 25 05:44 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Dec 25 05:44 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.705 +SVFIRTime 3.978 +SymbolTableTime 0.139 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104536 +MemoryUsageVmsize 103508 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.387 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494746 +UniqueIntersections 59 +LookupIntersections 2551 +PreemptiveIntersections 10291 +####################################################### + +Test time = 18.71 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Dec 25 05:45 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Dec 25 05:45 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.329 +SVFIRTime 6 +SymbolTableTime 0.258 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 7552 +MemoryUsageVmsize 7104 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.901 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 23.21 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Dec 25 05:45 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:23 +---------------------------------------------------------- + +End testing: Dec 25 05:45 UTC diff --git a/diff_tests/perf_history/perf-2025-01-07T02:48:38.txt b/diff_tests/perf_history/perf-2025-01-07T02:48:38.txt new file mode 100644 index 00000000..695944a5 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-07T02:48:38.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 07 02:47 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 07 02:47 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.205 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.036 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.022 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.085 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.55 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 07 02:47 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 07 02:47 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.36 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.075 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.035 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.013 +OptTime 0 +TLNodeTime 0 +TotalTime 0.017 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.043 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.192 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6409 +ProcessedLoad 12940 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4227 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98260 +PropertyUnions 77234 +UniqueUnions 373 +LookupUnions 20094 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.06 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 07 02:47 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 07 02:47 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.53 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.105 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.002 +GenRegionTime 0.014 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.382 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.64 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 07 02:47 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 07 02:47 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.111 +SVFIRTime 0.616 +SymbolTableTime 0.02 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.146 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.023 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.007 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.059 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.447 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145550 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.94 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 07 02:47 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 07 02:47 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.153 +SVFIRTime 0.822 +SymbolTableTime 0.034 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.119 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1628 +LookupUnions 19133 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87426 +PropertyIntersections 81075 +UniqueIntersections 32 +LookupIntersections 3023 +PreemptiveIntersections 3296 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.033 +GenRegionTime 0.479 +InsertPHITime 0.002 +SSARenameTime 0.005 +TotalMSSATime 0.524 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44928 +MemoryUsageVmsize 102328 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.874 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.8 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.439 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30709 +ProcessedLoad 50781 +ProcessedMSSANode 43616 +ProcessedPhi 621 +ProcessedStore 17024 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1939029 +PropertyUnions 1720650 +UniqueUnions 7211 +LookupUnions 201018 +PreemptiveUnions 10150 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.51 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 07 02:47 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 07 02:47 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.739 +SVFIRTime 3.909 +SymbolTableTime 0.144 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104528 +MemoryUsageVmsize 103472 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.376 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494744 +UniqueIntersections 59 +LookupIntersections 2553 +PreemptiveIntersections 10291 +####################################################### + +Test time = 18.65 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 07 02:48 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 07 02:48 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.363 +SVFIRTime 5.965 +SymbolTableTime 0.269 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 7424 +MemoryUsageVmsize 6972 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.46 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 23.78 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 07 02:48 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:23 +---------------------------------------------------------- + +End testing: Jan 07 02:48 UTC diff --git a/diff_tests/perf_history/perf-2025-01-08T10:33:30.txt b/diff_tests/perf_history/perf-2025-01-08T10:33:30.txt new file mode 100644 index 00000000..763e67bb --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-08T10:33:30.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 08 10:32 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 08 10:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.193 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.035 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.015 +InsertPHITime 0.001 +SSARenameTime 0 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.08 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.53 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 08 10:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 08 10:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.359 +SymbolTableTime 0.022 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.074 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.035 +InsertPHITime 0.003 +SSARenameTime 0.001 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.016 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.041 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.193 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.04 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4220 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98207 +PropertyUnions 77252 +UniqueUnions 373 +LookupUnions 20023 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.08 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 08 10:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 08 10:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.096 +SVFIRTime 0.529 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.097 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.004 +GenRegionTime 0.015 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.033 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.375 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.61 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 08 10:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 08 10:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.12 +SVFIRTime 0.612 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.141 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.003 +GenRegionTime 0.023 +InsertPHITime 0.003 +SSARenameTime 0.004 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.059 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.446 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25559 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2231 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 175052 +PropertyUnions 146388 +UniqueUnions 154 +LookupUnions 28272 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.93 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 08 10:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 08 10:32 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.156 +SVFIRTime 0.827 +SymbolTableTime 0.033 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.14 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81070 +UniqueIntersections 32 +LookupIntersections 3028 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.036 +GenRegionTime 0.482 +InsertPHITime 0.002 +SSARenameTime 0.007 +TotalMSSATime 0.527 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.012 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.04 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44928 +MemoryUsageVmsize 102424 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.875 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.787 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.421 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30656 +ProcessedLoad 50572 +ProcessedMSSANode 43616 +ProcessedPhi 623 +ProcessedStore 17153 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6003 +TotalUnions 1956330 +PropertyUnions 1744313 +UniqueUnions 6520 +LookupUnions 195999 +PreemptiveUnions 9498 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.53 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 08 10:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 08 10:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.733 +SVFIRTime 3.916 +SymbolTableTime 0.144 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104308 +MemoryUsageVmsize 103468 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.285 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271818 +PropertyUnions 82293 +UniqueUnions 5908 +LookupUnions 173335 +PreemptiveUnions 10282 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494746 +UniqueIntersections 59 +LookupIntersections 2551 +PreemptiveIntersections 10291 +####################################################### + +Test time = 18.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 08 10:33 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 08 10:33 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.329 +SVFIRTime 5.949 +SymbolTableTime 0.263 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 7240 +MemoryUsageVmsize 6968 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.14 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 23.46 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 08 10:33 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:23 +---------------------------------------------------------- + +End testing: Jan 08 10:33 UTC diff --git a/diff_tests/perf_history/perf-2025-01-09T02:57:18.txt b/diff_tests/perf_history/perf-2025-01-09T02:57:18.txt new file mode 100644 index 00000000..d04c1620 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-09T02:57:18.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 09 02:56 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 09 02:56 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.199 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.032 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.002 +GenRegionTime 0.015 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.022 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.081 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.54 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 09 02:56 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 09 02:56 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.072 +SVFIRTime 0.357 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.075 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.01 +GenRegionTime 0.034 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.013 +OptTime 0 +TLNodeTime 0 +TotalTime 0.017 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.043 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.189 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4220 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98208 +PropertyUnions 77257 +UniqueUnions 373 +LookupUnions 20018 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.07 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 09 02:56 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 09 02:56 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.093 +SVFIRTime 0.556 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.106 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.033 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.379 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.67 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 09 02:56 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 09 02:56 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.111 +SVFIRTime 0.63 +SymbolTableTime 0.02 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.148 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.009 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.033 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.059 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.447 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145550 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.96 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 09 02:56 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 09 02:56 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.152 +SVFIRTime 0.87 +SymbolTableTime 0.035 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.17 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81070 +UniqueIntersections 32 +LookupIntersections 3028 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.034 +GenRegionTime 0.493 +InsertPHITime 0.005 +SSARenameTime 0.006 +TotalMSSATime 0.539 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.016 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.043 +OptTime 0 +TLNodeTime 0 +TotalTime 0.059 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44800 +MemoryUsageVmsize 102424 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.945 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.864 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.425 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30656 +ProcessedLoad 50566 +ProcessedMSSANode 43616 +ProcessedPhi 623 +ProcessedStore 17146 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6003 +TotalUnions 1956159 +PropertyUnions 1744124 +UniqueUnions 6520 +LookupUnions 196017 +PreemptiveUnions 9498 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.73 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 09 02:56 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 09 02:56 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.751 +SVFIRTime 3.967 +SymbolTableTime 0.14 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104184 +MemoryUsageVmsize 103484 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.49 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17812 +TotalUnions 271820 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10284 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507650 +PropertyIntersections 494742 +UniqueIntersections 63 +LookupIntersections 2551 +PreemptiveIntersections 10294 +####################################################### + +Test time = 18.95 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 09 02:56 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 09 02:56 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.364 +SVFIRTime 6.054 +SymbolTableTime 0.263 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 7296 +MemoryUsageVmsize 6968 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.364 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 23.94 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 09 02:57 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:23 +---------------------------------------------------------- + +End testing: Jan 09 02:57 UTC diff --git a/diff_tests/perf_history/perf-2025-01-10T00:42:41.txt b/diff_tests/perf_history/perf-2025-01-10T00:42:41.txt new file mode 100644 index 00000000..67b7cd67 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-10T00:42:41.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 10 00:41 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 10 00:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.208 +SymbolTableTime 0.009 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.035 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.016 +InsertPHITime 0.003 +SSARenameTime 0 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.022 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.086 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2318 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.56 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 10 00:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 10 00:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.072 +SVFIRTime 0.377 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.082 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.005 +GenRegionTime 0.035 +InsertPHITime 0.004 +SSARenameTime 0.004 +TotalMSSATime 0.048 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.013 +OptTime 0 +TLNodeTime 0 +TotalTime 0.017 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.201 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.04 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4220 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98207 +PropertyUnions 77253 +UniqueUnions 373 +LookupUnions 20022 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.12 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 10 00:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 10 00:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.103 +SVFIRTime 0.565 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.127 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.384 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.73 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 10 00:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 10 00:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.118 +SVFIRTime 0.655 +SymbolTableTime 0.022 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.172 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.01 +GenRegionTime 0.023 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.065 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.459 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.02 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25554 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2230 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174918 +PropertyUnions 146260 +UniqueUnions 154 +LookupUnions 28266 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 2.05 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 10 00:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:02 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 10 00:41 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.164 +SVFIRTime 0.884 +SymbolTableTime 0.037 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.219 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81069 +UniqueIntersections 32 +LookupIntersections 3029 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.043 +GenRegionTime 0.494 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.542 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.045 +OptTime 0 +TLNodeTime 0 +TotalTime 0.06 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45056 +MemoryUsageVmsize 102436 +PhiTime 0 +PrelabelingTime 0.005 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.986 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.069 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.588 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30653 +ProcessedLoad 50676 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17155 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960846 +PropertyUnions 1746782 +UniqueUnions 6524 +LookupUnions 198036 +PreemptiveUnions 9504 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 6.05 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 10 00:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:06 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 10 00:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.822 +SVFIRTime 4.164 +SymbolTableTime 0.156 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104444 +MemoryUsageVmsize 103508 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.451 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494744 +UniqueIntersections 59 +LookupIntersections 2553 +PreemptiveIntersections 10291 +####################################################### + +Test time = 20.28 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 10 00:42 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 10 00:42 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.469 +SVFIRTime 6.363 +SymbolTableTime 0.291 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 7552 +MemoryUsageVmsize 7104 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.906 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 26.26 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 10 00:42 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:26 +---------------------------------------------------------- + +End testing: Jan 10 00:42 UTC diff --git a/diff_tests/perf_history/perf-2025-01-10T04:15:22.txt b/diff_tests/perf_history/perf-2025-01-10T04:15:22.txt new file mode 100644 index 00000000..a264ab29 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-10T04:15:22.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 10 04:14 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 10 04:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.203 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.037 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.023 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.09 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 10 04:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 10 04:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.078 +SVFIRTime 0.379 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.089 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.007 +GenRegionTime 0.036 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.049 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.005 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.019 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.203 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.039 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6409 +ProcessedLoad 12940 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4227 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98261 +PropertyUnions 77234 +UniqueUnions 373 +LookupUnions 20094 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.14 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 10 04:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 10 04:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.099 +SVFIRTime 0.56 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.111 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.036 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.388 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.72 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 10 04:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 10 04:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.115 +SVFIRTime 0.647 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.175 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.009 +GenRegionTime 0.024 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.037 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.069 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.469 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145550 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 2.05 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 10 04:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:02 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 10 04:14 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.154 +SVFIRTime 0.859 +SymbolTableTime 0.034 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.165 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81078 +UniqueIntersections 31 +LookupIntersections 3021 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.038 +GenRegionTime 0.492 +InsertPHITime 0.006 +SSARenameTime 0.003 +TotalMSSATime 0.54 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.043 +OptTime 0 +TLNodeTime 0 +TotalTime 0.058 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44928 +MemoryUsageVmsize 102436 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.878 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.817 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.453 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30655 +ProcessedLoad 50674 +ProcessedMSSANode 43616 +ProcessedPhi 623 +ProcessedStore 17157 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960844 +PropertyUnions 1746742 +UniqueUnions 6525 +LookupUnions 198071 +PreemptiveUnions 9506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.65 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 10 04:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 10 04:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.799 +SVFIRTime 4.182 +SymbolTableTime 0.152 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 104544 +MemoryUsageVmsize 103468 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.665 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494753 +UniqueIntersections 59 +LookupIntersections 2544 +PreemptiveIntersections 10291 +####################################################### + +Test time = 20.72 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 10 04:14 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 10 04:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.532 +SVFIRTime 6.487 +SymbolTableTime 0.3 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 6972 +MemoryUsageVmsize 6972 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.799 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 25.17 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 10 04:15 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:25 +---------------------------------------------------------- + +End testing: Jan 10 04:15 UTC diff --git a/diff_tests/perf_history/perf-2025-01-17T04:18:16.txt b/diff_tests/perf_history/perf-2025-01-17T04:18:16.txt new file mode 100644 index 00000000..328412fe --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-17T04:18:16.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 17 04:17 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 17 04:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.043 +SVFIRTime 0.182 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.031 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.015 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.02 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.077 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.51 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 17 04:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 17 04:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.334 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.072 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.033 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.044 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.015 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.177 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6409 +ProcessedLoad 12940 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4227 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98260 +PropertyUnions 77234 +UniqueUnions 373 +LookupUnions 20094 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.00 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 17 04:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 17 04:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.093 +SVFIRTime 0.509 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.099 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.003 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.02 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.002 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.032 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.38 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.008 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 17 04:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 17 04:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.109 +SVFIRTime 0.581 +SymbolTableTime 0.019 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.133 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.021 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.031 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.054 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.443 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174268 +PropertyUnions 145563 +UniqueUnions 154 +LookupUnions 28313 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.86 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 17 04:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 17 04:17 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.147 +SVFIRTime 0.789 +SymbolTableTime 0.033 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.06 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1628 +LookupUnions 19133 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87426 +PropertyIntersections 81077 +UniqueIntersections 32 +LookupIntersections 3021 +PreemptiveIntersections 3296 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.035 +GenRegionTime 0.44 +InsertPHITime 0.004 +SSARenameTime 0.004 +TotalMSSATime 0.484 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.012 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.051 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44928 +MemoryUsageVmsize 102436 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.821 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.695 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.396 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30653 +ProcessedLoad 50676 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17155 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960846 +PropertyUnions 1746782 +UniqueUnions 6524 +LookupUnions 198036 +PreemptiveUnions 9504 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.24 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 17 04:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 17 04:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.664 +SVFIRTime 3.746 +SymbolTableTime 0.136 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111984 +MemoryUsageVmsize 110904 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 10.839 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494745 +UniqueIntersections 59 +LookupIntersections 2552 +PreemptiveIntersections 10291 +####################################################### + +Test time = 17.74 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 17 04:17 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 17 04:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.247 +SVFIRTime 5.816 +SymbolTableTime 0.25 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18328 +MemoryUsageVmsize 17920 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.459 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.29 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 17 04:18 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Jan 17 04:18 UTC diff --git a/diff_tests/perf_history/perf-2025-01-17T07:22:00.txt b/diff_tests/perf_history/perf-2025-01-17T07:22:00.txt new file mode 100644 index 00000000..80bdc9ed --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-17T07:22:00.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 17 07:21 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 17 07:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.191 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.034 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.024 +InsertPHITime 0.002 +SSARenameTime 0.001 +TotalMSSATime 0.031 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.022 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.087 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.016 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2317 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33651 +PropertyUnions 24384 +UniqueUnions 332 +LookupUnions 8429 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.55 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 17 07:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 17 07:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.07 +SVFIRTime 0.361 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.077 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.007 +GenRegionTime 0.034 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.015 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2688 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.042 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.185 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6409 +ProcessedLoad 12940 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4227 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98260 +PropertyUnions 77234 +UniqueUnions 373 +LookupUnions 20094 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.05 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 17 07:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 17 07:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.092 +SVFIRTime 0.534 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.1 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.003 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.036 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.381 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.63 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 17 07:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 17 07:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.11 +SVFIRTime 0.632 +SymbolTableTime 0.019 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 128 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.151 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.033 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.007 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.054 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.436 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145551 +UniqueUnions 154 +LookupUnions 28330 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.93 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 17 07:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 17 07:21 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.15 +SVFIRTime 0.857 +SymbolTableTime 0.032 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.143 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81067 +UniqueIntersections 32 +LookupIntersections 3031 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.039 +GenRegionTime 0.459 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.504 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.043 +OptTime 0 +TLNodeTime 0 +TotalTime 0.056 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 44928 +MemoryUsageVmsize 102436 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.843 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.727 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.404 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30655 +ProcessedLoad 50674 +ProcessedMSSANode 43616 +ProcessedPhi 623 +ProcessedStore 17163 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960850 +PropertyUnions 1746748 +UniqueUnions 6525 +LookupUnions 198071 +PreemptiveUnions 9506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.48 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 17 07:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 17 07:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.698 +SVFIRTime 4.099 +SymbolTableTime 0.136 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111848 +MemoryUsageVmsize 110892 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.869 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494742 +UniqueIntersections 59 +LookupIntersections 2555 +PreemptiveIntersections 10291 +####################################################### + +Test time = 19.37 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 17 07:21 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 17 07:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.292 +SVFIRTime 5.979 +SymbolTableTime 0.251 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18560 +MemoryUsageVmsize 17916 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.62 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.90 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 17 07:22 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Jan 17 07:22 UTC diff --git a/diff_tests/perf_history/perf-2025-01-22T08:03:31.txt b/diff_tests/perf_history/perf-2025-01-22T08:03:31.txt new file mode 100644 index 00000000..fd121ffa --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-22T08:03:31.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 22 08:02 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 22 08:02 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.188 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.034 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.002 +GenRegionTime 0.014 +InsertPHITime 0.002 +SSARenameTime 0.001 +TotalMSSATime 0.02 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1280 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.08 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2320 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33665 +PropertyUnions 24394 +UniqueUnions 332 +LookupUnions 8433 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.52 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 22 08:02 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 22 08:02 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.345 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.074 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.034 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.045 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.012 +OptTime 0 +TLNodeTime 0 +TotalTime 0.016 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2560 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.186 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98203 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20024 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.04 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 22 08:02 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 22 08:02 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.094 +SVFIRTime 0.525 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 384 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.098 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.003 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.003 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 1536 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.032 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.383 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.62 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 22 08:02 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 22 08:02 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.111 +SVFIRTime 0.612 +SymbolTableTime 0.018 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.135 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.004 +GenRegionTime 0.023 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.033 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 2304 +MemoryUsageVmsize 81924 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.055 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.455 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145550 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.93 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 22 08:02 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 22 08:02 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.154 +SVFIRTime 0.82 +SymbolTableTime 0.033 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 256 +MemoryUsageVmsize 0 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.079 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81078 +UniqueIntersections 31 +LookupIntersections 3021 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.034 +GenRegionTime 0.458 +InsertPHITime 0.003 +SSARenameTime 0.006 +TotalMSSATime 0.502 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45440 +MemoryUsageVmsize 102948 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.831 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.732 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.4 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30711 +ProcessedLoad 50788 +ProcessedMSSANode 43616 +ProcessedPhi 621 +ProcessedStore 17027 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6006 +TotalUnions 1939045 +PropertyUnions 1720645 +UniqueUnions 7211 +LookupUnions 201038 +PreemptiveUnions 10151 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 22 08:02 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 22 08:02 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.694 +SVFIRTime 3.888 +SymbolTableTime 0.136 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 114396 +MemoryUsageVmsize 113400 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 10.82 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494742 +UniqueIntersections 59 +LookupIntersections 2555 +PreemptiveIntersections 10291 +####################################################### + +Test time = 17.98 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 22 08:03 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "-dump-json=ir.json" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 22 08:03 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.32 +SVFIRTime 5.907 +SymbolTableTime 0.252 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 20480 +MemoryUsageVmsize 20300 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.575 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.68 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 22 08:03 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Jan 22 08:03 UTC diff --git a/diff_tests/perf_history/perf-2025-01-23T12:29:26.txt b/diff_tests/perf_history/perf-2025-01-23T12:29:26.txt new file mode 100644 index 00000000..d23c60a5 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-23T12:29:26.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 23 12:28 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 23 12:28 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.038 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11904 +MemoryUsageVmsize 11596 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.037 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.015 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3200 +MemoryUsageVmsize 83824 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.082 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2320 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33665 +PropertyUnions 24394 +UniqueUnions 332 +LookupUnions 8433 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.38 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 23 12:28 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 23 12:28 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.07 +SVFIRTime 0.072 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18048 +MemoryUsageVmsize 18108 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.083 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.036 +InsertPHITime 0.004 +SSARenameTime 0.003 +TotalMSSATime 0.049 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83760 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.041 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.191 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98203 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20024 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.79 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 23 12:28 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 23 12:28 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.113 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28416 +MemoryUsageVmsize 28352 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.108 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.003 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85132 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.033 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.384 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.22 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 23 12:28 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 23 12:28 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.11 +SVFIRTime 0.131 +SymbolTableTime 0.019 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33288 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.141 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.004 +GenRegionTime 0.024 +InsertPHITime 0.003 +SSARenameTime 0.004 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85232 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.056 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.454 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25554 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2230 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174918 +PropertyUnions 146261 +UniqueUnions 154 +LookupUnions 28265 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.46 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 23 12:28 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 23 12:28 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.159 +SVFIRTime 0.2 +SymbolTableTime 0.035 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 111176 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.197 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81078 +UniqueIntersections 31 +LookupIntersections 3021 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.036 +GenRegionTime 0.465 +InsertPHITime 0.003 +SSARenameTime 0.004 +TotalMSSATime 0.509 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.04 +OptTime 0 +TLNodeTime 0 +TotalTime 0.053 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45440 +MemoryUsageVmsize 103040 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.85 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.765 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.416 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30646 +ProcessedLoad 50657 +ProcessedMSSANode 43616 +ProcessedPhi 623 +ProcessedStore 17164 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6022 +TotalUnions 1960690 +PropertyUnions 1746766 +UniqueUnions 6616 +LookupUnions 197695 +PreemptiveUnions 9613 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.95 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 23 12:28 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 23 12:28 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.709 +SVFIRTime 1.09 +SymbolTableTime 0.137 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 595908 +MemoryUsageVmsize 595588 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.477 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494744 +UniqueIntersections 59 +LookupIntersections 2553 +PreemptiveIntersections 10291 +####################################################### + +Test time = 15.99 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 23 12:29 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 23 12:29 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.343 +SVFIRTime 1.632 +SymbolTableTime 0.257 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838720 +MemoryUsageVmsize 838384 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.813 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 18.68 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 23 12:29 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +End testing: Jan 23 12:29 UTC diff --git a/diff_tests/perf_history/perf-2025-01-24T03:54:56.txt b/diff_tests/perf_history/perf-2025-01-24T03:54:56.txt new file mode 100644 index 00000000..07272916 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-24T03:54:56.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 24 03:54 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 24 03:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.042 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11648 +MemoryUsageVmsize 11596 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.018 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3328 +MemoryUsageVmsize 83824 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.085 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6552 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2320 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33665 +PropertyUnions 24394 +UniqueUnions 332 +LookupUnions 8433 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 24 03:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 24 03:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.078 +SVFIRTime 0.075 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18108 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.091 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.038 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.052 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.016 +OptTime 0 +TLNodeTime 0 +TotalTime 0.022 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83760 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.195 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98203 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20024 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.83 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 24 03:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 24 03:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.116 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28352 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.109 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85128 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.034 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.387 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.008 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.24 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 24 03:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 24 03:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.117 +SVFIRTime 0.15 +SymbolTableTime 0.019 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33288 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.165 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85236 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.059 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.454 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145550 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.53 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 24 03:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 24 03:54 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1519 +BBWith3Succ 26 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.157 +SVFIRTime 0.211 +SymbolTableTime 0.035 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 111284 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.262 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81078 +UniqueIntersections 31 +LookupIntersections 3021 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.034 +GenRegionTime 0.48 +InsertPHITime 0.004 +SSARenameTime 0.007 +TotalMSSATime 0.525 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.04 +OptTime 0 +TLNodeTime 0 +TotalTime 0.053 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45440 +MemoryUsageVmsize 103020 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.986 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.943 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.436 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30650 +ProcessedLoad 50667 +ProcessedMSSANode 43616 +ProcessedPhi 623 +ProcessedStore 17157 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960691 +PropertyUnions 1746613 +UniqueUnions 6520 +LookupUnions 198058 +PreemptiveUnions 9500 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.27 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 24 03:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 24 03:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8503 +BBWith3Succ 217 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.791 +SVFIRTime 1.177 +SymbolTableTime 0.155 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 595992 +MemoryUsageVmsize 595520 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.295 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494746 +UniqueIntersections 59 +LookupIntersections 2551 +PreemptiveIntersections 10291 +####################################################### + +Test time = 17.13 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 24 03:54 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 24 03:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17391 +BBWith3Succ 158 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.423 +SVFIRTime 1.755 +SymbolTableTime 0.252 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838656 +MemoryUsageVmsize 838304 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.024 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 20.37 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 24 03:54 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +End testing: Jan 24 03:54 UTC diff --git a/diff_tests/perf_history/perf-2025-01-27T05:32:57.txt b/diff_tests/perf_history/perf-2025-01-27T05:32:57.txt new file mode 100644 index 00000000..09f55680 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-27T05:32:57.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 27 05:32 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 27 05:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.048 +SymbolTableTime 0.009 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11596 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.042 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3164 +MemoryUsageVmsize 83940 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.023 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.092 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2324 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33962 +PropertyUnions 24640 +UniqueUnions 332 +LookupUnions 8484 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.43 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 27 05:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 27 05:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.076 +SVFIRTime 0.086 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18104 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.101 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.038 +InsertPHITime 0.002 +SSARenameTime 0.007 +TotalMSSATime 0.053 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.016 +OptTime 0 +TLNodeTime 0 +TotalTime 0.022 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83628 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.051 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.22 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.045 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12922 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98201 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20022 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.90 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 27 05:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 27 05:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.105 +SVFIRTime 0.144 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28352 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.135 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.015 +InsertPHITime 0 +SSARenameTime 0.005 +TotalMSSATime 0.026 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85128 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.042 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.396 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.36 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 27 05:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 27 05:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.128 +SVFIRTime 0.166 +SymbolTableTime 0.022 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33280 +MemoryUsageVmsize 33292 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.196 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.013 +GenRegionTime 0.026 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.041 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5376 +MemoryUsageVmsize 85232 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.07 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.47 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145550 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.65 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 27 05:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 27 05:32 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.172 +SVFIRTime 0.233 +SymbolTableTime 0.039 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 111236 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.34 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81070 +UniqueIntersections 32 +LookupIntersections 3028 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.039 +GenRegionTime 0.483 +InsertPHITime 0.006 +SSARenameTime 0.002 +TotalMSSATime 0.533 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.047 +OptTime 0 +TLNodeTime 0 +TotalTime 0.062 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45568 +MemoryUsageVmsize 103040 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.016 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.056 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.511 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30649 +ProcessedLoad 50669 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17154 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6022 +TotalUnions 1960833 +PropertyUnions 1746892 +UniqueUnions 6616 +LookupUnions 197712 +PreemptiveUnions 9613 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 27 05:32 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 27 05:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.876 +SVFIRTime 1.17 +SymbolTableTime 0.175 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 596000 +MemoryUsageVmsize 595536 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.485 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494746 +UniqueIntersections 59 +LookupIntersections 2551 +PreemptiveIntersections 10291 +####################################################### + +Test time = 17.53 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 27 05:32 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 27 05:32 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.542 +SVFIRTime 1.811 +SymbolTableTime 0.308 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838656 +MemoryUsageVmsize 838364 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 14.391 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.20 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 27 05:32 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Jan 27 05:32 UTC diff --git a/diff_tests/perf_history/perf-2025-01-27T06:15:37.txt b/diff_tests/perf_history/perf-2025-01-27T06:15:37.txt new file mode 100644 index 00000000..56b296e6 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-27T06:15:37.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 27 06:14 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 27 06:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.045 +SymbolTableTime 0.009 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11560 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.041 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.006 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.009 +OptTime 0 +TLNodeTime 0 +TotalTime 0.013 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3200 +MemoryUsageVmsize 83944 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.028 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.098 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2324 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33962 +PropertyUnions 24640 +UniqueUnions 332 +LookupUnions 8484 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.44 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 27 06:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 27 06:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.078 +SVFIRTime 0.082 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18108 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.103 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.039 +InsertPHITime 0.004 +SSARenameTime 0.002 +TotalMSSATime 0.055 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.007 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.019 +OptTime 0 +TLNodeTime 0 +TotalTime 0.026 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83792 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.051 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.212 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.041 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98204 +PropertyUnions 77245 +UniqueUnions 373 +LookupUnions 20027 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.89 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 27 06:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 27 06:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.117 +SVFIRTime 0.133 +SymbolTableTime 0.018 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28416 +MemoryUsageVmsize 28364 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.145 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.026 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85128 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.398 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.36 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 27 06:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 27 06:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.124 +SVFIRTime 0.152 +SymbolTableTime 0.023 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33292 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.191 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.025 +InsertPHITime 0.002 +SSARenameTime 0.007 +TotalMSSATime 0.041 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85236 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.066 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.463 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25539 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2227 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174531 +PropertyUnions 145835 +UniqueUnions 154 +LookupUnions 28304 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.61 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 27 06:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 27 06:14 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.169 +SVFIRTime 0.213 +SymbolTableTime 0.036 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 111336 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.291 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1628 +LookupUnions 19133 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87426 +PropertyIntersections 81075 +UniqueIntersections 32 +LookupIntersections 3023 +PreemptiveIntersections 3296 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.042 +GenRegionTime 0.49 +InsertPHITime 0.004 +SSARenameTime 0.002 +TotalMSSATime 0.54 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.047 +OptTime 0 +TLNodeTime 0 +TotalTime 0.062 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45440 +MemoryUsageVmsize 103044 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.976 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.983 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.485 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30649 +ProcessedLoad 50671 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17160 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6022 +TotalUnions 1960859 +PropertyUnions 1746981 +UniqueUnions 6619 +LookupUnions 197642 +PreemptiveUnions 9617 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.41 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 27 06:14 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 27 06:14 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.909 +SVFIRTime 1.107 +SymbolTableTime 0.176 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 596172 +MemoryUsageVmsize 595552 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.784 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494749 +UniqueIntersections 59 +LookupIntersections 2548 +PreemptiveIntersections 10291 +####################################################### + +Test time = 17.80 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 27 06:15 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 27 06:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.632 +SVFIRTime 1.718 +SymbolTableTime 0.322 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838784 +MemoryUsageVmsize 838300 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 14.562 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.33 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 27 06:15 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Jan 27 06:15 UTC diff --git a/diff_tests/perf_history/perf-2025-01-29T09:45:55.txt b/diff_tests/perf_history/perf-2025-01-29T09:45:55.txt new file mode 100644 index 00000000..5f867eef --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-29T09:45:55.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 29 09:45 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 29 09:45 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 750 +TotalPTASVFStmts 4509 +TotalPointers 9708 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.042 +SymbolTableTime 0.009 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11560 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 750 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9680 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9708 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3200 +MemoryUsageVmsize 83940 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.095 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 750 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9680 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2324 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 865 +TotalPointers 9708 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33962 +PropertyUnions 24640 +UniqueUnions 332 +LookupUnions 8484 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.42 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 29 09:45 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 29 09:45 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 874 +TotalPTASVFStmts 7035 +TotalPointers 15925 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.076 +SVFIRTime 0.077 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18108 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.097 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 874 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 15895 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 15925 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.039 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.054 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.007 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.018 +OptTime 0 +TLNodeTime 0 +TotalTime 0.025 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83628 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.053 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.215 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.041 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 874 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 15895 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12922 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 903 +TotalPointers 15925 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1079 +TotalUnions 98201 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20022 +PreemptiveUnions 560 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.88 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 29 09:45 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 29 09:45 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 657 +TotalPTASVFStmts 9035 +TotalPointers 25043 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.104 +SVFIRTime 0.126 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28360 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.135 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 657 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25039 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25043 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.015 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85124 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.39 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 657 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25039 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25043 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.29 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 29 09:45 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 29 09:45 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 939 +TotalPTASVFStmts 10413 +TotalPointers 28659 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.123 +SVFIRTime 0.147 +SymbolTableTime 0.022 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33292 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.188 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 939 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28647 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28659 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.025 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.039 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85232 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.068 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.462 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 939 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28647 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28659 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145550 +UniqueUnions 154 +LookupUnions 28331 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.59 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 29 09:45 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 29 09:45 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3034 +TotalPTASVFStmts 20125 +TotalPointers 37143 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.175 +SVFIRTime 0.221 +SymbolTableTime 0.038 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 111340 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.356 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3034 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 37020 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 37143 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81070 +UniqueIntersections 32 +LookupIntersections 3028 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.038 +GenRegionTime 0.49 +InsertPHITime 0.006 +SSARenameTime 0.006 +TotalMSSATime 0.541 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.045 +OptTime 0 +TLNodeTime 0 +TotalTime 0.06 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45440 +MemoryUsageVmsize 103044 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.012 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.045 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.5 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3034 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 37020 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30653 +ProcessedLoad 50679 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17157 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 37143 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6022 +TotalUnions 1961013 +PropertyUnions 1747053 +UniqueUnions 6617 +LookupUnions 197728 +PreemptiveUnions 9615 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.54 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 29 09:45 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 29 09:45 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 9126 +TotalPTASVFStmts 87086 +TotalPointers 151804 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.853 +SVFIRTime 1.085 +SymbolTableTime 0.173 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 596172 +MemoryUsageVmsize 595520 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.466 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 9126 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 151459 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 151804 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494748 +UniqueIntersections 59 +LookupIntersections 2549 +PreemptiveIntersections 10291 +####################################################### + +Test time = 17.26 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 29 09:45 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 29 09:45 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 12911 +TotalPTASVFStmts 93216 +TotalPointers 223851 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.605 +SVFIRTime 1.67 +SymbolTableTime 0.32 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838528 +MemoryUsageVmsize 838300 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 14.078 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 12911 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 222874 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 223851 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 21.60 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 29 09:45 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:21 +---------------------------------------------------------- + +End testing: Jan 29 09:45 UTC diff --git a/diff_tests/perf_history/perf-2025-01-31T02:55:40.txt b/diff_tests/perf_history/perf-2025-01-31T02:55:40.txt new file mode 100644 index 00000000..8cd0f0bb --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-31T02:55:40.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 31 02:54 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 31 02:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.047 +SVFIRTime 0.04 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56957 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11560 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.001 +GenRegionTime 0.018 +InsertPHITime 0.001 +SSARenameTime 0.005 +TotalMSSATime 0.026 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05873 +AvgTopLvlPtsSize 2.33211 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3328 +MemoryUsageVmsize 83940 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.022 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.09 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2324 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33962 +PropertyUnions 24640 +UniqueUnions 332 +LookupUnions 8484 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.41 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 31 02:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 31 02:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.072 +SVFIRTime 0.073 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.36222 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18108 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.089 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.007 +GenRegionTime 0.038 +InsertPHITime 0.001 +SSARenameTime 0.006 +TotalMSSATime 0.053 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.007 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.017 +OptTime 0 +TLNodeTime 0 +TotalTime 0.024 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0583 +AvgTopLvlPtsSize 6.22743 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83628 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.208 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.039 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6409 +ProcessedLoad 12940 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4226 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98254 +PropertyUnions 77229 +UniqueUnions 373 +LookupUnions 20093 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.84 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 31 02:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 31 02:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.104 +SVFIRTime 0.116 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28352 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.118 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.007 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85124 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.394 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.26 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 31 02:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 31 02:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.112 +SVFIRTime 0.129 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4235 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33288 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.146 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.009 +GenRegionTime 0.025 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.038 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.077 +AvgTopLvlPtsSize 7.45751 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85232 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.056 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.456 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25529 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2225 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174273 +PropertyUnions 145551 +UniqueUnions 154 +LookupUnions 28330 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.46 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 31 02:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 31 02:54 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.153 +SVFIRTime 0.184 +SymbolTableTime 0.034 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0497 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 111340 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.271 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.036 +GenRegionTime 0.465 +InsertPHITime 0.003 +SSARenameTime 0.005 +TotalMSSATime 0.511 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.042 +OptTime 0 +TLNodeTime 0 +TotalTime 0.056 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.933 +AvgTopLvlPtsSize 44.7737 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45440 +MemoryUsageVmsize 103016 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.862 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.759 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.404 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30644 +ProcessedLoad 50651 +ProcessedMSSANode 43616 +ProcessedPhi 622 +ProcessedStore 17148 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6005 +TotalUnions 1960477 +PropertyUnions 1746481 +UniqueUnions 6521 +LookupUnions 197975 +PreemptiveUnions 9500 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.98 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 31 02:55 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 31 02:55 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.717 +SVFIRTime 1.039 +SymbolTableTime 0.147 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 595868 +MemoryUsageVmsize 595532 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.621 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494749 +UniqueIntersections 59 +LookupIntersections 2548 +PreemptiveIntersections 10291 +####################################################### + +Test time = 16.11 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 31 02:55 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 31 02:55 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.463 +SVFIRTime 1.58 +SymbolTableTime 0.296 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.525 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838672 +MemoryUsageVmsize 838360 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.706 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174202 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2634 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067892 +PropertyIntersections 1066301 +UniqueIntersections 5 +LookupIntersections 552 +PreemptiveIntersections 1034 +####################################################### + +Test time = 19.67 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 31 02:55 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Jan 31 02:55 UTC diff --git a/diff_tests/perf_history/perf-2025-01-31T04:44:35.txt b/diff_tests/perf_history/perf-2025-01-31T04:44:35.txt new file mode 100644 index 00000000..200e5021 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-31T04:44:35.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 31 04:43 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 31 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.037 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11556 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.038 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3328 +MemoryUsageVmsize 83940 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.082 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2324 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33962 +PropertyUnions 24640 +UniqueUnions 332 +LookupUnions 8484 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 31 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 31 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.064 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18104 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.082 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.038 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.053 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83796 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.041 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.199 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98203 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20025 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.80 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 31 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 31 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.098 +SVFIRTime 0.108 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28416 +MemoryUsageVmsize 28352 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.11 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85124 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.033 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.374 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.19 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 31 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 31 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.112 +SVFIRTime 0.126 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33280 +MemoryUsageVmsize 33288 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.152 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.005 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.007 +TotalMSSATime 0.037 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85236 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.057 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.445 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25554 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2230 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174918 +PropertyUnions 146260 +UniqueUnions 154 +LookupUnions 28266 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.47 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 31 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 31 04:43 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.157 +SVFIRTime 0.191 +SymbolTableTime 0.035 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 111336 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.182 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81072 +UniqueIntersections 32 +LookupIntersections 3026 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.042 +GenRegionTime 0.478 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.525 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.054 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45440 +MemoryUsageVmsize 103040 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.909 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.886 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.444 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30655 +ProcessedLoad 50681 +ProcessedMSSANode 43616 +ProcessedPhi 623 +ProcessedStore 17157 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6022 +TotalUnions 1961010 +PropertyUnions 1747087 +UniqueUnions 6619 +LookupUnions 197686 +PreemptiveUnions 9618 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.09 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 31 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 31 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.773 +SVFIRTime 1.044 +SymbolTableTime 0.16 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 595900 +MemoryUsageVmsize 595540 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.047 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494742 +UniqueIntersections 59 +LookupIntersections 2555 +PreemptiveIntersections 10291 +####################################################### + +Test time = 16.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 31 04:44 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 31 04:44 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.517 +SVFIRTime 1.68 +SymbolTableTime 0.3 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838592 +MemoryUsageVmsize 838368 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.768 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 21.20 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 31 04:44 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:21 +---------------------------------------------------------- + +End testing: Jan 31 04:44 UTC diff --git a/diff_tests/perf_history/perf-2025-01-31T05:42:14.txt b/diff_tests/perf_history/perf-2025-01-31T05:42:14.txt new file mode 100644 index 00000000..1a240e6d --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-31T05:42:14.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 31 05:41 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 31 05:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.053 +SVFIRTime 0.038 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11556 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.038 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3328 +MemoryUsageVmsize 83984 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.021 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.085 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 53 +ProcessedFRet 0 +ProcessedGep 3624 +ProcessedLoad 6558 +ProcessedMSSANode 10306 +ProcessedPhi 57 +ProcessedStore 2324 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 33962 +PropertyUnions 24640 +UniqueUnions 332 +LookupUnions 8484 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 31 05:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 31 05:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.074 +SVFIRTime 0.062 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18104 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.08 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.032 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4224 +MemoryUsageVmsize 83760 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.185 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 17 +ProcessedFRet 0 +ProcessedGep 6408 +ProcessedLoad 12923 +ProcessedMSSANode 16148 +ProcessedPhi 126 +ProcessedStore 4219 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1078 +TotalUnions 98203 +PropertyUnions 77246 +UniqueUnions 373 +LookupUnions 20025 +PreemptiveUnions 559 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.76 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 31 05:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 31 05:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.109 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28416 +MemoryUsageVmsize 28352 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.109 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.008 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85172 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.034 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.382 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 9 +ProcessedFRet 0 +ProcessedGep 19078 +ProcessedLoad 21433 +ProcessedMSSANode 3333 +ProcessedPhi 33 +ProcessedStore 1847 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 707 +TotalUnions 72573 +PropertyUnions 59276 +UniqueUnions 39 +LookupUnions 13192 +PreemptiveUnions 66 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.21 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 31 05:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 31 05:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.109 +SVFIRTime 0.12 +SymbolTableTime 0.02 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33288 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.142 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.023 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85284 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.055 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.452 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 19 +ProcessedFRet 0 +ProcessedGep 20324 +ProcessedLoad 25554 +ProcessedMSSANode 4874 +ProcessedPhi 39 +ProcessedStore 2230 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1064 +TotalUnions 174918 +PropertyUnions 146261 +UniqueUnions 154 +LookupUnions 28265 +PreemptiveUnions 238 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.44 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 31 05:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 31 05:41 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.152 +SVFIRTime 0.183 +SymbolTableTime 0.034 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 111292 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.135 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81072 +UniqueIntersections 32 +LookupIntersections 3026 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.53858 +GenMUCHITime 0.034 +GenRegionTime 0.496 +InsertPHITime 0.003 +SSARenameTime 0.008 +TotalMSSATime 0.541 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2928 +FunEntryChi 2306 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2299 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1283 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5791 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.054 +----------------Numbers stats---------------------------- +ActualIn 2928 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2306 +FormalOut 2299 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2972 +IndRetEdge 1925 +IndirectEdge 22983 +IndirectEdgeLabels 564901 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44910 +TotalNode 33149 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 45696 +MemoryUsageVmsize 103280 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.81 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.737 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.422 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 26 +ProcessedFRet 0 +ProcessedGep 30649 +ProcessedLoad 50669 +ProcessedMSSANode 43396 +ProcessedPhi 622 +ProcessedStore 17154 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140426 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6022 +TotalUnions 1961451 +PropertyUnions 1747510 +UniqueUnions 6616 +LookupUnions 197712 +PreemptiveUnions 9613 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.84 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 31 05:41 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 31 05:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.706 +SVFIRTime 1 +SymbolTableTime 0.143 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 595968 +MemoryUsageVmsize 595536 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.367 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494742 +UniqueIntersections 59 +LookupIntersections 2555 +PreemptiveIntersections 10291 +####################################################### + +Test time = 15.59 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 31 05:41 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 31 05:41 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.341 +SVFIRTime 1.556 +SymbolTableTime 0.274 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838784 +MemoryUsageVmsize 838392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.108 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 18.84 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 31 05:42 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +End testing: Jan 31 05:42 UTC diff --git a/diff_tests/perf_history/perf-2025-01-31T08:06:41.txt b/diff_tests/perf_history/perf-2025-01-31T08:06:41.txt new file mode 100644 index 00000000..ca942034 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-01-31T08:06:41.txt @@ -0,0 +1,1885 @@ +Start testing: Jan 31 08:05 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Jan 31 08:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.054 +SVFIRTime 0.041 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11904 +MemoryUsageVmsize 11560 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.017 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3516 +MemoryUsageVmsize 83992 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.023 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.087 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8050 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3152 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 36224 +PropertyUnions 26329 +UniqueUnions 334 +LookupUnions 9054 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.41 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Jan 31 08:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Jan 31 08:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.072 +SVFIRTime 0.064 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18108 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.082 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.036 +InsertPHITime 0.003 +SSARenameTime 0.003 +TotalMSSATime 0.051 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4352 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.048 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.218 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 15987 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5736 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108634 +PropertyUnions 85758 +UniqueUnions 356 +LookupUnions 21985 +PreemptiveUnions 535 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.81 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Jan 31 08:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Jan 31 08:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.097 +SVFIRTime 0.108 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28352 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.114 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.005 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.398 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24532 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.23 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Jan 31 08:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Jan 31 08:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.118 +SVFIRTime 0.129 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33288 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.154 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.025 +InsertPHITime 0.001 +SSARenameTime 0.005 +TotalMSSATime 0.038 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85344 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.062 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.459 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150199 +UniqueUnions 128 +LookupUnions 28164 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.50 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Jan 31 08:06 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Jan 31 08:06 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.158 +SVFIRTime 0.189 +SymbolTableTime 0.037 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 111300 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.175 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.04 +GenRegionTime 0.466 +InsertPHITime 0.002 +SSARenameTime 0.005 +TotalMSSATime 0.513 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.054 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46344 +MemoryUsageVmsize 104040 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.896 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.818 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.416 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31550 +ProcessedLoad 55188 +ProcessedMSSANode 43616 +ProcessedPhi 730 +ProcessedStore 23700 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 7049 +TotalUnions 1956671 +PropertyUnions 1744475 +UniqueUnions 9412 +LookupUnions 189364 +PreemptiveUnions 13420 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.97 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Jan 31 08:06 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Jan 31 08:06 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.748 +SVFIRTime 1.003 +SymbolTableTime 0.147 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 595936 +MemoryUsageVmsize 595540 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.599 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494746 +UniqueIntersections 59 +LookupIntersections 2551 +PreemptiveIntersections 10291 +####################################################### + +Test time = 15.92 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Jan 31 08:06 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Jan 31 08:06 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.365 +SVFIRTime 1.545 +SymbolTableTime 0.276 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838824 +MemoryUsageVmsize 838320 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.13 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 18.96 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Jan 31 08:06 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +End testing: Jan 31 08:06 UTC diff --git a/diff_tests/perf_history/perf-2025-02-03T03:02:35.txt b/diff_tests/perf_history/perf-2025-02-03T03:02:35.txt new file mode 100644 index 00000000..bccc3b32 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-03T03:02:35.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 03 03:01 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 03 03:01 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.044 +SVFIRTime 0.043 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11904 +MemoryUsageVmsize 11640 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.006 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3160 +MemoryUsageVmsize 83996 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.089 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 35528 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 03 03:01 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 03 03:01 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.073 +SVFIRTime 0.075 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18100 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.107 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.039 +InsertPHITime 0 +SSARenameTime 0.005 +TotalMSSATime 0.054 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.007 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.019 +OptTime 0 +TLNodeTime 0 +TotalTime 0.026 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.056 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.22 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.04 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.91 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 03 03:01 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 03 03:01 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.102 +SVFIRTime 0.122 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28416 +MemoryUsageVmsize 28332 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.138 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.016 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.028 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.041 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.404 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.32 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 03 03:01 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 03 03:01 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.113 +SVFIRTime 0.13 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33340 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.201 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.027 +InsertPHITime 0 +SSARenameTime 0.008 +TotalMSSATime 0.041 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.075 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.483 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150145 +UniqueUnions 128 +LookupUnions 28218 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.63 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 03 03:01 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 03 03:01 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.164 +SVFIRTime 0.197 +SymbolTableTime 0.037 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 111248 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.258 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81072 +UniqueIntersections 32 +LookupIntersections 3026 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.037 +GenRegionTime 0.468 +InsertPHITime 0.004 +SSARenameTime 0.005 +TotalMSSATime 0.515 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 47152 +MemoryUsageVmsize 104684 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.936 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.859 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.414 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.13 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 03 03:01 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 03 03:01 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.775 +SVFIRTime 1.052 +SymbolTableTime 0.169 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 596080 +MemoryUsageVmsize 595580 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.638 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494743 +UniqueIntersections 59 +LookupIntersections 2554 +PreemptiveIntersections 10291 +####################################################### + +Test time = 16.28 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 03 03:02 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 03 03:02 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.461 +SVFIRTime 1.572 +SymbolTableTime 0.299 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838976 +MemoryUsageVmsize 838336 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.439 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 20.64 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 03 03:02 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +End testing: Feb 03 03:02 UTC diff --git a/diff_tests/perf_history/perf-2025-02-03T04:43:53.txt b/diff_tests/perf_history/perf-2025-02-03T04:43:53.txt new file mode 100644 index 00000000..f4a46f60 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-03T04:43:53.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 03 04:43 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 03 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.044 +SymbolTableTime 0.009 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11904 +MemoryUsageVmsize 11632 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3292 +MemoryUsageVmsize 83992 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.089 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1042 +TotalUnions 35528 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 506 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.41 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 03 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 03 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.071 +SVFIRTime 0.067 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18100 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.085 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.036 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.05 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83880 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.046 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.195 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.79 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 03 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 03 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.105 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28336 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.109 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.015 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.036 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.399 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.008 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24532 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.23 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 03 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 03 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.112 +SVFIRTime 0.126 +SymbolTableTime 0.02 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33336 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.152 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.004 +GenRegionTime 0.025 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.037 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85332 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.059 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.469 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150178 +UniqueUnions 128 +LookupUnions 28185 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.49 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 03 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 03 04:43 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.157 +SVFIRTime 0.182 +SymbolTableTime 0.035 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 111248 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.242 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81072 +UniqueIntersections 32 +LookupIntersections 3026 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.036 +GenRegionTime 0.475 +InsertPHITime 0.001 +SSARenameTime 0.007 +TotalMSSATime 0.521 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46444 +MemoryUsageVmsize 103944 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.91 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.87 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.46 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.10 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 03 04:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 03 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.74 +SVFIRTime 1.004 +SymbolTableTime 0.148 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 596076 +MemoryUsageVmsize 595576 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.412 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5908 +LookupUnions 173335 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507646 +PropertyIntersections 494750 +UniqueIntersections 58 +LookupIntersections 2548 +PreemptiveIntersections 10290 +####################################################### + +Test time = 15.73 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 03 04:43 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 03 04:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 1.386 +SVFIRTime 1.589 +SymbolTableTime 0.304 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 838656 +MemoryUsageVmsize 838272 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.546 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.48 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 03 04:43 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 03 04:43 UTC diff --git a/diff_tests/perf_history/perf-2025-02-06T07:40:35.txt b/diff_tests/perf_history/perf-2025-02-06T07:40:35.txt new file mode 100644 index 00000000..bf6bc4ad --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-06T07:40:35.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 06 07:39 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 06 07:39 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.031 +SVFIRTime 0.074 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.057 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.007 +GenRegionTime 0.019 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.028 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.005 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.009 +OptTime 0 +TLNodeTime 0 +TotalTime 0.014 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3312 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.11 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.49 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 06 07:39 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 06 07:39 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.051 +SVFIRTime 0.125 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.125 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.011 +GenRegionTime 0.039 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.056 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.008 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.018 +OptTime 0 +TLNodeTime 0 +TotalTime 0.026 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.059 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.228 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.041 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.97 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 06 07:39 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 06 07:39 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.062 +SVFIRTime 0.204 +SymbolTableTime 0.019 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28288 +MemoryUsageVmsize 28048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.202 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.007 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.027 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.006 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.054 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.42 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.47 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 06 07:39 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 06 07:39 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.075 +SVFIRTime 0.21 +SymbolTableTime 0.023 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.21 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.042 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.056 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85344 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.08 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.498 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150145 +UniqueUnions 128 +LookupUnions 28218 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.73 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 06 07:39 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 06 07:39 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.101 +SVFIRTime 0.29 +SymbolTableTime 0.035 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110848 +MemoryUsageVmsize 110772 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.485 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.043 +GenRegionTime 0.478 +InsertPHITime 0.004 +SSARenameTime 0.003 +TotalMSSATime 0.529 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.048 +OptTime 0 +TLNodeTime 0 +TotalTime 0.063 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46432 +MemoryUsageVmsize 103936 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.03 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.074 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.519 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.70 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 06 07:39 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 06 07:39 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.439 +SVFIRTime 1.511 +SymbolTableTime 0.158 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 592884 +MemoryUsageVmsize 592516 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.093 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494750 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 18.12 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 06 07:40 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 06 07:40 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.828 +SVFIRTime 2.405 +SymbolTableTime 0.268 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 835200 +MemoryUsageVmsize 834796 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 14.934 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 22.69 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 06 07:40 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:22 +---------------------------------------------------------- + +End testing: Feb 06 07:40 UTC diff --git a/diff_tests/perf_history/perf-2025-02-10T04:58:10.txt b/diff_tests/perf_history/perf-2025-02-10T04:58:10.txt new file mode 100644 index 00000000..d41be0c7 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-10T04:58:10.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 10 04:57 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 10 04:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.03 +SVFIRTime 0.05 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.017 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3312 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.023 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.089 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 10 04:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 10 04:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.047 +SVFIRTime 0.089 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.085 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.01 +GenRegionTime 0.036 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.05 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83880 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.045 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.191 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.78 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 10 04:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 10 04:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.058 +SVFIRTime 0.136 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28160 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.116 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85068 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.036 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.371 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.18 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 10 04:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 10 04:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.163 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.157 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.005 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.006 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.06 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.448 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150177 +UniqueUnions 128 +LookupUnions 28186 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.45 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 10 04:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 10 04:57 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.231 +SymbolTableTime 0.03 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110848 +MemoryUsageVmsize 110764 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.173 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.038 +GenRegionTime 0.456 +InsertPHITime 0.002 +SSARenameTime 0.005 +TotalMSSATime 0.501 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.012 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.051 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46440 +MemoryUsageVmsize 103940 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.877 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.794 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.393 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.90 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 10 04:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 10 04:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.383 +SVFIRTime 1.266 +SymbolTableTime 0.136 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 592912 +MemoryUsageVmsize 592496 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.478 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494750 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 15.56 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 10 04:57 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 10 04:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.696 +SVFIRTime 2.038 +SymbolTableTime 0.236 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 835156 +MemoryUsageVmsize 834792 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.233 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 18.72 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 10 04:58 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +End testing: Feb 10 04:58 UTC diff --git a/diff_tests/perf_history/perf-2025-02-11T10:54:12.txt b/diff_tests/perf_history/perf-2025-02-11T10:54:12.txt new file mode 100644 index 00000000..e740c618 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-11T10:54:12.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 11 10:53 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 11 10:53 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.03 +SVFIRTime 0.051 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11500 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.017 +InsertPHITime 0.002 +SSARenameTime 0.001 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3240 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.083 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.38 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 11 10:53 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 11 10:53 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.047 +SVFIRTime 0.091 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.084 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.035 +InsertPHITime 0.004 +SSARenameTime 0.003 +TotalMSSATime 0.049 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83880 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.048 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.193 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.78 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 11 10:53 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 11 10:53 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.057 +SVFIRTime 0.139 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28288 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.12 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.036 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.381 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.008 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24532 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.21 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 11 10:53 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 11 10:53 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.165 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.158 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.005 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.06 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.447 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29299 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178695 +PropertyUnions 150180 +UniqueUnions 128 +LookupUnions 28185 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.47 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 11 10:53 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 11 10:53 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.096 +SVFIRTime 0.235 +SymbolTableTime 0.029 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110720 +MemoryUsageVmsize 110776 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.173 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.031 +GenRegionTime 0.448 +InsertPHITime 0.004 +SSARenameTime 0.008 +TotalMSSATime 0.493 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46356 +MemoryUsageVmsize 103936 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.868 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.779 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.404 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.87 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 11 10:53 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 11 10:53 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.38 +SVFIRTime 1.285 +SymbolTableTime 0.136 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 592916 +MemoryUsageVmsize 592504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.425 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494750 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 15.59 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 11 10:53 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 11 10:53 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.709 +SVFIRTime 2.1 +SymbolTableTime 0.241 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 834944 +MemoryUsageVmsize 834800 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.708 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.33 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 11 10:54 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 11 10:54 UTC diff --git a/diff_tests/perf_history/perf-2025-02-13T00:26:26.txt b/diff_tests/perf_history/perf-2025-02-13T00:26:26.txt new file mode 100644 index 00000000..ade39198 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-13T00:26:26.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 13 00:25 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 13 00:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.033 +SVFIRTime 0.064 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.017 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3312 +MemoryUsageVmsize 83968 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.085 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 13 00:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 13 00:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.047 +SVFIRTime 0.087 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18048 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.086 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.007 +GenRegionTime 0.036 +InsertPHITime 0.002 +SSARenameTime 0.005 +TotalMSSATime 0.05 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.055 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.2 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.79 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 13 00:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 13 00:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.064 +SVFIRTime 0.14 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28160 +MemoryUsageVmsize 28048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.118 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.015 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.375 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24532 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.20 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 13 00:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 13 00:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.164 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.159 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.024 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.059 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.443 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150211 +UniqueUnions 128 +LookupUnions 28152 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.47 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 13 00:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 13 00:25 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.233 +SymbolTableTime 0.029 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110848 +MemoryUsageVmsize 110748 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.195 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.035 +GenRegionTime 0.454 +InsertPHITime 0.007 +SSARenameTime 0.004 +TotalMSSATime 0.5 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.04 +OptTime 0 +TLNodeTime 0 +TotalTime 0.053 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46336 +MemoryUsageVmsize 103936 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.904 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.801 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.396 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.92 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 13 00:25 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 13 00:25 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.381 +SVFIRTime 1.376 +SymbolTableTime 0.14 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 592952 +MemoryUsageVmsize 592508 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.6 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494750 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 15.99 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 13 00:26 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 13 00:26 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.716 +SVFIRTime 2.121 +SymbolTableTime 0.23 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 835200 +MemoryUsageVmsize 834772 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.92 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.96 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 13 00:26 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 13 00:26 UTC diff --git a/diff_tests/perf_history/perf-2025-02-17T03:20:04.txt b/diff_tests/perf_history/perf-2025-02-17T03:20:04.txt new file mode 100644 index 00000000..e95b407e --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-17T03:20:04.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 17 03:19 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 17 03:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.031 +SVFIRTime 0.05 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.017 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3312 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.085 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 17 03:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 17 03:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.047 +SVFIRTime 0.093 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.086 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.007 +GenRegionTime 0.036 +InsertPHITime 0.004 +SSARenameTime 0.003 +TotalMSSATime 0.05 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.194 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.79 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 17 03:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 17 03:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.058 +SVFIRTime 0.143 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28160 +MemoryUsageVmsize 28036 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.118 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.003 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.382 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.21 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 17 03:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 17 03:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.162 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.162 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.009 +GenRegionTime 0.023 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.005 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.062 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.461 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150167 +UniqueUnions 128 +LookupUnions 28196 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.49 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 17 03:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 17 03:19 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.231 +SymbolTableTime 0.03 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110720 +MemoryUsageVmsize 110776 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.132 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.032 +GenRegionTime 0.449 +InsertPHITime 0.009 +SSARenameTime 0.004 +TotalMSSATime 0.494 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.04 +OptTime 0 +TLNodeTime 0 +TotalTime 0.053 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46244 +MemoryUsageVmsize 103940 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.898 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.816 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.405 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.87 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 17 03:19 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 17 03:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.38 +SVFIRTime 1.306 +SymbolTableTime 0.138 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 592776 +MemoryUsageVmsize 592512 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.38 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494750 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 15.60 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 17 03:19 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 17 03:19 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.721 +SVFIRTime 2.196 +SymbolTableTime 0.243 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 835052 +MemoryUsageVmsize 834788 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.157 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 20.13 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 17 03:20 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +End testing: Feb 17 03:20 UTC diff --git a/diff_tests/perf_history/perf-2025-02-17T04:05:06.txt b/diff_tests/perf_history/perf-2025-02-17T04:05:06.txt new file mode 100644 index 00000000..20a3cc65 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-17T04:05:06.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 17 04:04 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 17 04:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.031 +SVFIRTime 0.052 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.038 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3384 +MemoryUsageVmsize 83968 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.086 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 17 04:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 17 04:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.09 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18048 +MemoryUsageVmsize 18056 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.084 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.035 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.049 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.005 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83880 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.193 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.78 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 17 04:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 17 04:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.058 +SVFIRTime 0.147 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28288 +MemoryUsageVmsize 28036 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.125 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.381 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.23 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 17 04:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 17 04:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.067 +SVFIRTime 0.169 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33408 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.194 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.01 +GenRegionTime 0.025 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.039 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85332 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.063 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.451 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150133 +UniqueUnions 128 +LookupUnions 28230 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.52 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 17 04:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 17 04:04 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.095 +SVFIRTime 0.243 +SymbolTableTime 0.029 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110720 +MemoryUsageVmsize 110772 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.206 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.036 +GenRegionTime 0.465 +InsertPHITime 0.004 +SSARenameTime 0.005 +TotalMSSATime 0.511 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46292 +MemoryUsageVmsize 103944 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.905 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.816 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.405 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.98 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 17 04:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 17 04:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.383 +SVFIRTime 1.359 +SymbolTableTime 0.139 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 592916 +MemoryUsageVmsize 592504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.888 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494750 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 16.23 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 17 04:04 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 17 04:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.712 +SVFIRTime 2.166 +SymbolTableTime 0.254 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 835088 +MemoryUsageVmsize 834756 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.652 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.51 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 17 04:05 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 17 04:05 UTC diff --git a/diff_tests/perf_history/perf-2025-02-18T00:16:19.txt b/diff_tests/perf_history/perf-2025-02-18T00:16:19.txt new file mode 100644 index 00000000..43b8a928 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-18T00:16:19.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 18 00:15 UTC +---------------------------------------------------------- +1153/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1153/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 18 00:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.03 +SVFIRTime 0.055 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.017 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3380 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.089 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 18 00:15 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1154/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1154/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 18 00:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.047 +SVFIRTime 0.099 +SymbolTableTime 0.012 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.085 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.036 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.05 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.199 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.80 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 18 00:15 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1155/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1155/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 18 00:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.057 +SVFIRTime 0.144 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28288 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.121 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.005 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.397 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.24 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 18 00:15 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1156/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1156/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 18 00:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.172 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.16 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85336 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.06 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.481 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150155 +UniqueUnions 128 +LookupUnions 28208 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.52 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 18 00:15 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1157/1328 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1157/1328 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 18 00:15 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5199 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10440 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5150 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20125 +TotalPointers 38415 +TotalSVFStmts 37123 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.101 +SVFIRTime 0.256 +SymbolTableTime 0.03 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198986 +AvgIn/OutCopyEdge 0.820258 +AvgIn/OutEdge 1.47402 +AvgIn/OutLoadEdge 0.320994 +AvgIn/OutStoreEdge 0.133784 +AvgPtsSetSize 39.0282 +AvgTopLvlPtsSize 88.0444 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110976 +MemoryUsageVmsize 110748 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.264 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29247 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9611 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 387402 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 287 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 235 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23388 +NumOfCGNode 18602 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5098 +NumOfLoads 5888 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2454 +NumOfValidNode 18343 +NumOfValidObjNode 2706 +Pointers 38415 +PointsToBlkPtr 0 +PointsToConstPtr 2402 +SolveIterations 14 +StoreProcessed 57445 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38415 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6113 +TotalUnions 55458 +PropertyUnions 31644 +UniqueUnions 1629 +LookupUnions 19132 +PreemptiveUnions 3053 +TotalComplements 275990 +PropertyComplements 256748 +UniqueComplements 1635 +LookupComplements 15972 +PreemptiveComplements 1635 +TotalIntersections 87425 +PropertyIntersections 81076 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3295 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.035 +GenRegionTime 0.455 +InsertPHITime 0.005 +SSARenameTime 0.007 +TotalMSSATime 0.502 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6145 +LoadMuNode 7281 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1625 +StoreHasChi 1504 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.4776 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21927 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5199 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23030 +IndirectEdgeLabels 563720 +Load 6145 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2513 +TotalEdge 44957 +TotalNode 33204 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 113.932 +AvgTopLvlPtsSize 44.771 +AvgVersionPtsSize 61.8492 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46380 +MemoryUsageVmsize 103940 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.899 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.822 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.419 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38415 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31768 +ProcessedLoad 55486 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23756 +SolveIterations 4 +StoresNum 2513 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 116450 +TotalNonEmptyVPts 116450 +TotalObjects 3189 +TotalPointers 38415 +TotalSingleVObjs 0 +TotalVersions 140091 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6873 +TotalUnions 1954358 +PropertyUnions 1741336 +UniqueUnions 9345 +LookupUnions 190456 +PreemptiveUnions 13221 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.08 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 18 00:15 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1158/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1158/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 18 00:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27922 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43084 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22562 +TotalCallSite 7146 +TotalFieldObjects 1162 +TotalObjects 10288 +TotalPTASVFStmts 87086 +TotalPointers 161685 +TotalSVFStmts 161567 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.378 +SVFIRTime 1.343 +SymbolTableTime 0.141 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134884 +AvgIn/OutCopyEdge 0.882089 +AvgIn/OutEdge 1.51002 +AvgIn/OutLoadEdge 0.371982 +AvgIn/OutStoreEdge 0.121061 +AvgPtsSetSize 56.3207 +AvgTopLvlPtsSize 124.015 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 592836 +MemoryUsageVmsize 592492 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.79 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136666 +DummyFieldPtrs 345 +FieldObjs 1162 +GepProcessed 91731 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5341298 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1122 +MaxInLoadEdge 1902 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5482 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1865 +MaxPtsSetSize 352 +MemObjects 10288 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105650 +NumOfCGNode 78168 +NumOfCopys 40616 +NumOfFieldExpand 0 +NumOfGeps 27154 +NumOfLoads 28579 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9301 +NumOfValidNode 76829 +NumOfValidObjNode 8967 +Pointers 161685 +PointsToBlkPtr 0 +PointsToConstPtr 9191 +SolveIterations 15 +StoreProcessed 2516327 +TotalCycleNum 175 +TotalObjects 10288 +TotalPWCCycleNum 29 +TotalPointers 161685 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17811 +TotalUnions 271817 +PropertyUnions 82293 +UniqueUnions 5907 +LookupUnions 173336 +PreemptiveUnions 10281 +TotalComplements 1215603 +PropertyComplements 1042920 +UniqueComplements 5131 +LookupComplements 162426 +PreemptiveComplements 5126 +TotalIntersections 507647 +PropertyIntersections 494750 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10291 +####################################################### + +Test time = 16.16 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 18 00:15 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1159/1328 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1159/1328 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 18 00:15 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17899 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59146 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27665 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93216 +TotalPointers 229262 +TotalSVFStmts 223229 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.708 +SVFIRTime 2.154 +SymbolTableTime 0.245 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.17773 +AvgIn/OutCopyEdge 0.748923 +AvgIn/OutEdge 1.47471 +AvgIn/OutLoadEdge 0.409628 +AvgIn/OutStoreEdge 0.138434 +AvgPtsSetSize 62.44 +AvgTopLvlPtsSize 193.519 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 835072 +MemoryUsageVmsize 834792 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.805 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25617 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1616568 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3721 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3277 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91226 +NumOfCGNode 71394 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17032 +NumOfLoads 28812 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9737 +NumOfValidNode 70337 +NumOfValidObjNode 10662 +Pointers 229262 +PointsToBlkPtr 0 +PointsToConstPtr 12742 +SolveIterations 9 +StoreProcessed 479540 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229262 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174203 +PropertyUnions 142918 +UniqueUnions 1401 +LookupUnions 27249 +PreemptiveUnions 2635 +TotalComplements 668673 +PropertyComplements 644062 +UniqueComplements 515 +LookupComplements 23581 +PreemptiveComplements 515 +TotalIntersections 1067893 +PropertyIntersections 1066300 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.64 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 18 00:16 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 18 00:16 UTC diff --git a/diff_tests/perf_history/perf-2025-02-19T12:18:30.txt b/diff_tests/perf_history/perf-2025-02-19T12:18:30.txt new file mode 100644 index 00000000..aea8573a --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-19T12:18:30.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 19 12:17 UTC +---------------------------------------------------------- +1161/1336 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1161/1336 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 19 12:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.051 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11776 +MemoryUsageVmsize 11500 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.038 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.017 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3384 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.086 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 19 12:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1162/1336 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1162/1336 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 19 12:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.089 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18176 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.085 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.011 +GenRegionTime 0.036 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.051 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.01 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.024 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83924 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.046 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.201 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.80 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 19 12:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1163/1336 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1163/1336 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 19 12:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.066 +SVFIRTime 0.152 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28288 +MemoryUsageVmsize 28048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.118 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.007 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.389 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.25 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 19 12:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1164/1336 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1164/1336 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 19 12:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.067 +SVFIRTime 0.166 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33536 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.155 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85336 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.06 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.459 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150178 +UniqueUnions 128 +LookupUnions 28185 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.49 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 19 12:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1165/1336 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1165/1336 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 19 12:17 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.094 +SVFIRTime 0.243 +SymbolTableTime 0.029 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 110848 +MemoryUsageVmsize 110868 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.242 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.033 +GenRegionTime 0.457 +InsertPHITime 0.005 +SSARenameTime 0.007 +TotalMSSATime 0.502 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46512 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.89 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.813 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.407 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.02 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 19 12:17 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1166/1336 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1166/1336 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 19 12:17 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.375 +SVFIRTime 1.335 +SymbolTableTime 0.141 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 593640 +MemoryUsageVmsize 593276 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.814 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 16.14 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 19 12:18 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1167/1336 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1167/1336 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 19 12:18 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.707 +SVFIRTime 2.165 +SymbolTableTime 0.249 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836032 +MemoryUsageVmsize 835812 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.763 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.72 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 19 12:18 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 19 12:18 UTC diff --git a/diff_tests/perf_history/perf-2025-02-20T12:06:35.txt b/diff_tests/perf_history/perf-2025-02-20T12:06:35.txt new file mode 100644 index 00000000..50e7a86c --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-20T12:06:35.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 20 12:05 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 20 12:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.04 +SVFIRTime 0.055 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11500 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.007 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.005 +TotalMSSATime 0.028 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3384 +MemoryUsageVmsize 83968 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.027 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.099 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.016 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.44 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 20 12:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 20 12:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.057 +SVFIRTime 0.116 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.098 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.035 +InsertPHITime 0.003 +SSARenameTime 0.004 +TotalMSSATime 0.048 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.016 +OptTime 0 +TLNodeTime 0 +TotalTime 0.022 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.053 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.23 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.92 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 20 12:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 20 12:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.067 +SVFIRTime 0.162 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28036 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.134 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.445 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.38 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 20 12:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 20 12:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.078 +SVFIRTime 0.169 +SymbolTableTime 0.018 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33792 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.161 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85336 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.063 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.519 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150211 +UniqueUnions 128 +LookupUnions 28152 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.62 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 20 12:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 20 12:05 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.103 +SVFIRTime 0.231 +SymbolTableTime 0.031 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110836 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.19 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.025 +GenRegionTime 0.423 +InsertPHITime 0.005 +SSARenameTime 0.007 +TotalMSSATime 0.462 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46632 +MemoryUsageVmsize 103984 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.918 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.407 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.30 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 20 12:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 20 12:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.38 +SVFIRTime 1.318 +SymbolTableTime 0.143 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594268 +MemoryUsageVmsize 593264 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.886 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 16.07 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 20 12:06 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 20 12:06 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.705 +SVFIRTime 2.109 +SymbolTableTime 0.263 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836440 +MemoryUsageVmsize 835772 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.534 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.13 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 20 12:06 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 20 12:06 UTC diff --git a/diff_tests/perf_history/perf-2025-02-21T04:55:18.txt b/diff_tests/perf_history/perf-2025-02-21T04:55:18.txt new file mode 100644 index 00000000..0f34b60e --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-21T04:55:18.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 21 04:54 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 21 04:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.039 +SVFIRTime 0.051 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11500 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.015 +InsertPHITime 0.003 +SSARenameTime 0.001 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.009 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3384 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.029 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.1 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.42 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 21 04:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 21 04:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.056 +SVFIRTime 0.091 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18560 +MemoryUsageVmsize 18056 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.085 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.033 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.045 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.048 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.232 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.86 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 21 04:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 21 04:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.067 +SVFIRTime 0.145 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.123 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.003 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.005 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85068 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.039 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.442 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.35 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 21 04:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 21 04:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.077 +SVFIRTime 0.171 +SymbolTableTime 0.018 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.164 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.009 +GenRegionTime 0.022 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5504 +MemoryUsageVmsize 85332 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.065 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.522 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.62 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 21 04:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 21 04:54 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.104 +SVFIRTime 0.243 +SymbolTableTime 0.03 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110864 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.204 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.027 +GenRegionTime 0.426 +InsertPHITime 0.001 +SSARenameTime 0.009 +TotalMSSATime 0.466 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.038 +OptTime 0 +TLNodeTime 0 +TotalTime 0.051 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46512 +MemoryUsageVmsize 103984 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.012 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.124 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.434 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.45 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 21 04:54 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 21 04:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.381 +SVFIRTime 1.396 +SymbolTableTime 0.151 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 593876 +MemoryUsageVmsize 593284 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.144 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 16.50 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 21 04:54 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 21 04:54 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.717 +SVFIRTime 2.184 +SymbolTableTime 0.246 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836352 +MemoryUsageVmsize 835816 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.961 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.67 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 21 04:55 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 21 04:55 UTC diff --git a/diff_tests/perf_history/perf-2025-02-24T07:58:28.txt b/diff_tests/perf_history/perf-2025-02-24T07:58:28.txt new file mode 100644 index 00000000..5382c07d --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-24T07:58:28.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 24 07:57 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 24 07:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.039 +SVFIRTime 0.052 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.015 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3376 +MemoryUsageVmsize 83968 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.088 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.41 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 24 07:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 24 07:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.055 +SVFIRTime 0.088 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.082 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.007 +GenRegionTime 0.032 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.045 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.005 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.019 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.211 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.84 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 24 07:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 24 07:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.066 +SVFIRTime 0.14 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.118 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.002 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.433 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.32 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 24 07:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 24 07:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.076 +SVFIRTime 0.163 +SymbolTableTime 0.018 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.159 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85332 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.064 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.515 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.59 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 24 07:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 24 07:57 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.102 +SVFIRTime 0.237 +SymbolTableTime 0.03 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110844 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.155 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.027 +GenRegionTime 0.421 +InsertPHITime 0.003 +SSARenameTime 0.007 +TotalMSSATime 0.459 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.012 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.038 +OptTime 0 +TLNodeTime 0 +TotalTime 0.05 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46676 +MemoryUsageVmsize 103976 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.885 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.959 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.402 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.23 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 24 07:57 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 24 07:57 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.367 +SVFIRTime 1.321 +SymbolTableTime 0.142 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594164 +MemoryUsageVmsize 593276 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.718 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 15.87 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 24 07:58 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 24 07:58 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.689 +SVFIRTime 2.109 +SymbolTableTime 0.239 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836480 +MemoryUsageVmsize 835796 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.198 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 18.80 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 24 07:58 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +End testing: Feb 24 07:58 UTC diff --git a/diff_tests/perf_history/perf-2025-02-25T08:10:23.txt b/diff_tests/perf_history/perf-2025-02-25T08:10:23.txt new file mode 100644 index 00000000..e2f3f4b1 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-25T08:10:23.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 25 08:09 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 25 08:09 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.039 +SVFIRTime 0.058 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.006 +GenRegionTime 0.024 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.031 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3240 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.097 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.45 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 25 08:09 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 25 08:09 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.056 +SVFIRTime 0.099 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18560 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.098 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.011 +GenRegionTime 0.035 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.049 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.007 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.017 +OptTime 0 +TLNodeTime 0 +TotalTime 0.024 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83880 +PhiTime 0 +PrelabelingTime 0.002 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.048 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.224 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.039 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.91 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 25 08:09 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 25 08:09 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.067 +SVFIRTime 0.155 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.134 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.039 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.445 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 25 08:09 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 25 08:09 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.08 +SVFIRTime 0.194 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.179 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.022 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.071 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.533 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150156 +UniqueUnions 128 +LookupUnions 28207 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.69 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 25 08:09 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 25 08:09 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.107 +SVFIRTime 0.268 +SymbolTableTime 0.037 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110840 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.347 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.035 +GenRegionTime 0.509 +InsertPHITime 0.001 +SSARenameTime 0.006 +TotalMSSATime 0.551 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.044 +OptTime 0 +TLNodeTime 0 +TotalTime 0.059 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46372 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.005 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.032 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.194 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.488 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.82 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 25 08:09 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 25 08:09 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.422 +SVFIRTime 1.463 +SymbolTableTime 0.155 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 593800 +MemoryUsageVmsize 593268 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.061 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 17.81 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 25 08:10 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 25 08:10 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.748 +SVFIRTime 2.326 +SymbolTableTime 0.255 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836480 +MemoryUsageVmsize 835788 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.404 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 20.50 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 25 08:10 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +End testing: Feb 25 08:10 UTC diff --git a/diff_tests/perf_history/perf-2025-02-25T09:22:04.txt b/diff_tests/perf_history/perf-2025-02-25T09:22:04.txt new file mode 100644 index 00000000..d10f93a4 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-25T09:22:04.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 25 09:21 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 25 09:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.04 +SVFIRTime 0.054 +SymbolTableTime 0.007 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.041 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.002 +GenRegionTime 0.015 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.005 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.009 +OptTime 0 +TLNodeTime 0 +TotalTime 0.014 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3372 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.097 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.44 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 25 09:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 25 09:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.056 +SVFIRTime 0.099 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18560 +MemoryUsageVmsize 18056 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.092 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.034 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.048 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.007 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.016 +OptTime 0 +TLNodeTime 0 +TotalTime 0.023 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.057 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.238 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.041 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.91 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 25 09:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 25 09:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.069 +SVFIRTime 0.19 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28416 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.152 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.046 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.449 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.011 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.52 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 25 09:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 25 09:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.079 +SVFIRTime 0.205 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.222 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.006 +TotalMSSATime 0.036 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85332 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.077 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.544 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.77 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 25 09:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 25 09:21 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.106 +SVFIRTime 0.291 +SymbolTableTime 0.036 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110840 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.409 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.028 +GenRegionTime 0.442 +InsertPHITime 0.005 +SSARenameTime 0.008 +TotalMSSATime 0.483 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.042 +OptTime 0 +TLNodeTime 0 +TotalTime 0.056 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46680 +MemoryUsageVmsize 103984 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.077 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.258 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.488 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.87 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 25 09:21 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 25 09:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.391 +SVFIRTime 1.461 +SymbolTableTime 0.154 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594164 +MemoryUsageVmsize 593280 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.656 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 17.28 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 25 09:21 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 25 09:21 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.735 +SVFIRTime 2.246 +SymbolTableTime 0.247 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836608 +MemoryUsageVmsize 835792 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.97 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 21.22 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 25 09:22 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:21 +---------------------------------------------------------- + +End testing: Feb 25 09:22 UTC diff --git a/diff_tests/perf_history/perf-2025-02-25T09:47:28.txt b/diff_tests/perf_history/perf-2025-02-25T09:47:28.txt new file mode 100644 index 00000000..88dbe6cb --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-25T09:47:28.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 25 09:46 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 25 09:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.04 +SVFIRTime 0.058 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12032 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.043 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.025 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.009 +OptTime 0 +TLNodeTime 0 +TotalTime 0.013 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3328 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.027 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.101 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.016 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.45 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 25 09:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 25 09:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.058 +SVFIRTime 0.116 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18560 +MemoryUsageVmsize 18052 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.112 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.034 +InsertPHITime 0.004 +SSARenameTime 0.002 +TotalMSSATime 0.049 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.007 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.016 +OptTime 0 +TLNodeTime 0 +TotalTime 0.023 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4352 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.058 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.245 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.041 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.98 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 25 09:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 25 09:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.069 +SVFIRTime 0.171 +SymbolTableTime 0.016 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.154 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.015 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.026 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 85116 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.045 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.458 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.46 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 25 09:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 25 09:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.082 +SVFIRTime 0.205 +SymbolTableTime 0.021 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.215 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.023 +InsertPHITime 0.001 +SSARenameTime 0.006 +TotalMSSATime 0.037 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.065 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.53 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150211 +UniqueUnions 128 +LookupUnions 28152 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.74 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 25 09:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 25 09:46 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.107 +SVFIRTime 0.261 +SymbolTableTime 0.034 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110868 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.247 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.029 +GenRegionTime 0.435 +InsertPHITime 0.004 +SSARenameTime 0.005 +TotalMSSATime 0.474 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.015 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.043 +OptTime 0 +TLNodeTime 0 +TotalTime 0.058 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46500 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.006 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.09 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.293 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.506 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.77 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 25 09:46 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 25 09:46 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.443 +SVFIRTime 1.593 +SymbolTableTime 0.17 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594140 +MemoryUsageVmsize 593268 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.259 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 18.22 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 25 09:47 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 25 09:47 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.749 +SVFIRTime 2.293 +SymbolTableTime 0.255 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836352 +MemoryUsageVmsize 835780 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.579 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 20.78 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 25 09:47 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +End testing: Feb 25 09:47 UTC diff --git a/diff_tests/perf_history/perf-2025-02-27T23:42:53.txt b/diff_tests/perf_history/perf-2025-02-27T23:42:53.txt new file mode 100644 index 00000000..2b9953d5 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-02-27T23:42:53.txt @@ -0,0 +1,1885 @@ +Start testing: Feb 27 23:42 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Feb 27 23:42 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.038 +SVFIRTime 0.052 +SymbolTableTime 0.008 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11500 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.015 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3428 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.089 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.42 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Feb 27 23:42 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Feb 27 23:42 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.054 +SVFIRTime 0.092 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.083 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.005 +GenRegionTime 0.034 +InsertPHITime 0.003 +SSARenameTime 0.005 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.046 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.213 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.85 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Feb 27 23:42 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Feb 27 23:42 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.064 +SVFIRTime 0.143 +SymbolTableTime 0.015 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.118 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.005 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4864 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.042 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.443 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.35 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Feb 27 23:42 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Feb 27 23:42 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.075 +SVFIRTime 0.173 +SymbolTableTime 0.017 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.164 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.009 +GenRegionTime 0.022 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85332 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.063 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.511 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.61 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Feb 27 23:42 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Feb 27 23:42 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.099 +SVFIRTime 0.24 +SymbolTableTime 0.031 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110840 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.242 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.027 +GenRegionTime 0.428 +InsertPHITime 0.003 +SSARenameTime 0.007 +TotalMSSATime 0.467 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46776 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.979 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.068 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.438 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Feb 27 23:42 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Feb 27 23:42 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.396 +SVFIRTime 1.416 +SymbolTableTime 0.156 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594168 +MemoryUsageVmsize 593280 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.484 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272232 +PropertyUnions 82390 +UniqueUnions 5908 +LookupUnions 173652 +PreemptiveUnions 10282 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498703 +UniqueIntersections 59 +LookupIntersections 2547 +PreemptiveIntersections 10315 +####################################################### + +Test time = 16.95 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Feb 27 23:42 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Feb 27 23:42 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.698 +SVFIRTime 2.206 +SymbolTableTime 0.255 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836544 +MemoryUsageVmsize 835784 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.631 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.55 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Feb 27 23:42 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Feb 27 23:42 UTC diff --git a/diff_tests/perf_history/perf-2025-03-03T03:05:03.txt b/diff_tests/perf_history/perf-2025-03-03T03:05:03.txt new file mode 100644 index 00000000..814fe47a --- /dev/null +++ b/diff_tests/perf_history/perf-2025-03-03T03:05:03.txt @@ -0,0 +1,1885 @@ +Start testing: Mar 03 03:04 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Mar 03 03:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.055 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11500 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.016 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3528 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.095 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.43 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Mar 03 03:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Mar 03 03:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.038 +SVFIRTime 0.105 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.093 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.034 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.055 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.236 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.041 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.90 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Mar 03 03:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Mar 03 03:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.149 +SymbolTableTime 0.011 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28800 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.143 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.007 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.043 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.449 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24532 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Mar 03 03:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Mar 03 03:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.051 +SVFIRTime 0.199 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.203 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.024 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.038 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.009 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.074 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.555 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.73 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Mar 03 03:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Mar 03 03:04 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.07 +SVFIRTime 0.267 +SymbolTableTime 0.023 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 110840 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.381 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81320 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.032 +GenRegionTime 0.456 +InsertPHITime 0.003 +SSARenameTime 0.005 +TotalMSSATime 0.497 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.042 +OptTime 0 +TLNodeTime 0 +TotalTime 0.056 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46884 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.03 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.16 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.47 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761940 +UniqueUnions 9398 +LookupUnions 193121 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.77 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Mar 03 03:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Mar 03 03:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.211 +SVFIRTime 1.398 +SymbolTableTime 0.085 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594052 +MemoryUsageVmsize 593280 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.789 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498695 +UniqueIntersections 59 +LookupIntersections 2555 +PreemptiveIntersections 10315 +####################################################### + +Test time = 17.03 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Mar 03 03:04 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Mar 03 03:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.373 +SVFIRTime 2.254 +SymbolTableTime 0.153 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836400 +MemoryUsageVmsize 835756 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.646 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174222 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2634 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070582 +PropertyIntersections 1068991 +UniqueIntersections 5 +LookupIntersections 552 +PreemptiveIntersections 1034 +####################################################### + +Test time = 20.11 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Mar 03 03:05 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +End testing: Mar 03 03:05 UTC diff --git a/diff_tests/perf_history/perf-2025-03-03T05:05:47.txt b/diff_tests/perf_history/perf-2025-03-03T05:05:47.txt new file mode 100644 index 00000000..9140629d --- /dev/null +++ b/diff_tests/perf_history/perf-2025-03-03T05:05:47.txt @@ -0,0 +1,1885 @@ +Start testing: Mar 03 05:05 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Mar 03 05:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.052 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.038 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0.002 +SSARenameTime 0.001 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.01 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3528 +MemoryUsageVmsize 83968 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.088 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Mar 03 05:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Mar 03 05:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.037 +SVFIRTime 0.092 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18688 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.082 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.01 +GenRegionTime 0.031 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.043 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.005 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.019 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.046 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.21 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.81 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Mar 03 05:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Mar 03 05:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.137 +SymbolTableTime 0.011 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28036 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.116 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.007 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.422 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.28 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Mar 03 05:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Mar 03 05:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.05 +SVFIRTime 0.161 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.15 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5632 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.063 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.493 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.51 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Mar 03 05:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Mar 03 05:05 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.066 +SVFIRTime 0.222 +SymbolTableTime 0.024 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110864 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.089 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81320 +UniqueIntersections 31 +LookupIntersections 3023 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.027 +GenRegionTime 0.411 +InsertPHITime 0.003 +SSARenameTime 0.007 +TotalMSSATime 0.448 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.012 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.036 +OptTime 0 +TLNodeTime 0 +TotalTime 0.048 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46856 +MemoryUsageVmsize 103976 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.857 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.887 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.396 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 4.94 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Mar 03 05:05 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:04 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Mar 03 05:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.189 +SVFIRTime 1.227 +SymbolTableTime 0.084 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594172 +MemoryUsageVmsize 593272 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.633 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498699 +UniqueIntersections 59 +LookupIntersections 2551 +PreemptiveIntersections 10315 +####################################################### + +Test time = 15.32 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Mar 03 05:05 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Mar 03 05:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.339 +SVFIRTime 2.026 +SymbolTableTime 0.141 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836608 +MemoryUsageVmsize 835804 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.105 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174222 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2634 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070582 +PropertyIntersections 1068991 +UniqueIntersections 5 +LookupIntersections 552 +PreemptiveIntersections 1034 +####################################################### + +Test time = 17.95 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Mar 03 05:05 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +End testing: Mar 03 05:05 UTC diff --git a/diff_tests/perf_history/perf-2025-03-18T01:18:54.txt b/diff_tests/perf_history/perf-2025-03-18T01:18:54.txt new file mode 100644 index 00000000..76e52517 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-03-18T01:18:54.txt @@ -0,0 +1,1885 @@ +Start testing: Mar 18 01:18 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Mar 18 01:18 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.054 +SymbolTableTime 0.005 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.043 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.024 +InsertPHITime 0.001 +SSARenameTime 0.001 +TotalMSSATime 0.031 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3524 +MemoryUsageVmsize 83968 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.091 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.014 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.42 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Mar 18 01:18 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Mar 18 01:18 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.037 +SVFIRTime 0.094 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18056 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.083 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.01 +GenRegionTime 0.032 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83880 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.048 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.222 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.038 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1076 +TotalUnions 108074 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 539 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.84 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Mar 18 01:18 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Mar 18 01:18 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.145 +SymbolTableTime 0.011 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.126 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.004 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.005 +TotalMSSATime 0.022 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4864 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.441 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.34 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Mar 18 01:18 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Mar 18 01:18 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.051 +SVFIRTime 0.17 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.167 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.007 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.063 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.519 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150167 +UniqueUnions 128 +LookupUnions 28196 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.58 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Mar 18 01:18 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Mar 18 01:18 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.067 +SVFIRTime 0.238 +SymbolTableTime 0.023 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 110840 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.232 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.031 +GenRegionTime 0.432 +InsertPHITime 0.003 +SSARenameTime 0.004 +TotalMSSATime 0.47 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.04 +OptTime 0 +TLNodeTime 0 +TotalTime 0.053 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46756 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.944 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.999 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.4 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.30 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Mar 18 01:18 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Mar 18 01:18 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.201 +SVFIRTime 1.318 +SymbolTableTime 0.086 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 593996 +MemoryUsageVmsize 593276 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.918 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5908 +LookupUnions 173652 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511623 +PropertyIntersections 498701 +UniqueIntersections 58 +LookupIntersections 2550 +PreemptiveIntersections 10314 +####################################################### + +Test time = 15.88 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Mar 18 01:18 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Mar 18 01:18 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.363 +SVFIRTime 2.149 +SymbolTableTime 0.154 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836524 +MemoryUsageVmsize 835800 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.933 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174222 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2634 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070582 +PropertyIntersections 1068991 +UniqueIntersections 5 +LookupIntersections 552 +PreemptiveIntersections 1034 +####################################################### + +Test time = 19.13 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Mar 18 01:18 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Mar 18 01:18 UTC diff --git a/diff_tests/perf_history/perf-2025-03-18T07:43:59.txt b/diff_tests/perf_history/perf-2025-03-18T07:43:59.txt new file mode 100644 index 00000000..01e4a5fd --- /dev/null +++ b/diff_tests/perf_history/perf-2025-03-18T07:43:59.txt @@ -0,0 +1,1885 @@ +Start testing: Mar 18 07:43 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Mar 18 07:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.054 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.043 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.006 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3524 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.095 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.44 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Mar 18 07:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Mar 18 07:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.038 +SVFIRTime 0.1 +SymbolTableTime 0.011 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.089 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.034 +InsertPHITime 0.002 +SSARenameTime 0.004 +TotalMSSATime 0.048 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.016 +OptTime 0 +TLNodeTime 0 +TotalTime 0.022 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.002 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.051 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.232 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.039 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.89 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Mar 18 07:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Mar 18 07:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.149 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28416 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.131 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.004 +OptTime 0 +TLNodeTime 0 +TotalTime 0.005 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.039 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.451 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24532 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.36 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Mar 18 07:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Mar 18 07:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.051 +SVFIRTime 0.176 +SymbolTableTime 0.013 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.181 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.008 +GenRegionTime 0.023 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.069 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.537 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.019 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150200 +UniqueUnions 128 +LookupUnions 28163 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.65 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Mar 18 07:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Mar 18 07:43 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.25 +SymbolTableTime 0.024 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110864 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.293 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81312 +UniqueIntersections 32 +LookupIntersections 3030 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.026 +GenRegionTime 0.435 +InsertPHITime 0.002 +SSARenameTime 0.01 +TotalMSSATime 0.475 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.042 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46836 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.005 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.992 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.111 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.43 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.50 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Mar 18 07:43 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Mar 18 07:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.203 +SVFIRTime 1.367 +SymbolTableTime 0.086 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 593948 +MemoryUsageVmsize 593284 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.648 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272232 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10282 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511625 +PropertyIntersections 498695 +UniqueIntersections 62 +LookupIntersections 2552 +PreemptiveIntersections 10316 +####################################################### + +Test time = 16.89 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Mar 18 07:43 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Mar 18 07:43 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.386 +SVFIRTime 2.318 +SymbolTableTime 0.158 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836584 +MemoryUsageVmsize 835812 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.814 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 20.56 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Mar 18 07:43 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:20 +---------------------------------------------------------- + +End testing: Mar 18 07:43 UTC diff --git a/diff_tests/perf_history/perf-2025-03-26T01:34:17.txt b/diff_tests/perf_history/perf-2025-03-26T01:34:17.txt new file mode 100644 index 00000000..9fb1cb50 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-03-26T01:34:17.txt @@ -0,0 +1,1885 @@ +Start testing: Mar 26 01:33 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Mar 26 01:33 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.06 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.039 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.002 +TotalMSSATime 0.021 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3524 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.088 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Mar 26 01:33 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Mar 26 01:33 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.038 +SVFIRTime 0.096 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.083 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.008 +GenRegionTime 0.033 +InsertPHITime 0.001 +SSARenameTime 0.004 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.005 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.019 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.048 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.217 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.83 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Mar 26 01:33 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Mar 26 01:33 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.14 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28036 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.127 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.003 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4864 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.039 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.448 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.35 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Mar 26 01:33 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Mar 26 01:33 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.051 +SVFIRTime 0.167 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.168 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.022 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85336 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.064 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.527 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.017 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.60 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Mar 26 01:33 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Mar 26 01:33 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.069 +SVFIRTime 0.243 +SymbolTableTime 0.023 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 110840 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.203 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.03 +GenRegionTime 0.432 +InsertPHITime 0.002 +SSARenameTime 0.006 +TotalMSSATime 0.471 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46736 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.945 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.01 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.411 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.29 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Mar 26 01:33 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Mar 26 01:33 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.21 +SVFIRTime 1.301 +SymbolTableTime 0.086 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 593944 +MemoryUsageVmsize 593272 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.096 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498690 +UniqueIntersections 60 +LookupIntersections 2559 +PreemptiveIntersections 10315 +####################################################### + +Test time = 16.06 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Mar 26 01:33 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Mar 26 01:33 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.369 +SVFIRTime 2.109 +SymbolTableTime 0.159 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836480 +MemoryUsageVmsize 835780 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.791 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 18.86 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Mar 26 01:34 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +End testing: Mar 26 01:34 UTC diff --git a/diff_tests/perf_history/perf-2025-04-01T01:58:49.txt b/diff_tests/perf_history/perf-2025-04-01T01:58:49.txt new file mode 100644 index 00000000..946699c0 --- /dev/null +++ b/diff_tests/perf_history/perf-2025-04-01T01:58:49.txt @@ -0,0 +1,1885 @@ +Start testing: Apr 01 01:58 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Apr 01 01:58 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.054 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.04 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.016 +InsertPHITime 0.003 +SSARenameTime 0.002 +TotalMSSATime 0.024 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3540 +MemoryUsageVmsize 83968 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.095 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.43 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Apr 01 01:58 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Apr 01 01:58 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.038 +SVFIRTime 0.099 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18432 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.086 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.006 +GenRegionTime 0.034 +InsertPHITime 0.004 +SSARenameTime 0.002 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.015 +OptTime 0 +TLNodeTime 0 +TotalTime 0.021 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.053 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.228 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.86 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Apr 01 01:58 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Apr 01 01:58 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.152 +SymbolTableTime 0.011 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28544 +MemoryUsageVmsize 28036 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.133 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.007 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4864 +MemoryUsageVmsize 85112 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.444 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24532 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.36 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Apr 01 01:58 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Apr 01 01:58 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.051 +SVFIRTime 0.174 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.181 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.009 +GenRegionTime 0.023 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.037 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.009 +OptTime 0 +TLNodeTime 0 +TotalTime 0.012 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.066 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.526 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.02 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.63 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Apr 01 01:58 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Apr 01 01:58 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.069 +SVFIRTime 0.244 +SymbolTableTime 0.024 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111360 +MemoryUsageVmsize 110864 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.279 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.029 +GenRegionTime 0.443 +InsertPHITime 0.002 +SSARenameTime 0.009 +TotalMSSATime 0.483 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46852 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.003 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.028 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.121 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.431 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.48 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Apr 01 01:58 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Apr 01 01:58 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.208 +SVFIRTime 1.423 +SymbolTableTime 0.086 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594172 +MemoryUsageVmsize 593268 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.193 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498704 +UniqueIntersections 59 +LookupIntersections 2546 +PreemptiveIntersections 10315 +####################################################### + +Test time = 17.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Apr 01 01:58 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:17 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Apr 01 01:58 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.379 +SVFIRTime 2.202 +SymbolTableTime 0.151 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836608 +MemoryUsageVmsize 835784 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.18 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.48 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Apr 01 01:58 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Apr 01 01:58 UTC diff --git a/diff_tests/perf_history/perf-2025-04-05T11:05:26.txt b/diff_tests/perf_history/perf-2025-04-05T11:05:26.txt new file mode 100644 index 00000000..add4c16e --- /dev/null +++ b/diff_tests/perf_history/perf-2025-04-05T11:05:26.txt @@ -0,0 +1,1885 @@ +Start testing: Apr 05 11:04 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Apr 05 11:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.03 +SVFIRTime 0.053 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12160 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.037 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.006 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.001 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3528 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.024 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.087 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.013 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.40 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Apr 05 11:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Apr 05 11:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.037 +SVFIRTime 0.092 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18688 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.084 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.009 +GenRegionTime 0.033 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.046 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4480 +MemoryUsageVmsize 83880 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.048 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.211 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.036 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.82 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Apr 05 11:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Apr 05 11:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.142 +SymbolTableTime 0.011 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.119 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.005 +GenRegionTime 0.014 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4864 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.037 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.431 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.009 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.30 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Apr 05 11:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Apr 05 11:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.051 +SVFIRTime 0.163 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.159 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.006 +GenRegionTime 0.022 +InsertPHITime 0.001 +SSARenameTime 0.005 +TotalMSSATime 0.034 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.064 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.52 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150134 +UniqueUnions 128 +LookupUnions 28229 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.57 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Apr 05 11:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Apr 05 11:04 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.229 +SymbolTableTime 0.024 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 110860 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.156 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1630 +LookupUnions 19161 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87682 +PropertyIntersections 81317 +UniqueIntersections 32 +LookupIntersections 3025 +PreemptiveIntersections 3308 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.033 +GenRegionTime 0.422 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.46 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.013 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.039 +OptTime 0 +TLNodeTime 0 +TotalTime 0.052 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46828 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.923 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 1.99 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.405 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.16 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Apr 05 11:04 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Apr 05 11:04 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.195 +SVFIRTime 1.264 +SymbolTableTime 0.083 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594180 +MemoryUsageVmsize 593268 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 11.849 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498689 +UniqueIntersections 60 +LookupIntersections 2560 +PreemptiveIntersections 10315 +####################################################### + +Test time = 15.68 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Apr 05 11:05 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:15 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Apr 05 11:05 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.357 +SVFIRTime 2.097 +SymbolTableTime 0.147 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836552 +MemoryUsageVmsize 835756 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.645 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 18.75 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Apr 05 11:05 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:18 +---------------------------------------------------------- + +End testing: Apr 05 11:05 UTC diff --git a/diff_tests/perf_history/perf-2025-04-07T13:13:06.txt b/diff_tests/perf_history/perf-2025-04-07T13:13:06.txt new file mode 100644 index 00000000..fe24812a --- /dev/null +++ b/diff_tests/perf_history/perf-2025-04-07T13:13:06.txt @@ -0,0 +1,1885 @@ +Start testing: Apr 07 13:12 UTC +---------------------------------------------------------- +1169/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Apr 07 13:12 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.03 +SVFIRTime 0.057 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 12032 +MemoryUsageVmsize 11504 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.05 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.003 +GenRegionTime 0.016 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.004 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.007 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3412 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.025 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.093 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.44 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Apr 07 13:12 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Apr 07 13:12 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.037 +SVFIRTime 0.095 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18688 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.088 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.007 +GenRegionTime 0.032 +InsertPHITime 0.002 +SSARenameTime 0.003 +TotalMSSATime 0.045 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.014 +OptTime 0 +TLNodeTime 0 +TotalTime 0.02 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83884 +PhiTime 0 +PrelabelingTime 0.002 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.047 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.219 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.037 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.85 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Apr 07 13:12 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Apr 07 13:12 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.046 +SVFIRTime 0.144 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28672 +MemoryUsageVmsize 28044 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.123 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.004 +GenRegionTime 0.014 +InsertPHITime 0.001 +SSARenameTime 0.003 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85064 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.038 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.437 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.32 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Apr 07 13:12 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Apr 07 13:12 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.052 +SVFIRTime 0.169 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33920 +MemoryUsageVmsize 33392 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.173 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.005 +GenRegionTime 0.022 +InsertPHITime 0 +SSARenameTime 0.007 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.066 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.516 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150167 +UniqueUnions 128 +LookupUnions 28196 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.60 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Apr 07 13:12 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1344 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1344 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Apr 07 13:12 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.068 +SVFIRTime 0.237 +SymbolTableTime 0.023 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111488 +MemoryUsageVmsize 110868 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.248 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81312 +UniqueIntersections 32 +LookupIntersections 3030 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.024 +GenRegionTime 0.425 +InsertPHITime 0.007 +SSARenameTime 0.004 +TotalMSSATime 0.464 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.041 +OptTime 0 +TLNodeTime 0 +TotalTime 0.055 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46860 +MemoryUsageVmsize 103980 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.953 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.014 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.413 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761941 +UniqueUnions 9398 +LookupUnions 193120 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.32 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Apr 07 13:12 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Apr 07 13:12 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.204 +SVFIRTime 1.327 +SymbolTableTime 0.085 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594036 +MemoryUsageVmsize 593268 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.271 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498704 +UniqueIntersections 59 +LookupIntersections 2546 +PreemptiveIntersections 10315 +####################################################### + +Test time = 16.27 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Apr 07 13:12 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1175/1344 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1344 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Apr 07 13:12 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.372 +SVFIRTime 2.212 +SymbolTableTime 0.155 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836484 +MemoryUsageVmsize 835816 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.961 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.36 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Apr 07 13:13 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Apr 07 13:13 UTC diff --git a/diff_tests/perf_history/perf-2025-04-28T13:38:48.txt b/diff_tests/perf_history/perf-2025-04-28T13:38:48.txt new file mode 100644 index 00000000..15e47f4e --- /dev/null +++ b/diff_tests/perf_history/perf-2025-04-28T13:38:48.txt @@ -0,0 +1,1885 @@ +Start testing: Apr 28 13:38 UTC +---------------------------------------------------------- +1169/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +1169/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/dc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" start time: Apr 28 13:38 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : dc.bc)############### +AddrsNum 894 +BBWith2Succ 521 +BBWith3Succ 7 +CallsNum 863 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 329 +FIObjNum 8 +FSObjNum 741 +FunctionObjs 154 +GepsNum 977 +GlobalObjs 30 +HeapObjs 21 +IndCallSites 23 +LoadsNum 2667 +MaxStructSize 18 +NonPtrObj 469 +ReturnsNum 217 +StackObjs 544 +StoresNum 1209 +TotalCallSite 700 +TotalFieldObjects 112 +TotalObjects 862 +TotalPTASVFStmts 4509 +TotalPointers 9942 +TotalSVFStmts 9445 +VarArrayObj 6 +VarStructObj 57 +----------------Time and memory stats-------------------- +LLVMIRTime 0.029 +SVFIRTime 0.058 +SymbolTableTime 0.006 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190879 +AvgIn/OutCopyEdge 0.797335 +AvgIn/OutEdge 1.46426 +AvgIn/OutLoadEdge 0.35998 +AvgIn/OutStoreEdge 0.116065 +AvgPtsSetSize 0.944928 +AvgTopLvlPtsSize 2.56884 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 11904 +MemoryUsageVmsize 11500 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.041 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 826 +CopyProcessed 3848 +DummyFieldPtrs 28 +FieldObjs 112 +GepProcessed 1685 +IndCallSites 23 +IndEdgeSolved 35 +LoadProcessed 3419 +LocalVarInRecur 42 +MaxInAddrEdge 1 +MaxInCopyEdge 46 +MaxInLoadEdge 80 +MaxInStoreEdge 4 +MaxNodesInSCC 68 +MaxOutAddrEdge 78 +MaxOutCopyEdge 361 +MaxOutLoadEdge 55 +MaxOutStoreEdge 91 +MaxPtsSetSize 59 +MemObjects 862 +NodesInCycles 267 +NullPointer 21 +NumOfAddrs 745 +NumOfCGEdge 4970 +NumOfCGNode 4008 +NumOfCopys 2231 +NumOfFieldExpand 0 +NumOfGeps 881 +NumOfLoads 1405 +NumOfSCCDetect 5 +NumOfSFRs 0 +NumOfStores 453 +NumOfValidNode 3903 +NumOfValidObjNode 732 +Pointers 9942 +PointsToBlkPtr 0 +PointsToConstPtr 0 +SolveIterations 5 +StoreProcessed 1008 +TotalCycleNum 36 +TotalObjects 862 +TotalPWCCycleNum 1 +TotalPointers 9942 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1085 +TotalUnions 7686 +PropertyUnions 4197 +UniqueUnions 213 +LookupUnions 2865 +PreemptiveUnions 411 +TotalComplements 21164 +PropertyComplements 18553 +UniqueComplements 70 +LookupComplements 2471 +PreemptiveComplements 70 +TotalIntersections 3457 +PropertyIntersections 3317 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 140 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.63007 +GenMUCHITime 0.005 +GenRegionTime 0.016 +InsertPHITime 0 +SSARenameTime 0.002 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 247 +CSChiNode 998 +CSHasChi 378 +CSHasMu 477 +CSMuNode 1726 +FunEntryChi 742 +FunHasEntryChi 112 +FunHasRetMu 115 +FunRetMu 737 +LoadHasMu 1489 +LoadMuNode 1525 +MSSAPhi 950 +MaxRegSize 55 +MemRegions 419 +StoreChiNode 538 +StoreHasChi 519 +####################################################### + +*********SVFG Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.003 +AvgWeight 1.58647 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.008 +OptTime 0 +TLNodeTime 0 +TotalTime 0.011 +----------------Numbers stats---------------------------- +ActualIn 1726 +ActualOut 998 +ActualParam 870 +ActualRet 84 +Addr 826 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 1 +AvgOutDegree 1 +Copy 26 +DirectCallEdge 567 +DirectEdge 5102 +DirectRetEdge 74 +FormalIn 742 +FormalOut 737 +FormalParam 146 +FormalRet 16 +Gep 977 +IndCallEdge 1813 +IndRetEdge 1058 +IndirectEdge 9581 +IndirectEdgeLabels 15200 +Load 1489 +MSSAPhi 950 +MaxInDegree 64 +MaxIndInDeg 64 +MaxIndOutDeg 83 +MaxOutDegree 83 +PHI 17 +Store 533 +TotalEdge 14683 +TotalNode 10138 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : dc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 5 +FIObjNum 8 +FSObjNum 742 +MaxNodeInCycle 2 +NodeInCycle 3 +TotalCycle 2 +TotalEdge 716 +TotalNode 154 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : dc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.05802 +AvgTopLvlPtsSize 2.33144 +AvgVersionPtsSize 3.83887 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 3532 +MemoryUsageVmsize 83972 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.026 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.097 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.015 +----------------Numbers stats---------------------------- +CopysNum 26 +DummyFieldPtrs 28 +FieldObjs 115 +IndEdgeSolved 35 +LocalVarInRecur 42 +MaxPtsSize 59 +MaxSCCSize 1 +MaxTopLvlPtsSize 59 +MaxVersionPtsSize 59 +MaxVersionsForObj 0 +MemObjects 862 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 9942 +ProcessedAParam 0 +ProcessedAddr 1652 +ProcessedCopy 101 +ProcessedFRet 0 +ProcessedGep 3964 +ProcessedLoad 8038 +ProcessedMSSANode 10306 +ProcessedPhi 63 +ProcessedStore 3137 +SolveIterations 2 +StoresNum 533 +StrongUpdates 432 +TotalEmptyVPts 0 +TotalExistingVPts 3674 +TotalNonEmptyVPts 3674 +TotalObjects 862 +TotalPointers 9942 +TotalSingleVObjs 0 +TotalVersions 4888 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : dc.bc)############### +UniquePointsToSets 1043 +TotalUnions 35529 +PropertyUnions 26250 +UniqueUnions 333 +LookupUnions 8439 +PreemptiveUnions 507 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.43 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/dc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1170/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +1170/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bc.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" start time: Apr 28 13:38 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bc.bc)############### +AddrsNum 1352 +BBWith2Succ 827 +BBWith3Succ 23 +CallsNum 1180 +ConstArrayObj 2 +ConstStructObj 0 +ConstantObj 0 +CopysNum 754 +FIObjNum 23 +FSObjNum 850 +FunctionObjs 189 +GepsNum 1522 +GlobalObjs 90 +HeapObjs 29 +IndCallSites 21 +LoadsNum 4518 +MaxStructSize 12 +NonPtrObj 557 +ReturnsNum 318 +StackObjs 565 +StoresNum 1951 +TotalCallSite 1145 +TotalFieldObjects 27 +TotalObjects 901 +TotalPTASVFStmts 7035 +TotalPointers 16173 +TotalSVFStmts 15410 +VarArrayObj 12 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.038 +SVFIRTime 0.1 +SymbolTableTime 0.01 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.190601 +AvgIn/OutCopyEdge 0.821758 +AvgIn/OutEdge 1.5396 +AvgIn/OutLoadEdge 0.409225 +AvgIn/OutStoreEdge 0.118016 +AvgPtsSetSize 2.9272 +AvgTopLvlPtsSize 8.3607 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 18304 +MemoryUsageVmsize 18048 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.094 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1191 +CopyProcessed 8792 +DummyFieldPtrs 30 +FieldObjs 27 +GepProcessed 3314 +IndCallSites 21 +IndEdgeSolved 29 +LoadProcessed 14280 +LocalVarInRecur 44 +MaxInAddrEdge 1 +MaxInCopyEdge 63 +MaxInLoadEdge 119 +MaxInStoreEdge 47 +MaxNodesInSCC 45 +MaxOutAddrEdge 319 +MaxOutCopyEdge 716 +MaxOutLoadEdge 179 +MaxOutStoreEdge 138 +MaxPtsSetSize 50 +MemObjects 901 +NodesInCycles 335 +NullPointer 41 +NumOfAddrs 1095 +NumOfCGEdge 7750 +NumOfCGNode 5834 +NumOfCopys 3355 +NumOfFieldExpand 0 +NumOfGeps 1366 +NumOfLoads 2351 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 678 +NumOfValidNode 5745 +NumOfValidObjNode 786 +Pointers 16173 +PointsToBlkPtr 0 +PointsToConstPtr 76 +SolveIterations 7 +StoreProcessed 3816 +TotalCycleNum 48 +TotalObjects 901 +TotalPWCCycleNum 2 +TotalPointers 16173 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1376 +TotalUnions 17447 +PropertyUnions 7251 +UniqueUnions 331 +LookupUnions 9229 +PreemptiveUnions 636 +TotalComplements 44972 +PropertyComplements 36634 +UniqueComplements 246 +LookupComplements 7846 +PreemptiveComplements 246 +TotalIntersections 7621 +PropertyIntersections 6909 +UniqueIntersections 5 +LookupIntersections 214 +PreemptiveIntersections 493 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 2.26478 +GenMUCHITime 0.01 +GenRegionTime 0.033 +InsertPHITime 0.002 +SSARenameTime 0.002 +TotalMSSATime 0.047 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 387 +CSChiNode 1632 +CSHasChi 577 +CSHasMu 848 +CSMuNode 3261 +FunEntryChi 889 +FunHasEntryChi 131 +FunHasRetMu 143 +FunRetMu 887 +LoadHasMu 2516 +LoadMuNode 2805 +MSSAPhi 1405 +MaxRegSize 34 +MemRegions 423 +StoreChiNode 793 +StoreHasChi 738 +####################################################### + +*********SVFG Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.006 +AvgWeight 3.47539 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.016 +OptTime 0 +TLNodeTime 0 +TotalTime 0.022 +----------------Numbers stats---------------------------- +ActualIn 3261 +ActualOut 1632 +ActualParam 1109 +ActualRet 147 +Addr 1191 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 5 +DirectCallEdge 796 +DirectEdge 7816 +DirectRetEdge 139 +FormalIn 889 +FormalOut 887 +FormalParam 120 +FormalRet 26 +Gep 1522 +IndCallEdge 3483 +IndRetEdge 1824 +IndirectEdge 16439 +IndirectEdgeLabels 57132 +Load 2519 +MSSAPhi 1405 +MaxInDegree 330 +MaxIndInDeg 330 +MaxIndOutDeg 264 +MaxOutDegree 264 +PHI 35 +Store 828 +TotalEdge 24255 +TotalNode 15577 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bc.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 11 +FIObjNum 23 +FSObjNum 851 +MaxNodeInCycle 1 +NodeInCycle 7 +TotalCycle 7 +TotalEdge 1161 +TotalNode 189 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bc.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 17.0572 +AvgTopLvlPtsSize 6.2263 +AvgVersionPtsSize 11.3741 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4608 +MemoryUsageVmsize 83928 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.056 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.238 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.039 +----------------Numbers stats---------------------------- +CopysNum 5 +DummyFieldPtrs 30 +FieldObjs 29 +IndEdgeSolved 29 +LocalVarInRecur 44 +MaxPtsSize 46 +MaxSCCSize 1 +MaxTopLvlPtsSize 46 +MaxVersionPtsSize 46 +MaxVersionsForObj 0 +MemObjects 901 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 16173 +ProcessedAParam 0 +ProcessedAddr 2382 +ProcessedCopy 18 +ProcessedFRet 0 +ProcessedGep 6887 +ProcessedLoad 16012 +ProcessedMSSANode 16148 +ProcessedPhi 156 +ProcessedStore 5727 +SolveIterations 2 +StoresNum 828 +StrongUpdates 579 +TotalEmptyVPts 0 +TotalExistingVPts 10479 +TotalNonEmptyVPts 10479 +TotalObjects 901 +TotalPointers 16173 +TotalSingleVObjs 0 +TotalVersions 13520 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bc.bc)############### +UniquePointsToSets 1075 +TotalUnions 108073 +PropertyUnions 85319 +UniqueUnions 359 +LookupUnions 21857 +PreemptiveUnions 538 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 0.89 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bc.bc" time elapsed: 00:00:00 +---------------------------------------------------------- + +1171/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +1171/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libbz2.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" start time: Apr 28 13:38 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libbz2.so.bc)############### +AddrsNum 868 +BBWith2Succ 990 +BBWith3Succ 4 +CallsNum 476 +ConstArrayObj 1 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1812 +FIObjNum 9 +FSObjNum 647 +FunctionObjs 83 +GepsNum 4058 +GlobalObjs 7 +HeapObjs 6 +IndCallSites 20 +LoadsNum 8613 +MaxStructSize 64 +NonPtrObj 504 +ReturnsNum 56 +StackObjs 560 +StoresNum 2858 +TotalCallSite 276 +TotalFieldObjects 29 +TotalObjects 686 +TotalPTASVFStmts 9035 +TotalPointers 25133 +TotalSVFStmts 24209 +VarArrayObj 28 +VarStructObj 4 +----------------Time and memory stats-------------------- +LLVMIRTime 0.045 +SVFIRTime 0.161 +SymbolTableTime 0.011 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.0748986 +AvgIn/OutCopyEdge 0.885952 +AvgIn/OutEdge 1.40081 +AvgIn/OutLoadEdge 0.409036 +AvgIn/OutStoreEdge 0.0309244 +AvgPtsSetSize 2.43239 +AvgTopLvlPtsSize 7.20267 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 28604 +MemoryUsageVmsize 28036 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.14 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 698 +CopyProcessed 8722 +DummyFieldPtrs 4 +FieldObjs 29 +GepProcessed 7363 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 9128 +LocalVarInRecur 0 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 11 +MaxNodesInSCC 3 +MaxOutAddrEdge 43 +MaxOutCopyEdge 1533 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 9 +MemObjects 686 +NodesInCycles 9 +NullPointer 88 +NumOfAddrs 683 +NumOfCGEdge 12091 +NumOfCGNode 9173 +NumOfCopys 4101 +NumOfFieldExpand 0 +NumOfGeps 3978 +NumOfLoads 3730 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 282 +NumOfValidNode 9119 +NumOfValidObjNode 643 +Pointers 25133 +PointsToBlkPtr 0 +PointsToConstPtr 2 +SolveIterations 7 +StoreProcessed 1049 +TotalCycleNum 3 +TotalObjects 686 +TotalPWCCycleNum 0 +TotalPointers 25133 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 827 +TotalUnions 17472 +PropertyUnions 10412 +UniqueUnions 48 +LookupUnions 6925 +PreemptiveUnions 87 +TotalComplements 65643 +PropertyComplements 58556 +UniqueComplements 124 +LookupComplements 6839 +PreemptiveComplements 124 +TotalIntersections 7163 +PropertyIntersections 6915 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 248 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.32203 +GenMUCHITime 0.006 +GenRegionTime 0.013 +InsertPHITime 0 +SSARenameTime 0.004 +TotalMSSATime 0.023 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 156 +CSChiNode 63 +CSHasChi 40 +CSHasMu 168 +CSMuNode 222 +FunEntryChi 236 +FunHasEntryChi 61 +FunHasRetMu 63 +FunRetMu 235 +LoadHasMu 3740 +LoadMuNode 4179 +MSSAPhi 355 +MaxRegSize 9 +MemRegions 177 +StoreChiNode 337 +StoreHasChi 290 +####################################################### + +*********SVFG Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.001 +AvgWeight 2.37846 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.003 +OptTime 0 +TLNodeTime 0 +TotalTime 0.004 +----------------Numbers stats---------------------------- +ActualIn 222 +ActualOut 63 +ActualParam 345 +ActualRet 14 +Addr 698 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 5 +AvgOutDegree 1 +Copy 3 +DirectCallEdge 220 +DirectEdge 8993 +DirectRetEdge 5 +FormalIn 236 +FormalOut 235 +FormalParam 110 +FormalRet 8 +Gep 4058 +IndCallEdge 224 +IndRetEdge 63 +IndirectEdge 5961 +IndirectEdgeLabels 14178 +Load 3740 +MSSAPhi 355 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 10 +Store 301 +TotalEdge 14954 +TotalNode 10399 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : libbz2.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 0 +FIObjNum 9 +FSObjNum 648 +MaxNodeInCycle 0 +NodeInCycle 0 +TotalCycle 0 +TotalEdge 276 +TotalNode 83 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : libbz2.so.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 5.52843 +AvgTopLvlPtsSize 2.75679 +AvgVersionPtsSize 4.59595 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 4736 +MemoryUsageVmsize 85060 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.04 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.452 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.01 +----------------Numbers stats---------------------------- +CopysNum 3 +DummyFieldPtrs 4 +FieldObjs 29 +IndEdgeSolved 20 +LocalVarInRecur 0 +MaxPtsSize 9 +MaxSCCSize 1 +MaxTopLvlPtsSize 7 +MaxVersionPtsSize 9 +MaxVersionsForObj 0 +MemObjects 686 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 25133 +ProcessedAParam 0 +ProcessedAddr 2094 +ProcessedCopy 14 +ProcessedFRet 0 +ProcessedGep 19454 +ProcessedLoad 24534 +ProcessedMSSANode 3333 +ProcessedPhi 44 +ProcessedStore 2373 +SolveIterations 3 +StoresNum 301 +StrongUpdates 181 +TotalEmptyVPts 0 +TotalExistingVPts 6514 +TotalNonEmptyVPts 6514 +TotalObjects 686 +TotalPointers 25133 +TotalSingleVObjs 0 +TotalVersions 8563 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : libbz2.so.bc)############### +UniquePointsToSets 704 +TotalUnions 72880 +PropertyUnions 59904 +UniqueUnions 31 +LookupUnions 12891 +PreemptiveUnions 54 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.39 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/libbz2.so.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1172/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +1172/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bunzip2.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" start time: Apr 28 13:38 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bunzip2.bc)############### +AddrsNum 1271 +BBWith2Succ 1275 +BBWith3Succ 14 +CallsNum 718 +ConstArrayObj 3 +ConstStructObj 0 +ConstantObj 0 +CopysNum 1913 +FIObjNum 22 +FSObjNum 916 +FunctionObjs 150 +GepsNum 4218 +GlobalObjs 32 +HeapObjs 30 +IndCallSites 20 +LoadsNum 9449 +MaxStructSize 64 +NonPtrObj 717 +ReturnsNum 102 +StackObjs 726 +StoresNum 3219 +TotalCallSite 701 +TotalFieldObjects 51 +TotalObjects 990 +TotalPTASVFStmts 10413 +TotalPointers 28829 +TotalSVFStmts 27426 +VarArrayObj 40 +VarStructObj 16 +----------------Time and memory stats-------------------- +LLVMIRTime 0.052 +SVFIRTime 0.181 +SymbolTableTime 0.014 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.100915 +AvgIn/OutCopyEdge 0.858395 +AvgIn/OutEdge 1.39985 +AvgIn/OutLoadEdge 0.402325 +AvgIn/OutStoreEdge 0.0382123 +AvgPtsSetSize 3.7848 +AvgTopLvlPtsSize 11.4223 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 33852 +MemoryUsageVmsize 33388 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 0.22 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 1085 +CopyProcessed 11222 +DummyFieldPtrs 12 +FieldObjs 51 +GepProcessed 9174 +IndCallSites 20 +IndEdgeSolved 20 +LoadProcessed 23746 +LocalVarInRecur 5 +MaxInAddrEdge 1 +MaxInCopyEdge 70 +MaxInLoadEdge 64 +MaxInStoreEdge 14 +MaxNodesInSCC 5 +MaxOutAddrEdge 148 +MaxOutCopyEdge 1548 +MaxOutLoadEdge 935 +MaxOutStoreEdge 63 +MaxPtsSetSize 16 +MemObjects 990 +NodesInCycles 20 +NullPointer 22 +NumOfAddrs 1059 +NumOfCGEdge 13631 +NumOfCGNode 10607 +NumOfCopys 4873 +NumOfFieldExpand 0 +NumOfGeps 4135 +NumOfLoads 4222 +NumOfSCCDetect 7 +NumOfSFRs 0 +NumOfStores 401 +NumOfValidNode 10494 +NumOfValidObjNode 921 +Pointers 28829 +PointsToBlkPtr 0 +PointsToConstPtr 6 +SolveIterations 7 +StoreProcessed 2286 +TotalCycleNum 6 +TotalObjects 990 +TotalPWCCycleNum 1 +TotalPointers 28829 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1197 +TotalUnions 22669 +PropertyUnions 12259 +UniqueUnions 101 +LookupUnions 10124 +PreemptiveUnions 185 +TotalComplements 76061 +PropertyComplements 65520 +UniqueComplements 167 +LookupComplements 10207 +PreemptiveComplements 167 +TotalIntersections 11885 +PropertyIntersections 11551 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 334 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 1.6723 +GenMUCHITime 0.005 +GenRegionTime 0.023 +InsertPHITime 0 +SSARenameTime 0.006 +TotalMSSATime 0.035 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 232 +CSChiNode 231 +CSHasChi 128 +CSHasMu 316 +CSMuNode 647 +FunEntryChi 467 +FunHasEntryChi 105 +FunHasRetMu 99 +FunRetMu 440 +LoadHasMu 4233 +LoadMuNode 4683 +MSSAPhi 652 +MaxRegSize 16 +MemRegions 296 +StoreChiNode 463 +StoreHasChi 410 +####################################################### + +*********SVFG Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.002 +AvgWeight 3.20501 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.006 +OptTime 0 +TLNodeTime 0 +TotalTime 0.008 +----------------Numbers stats---------------------------- +ActualIn 647 +ActualOut 231 +ActualParam 965 +ActualRet 45 +Addr 1085 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 3 +AvgOutDegree 1 +Copy 8 +DirectCallEdge 399 +DirectEdge 10739 +DirectRetEdge 24 +FormalIn 467 +FormalOut 440 +FormalParam 151 +FormalRet 13 +Gep 4218 +IndCallEdge 668 +IndRetEdge 237 +IndirectEdge 8541 +IndirectEdgeLabels 27374 +Load 4233 +MSSAPhi 652 +MaxInDegree 70 +MaxIndInDeg 70 +MaxIndOutDeg 944 +MaxOutDegree 944 +PHI 17 +Store 429 +TotalEdge 19280 +TotalNode 13602 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : bunzip2.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 1 +FIObjNum 22 +FSObjNum 917 +MaxNodeInCycle 1 +NodeInCycle 1 +TotalCycle 1 +TotalEdge 701 +TotalNode 150 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : bunzip2.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 14.0763 +AvgTopLvlPtsSize 7.45674 +AvgVersionPtsSize 9.85726 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 5760 +MemoryUsageVmsize 85340 +PhiTime 0 +PrelabelingTime 0.001 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 0.07 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 0.529 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.018 +----------------Numbers stats---------------------------- +CopysNum 8 +DummyFieldPtrs 12 +FieldObjs 51 +IndEdgeSolved 20 +LocalVarInRecur 5 +MaxPtsSize 16 +MaxSCCSize 1 +MaxTopLvlPtsSize 15 +MaxVersionPtsSize 16 +MaxVersionsForObj 0 +MemObjects 990 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 28829 +ProcessedAParam 0 +ProcessedAddr 2170 +ProcessedCopy 25 +ProcessedFRet 0 +ProcessedGep 20760 +ProcessedLoad 29298 +ProcessedMSSANode 4874 +ProcessedPhi 54 +ProcessedStore 2892 +SolveIterations 2 +StoresNum 429 +StrongUpdates 287 +TotalEmptyVPts 0 +TotalExistingVPts 11426 +TotalNonEmptyVPts 11426 +TotalObjects 990 +TotalPointers 28829 +TotalSingleVObjs 0 +TotalVersions 14394 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : bunzip2.bc)############### +UniquePointsToSets 1055 +TotalUnions 178693 +PropertyUnions 150188 +UniqueUnions 128 +LookupUnions 28175 +PreemptiveUnions 202 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 1.68 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/bunzip2.bc" time elapsed: 00:00:01 +---------------------------------------------------------- + +1173/1440 Testing: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +1173/1440 Test: diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-vfspta" "-dump-vfg" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/htop.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" start time: Apr 28 13:38 UTC +Output: +---------------------------------------------------------- +vcall gep idx not constantint + +*********General Stats*************** +################ (program : htop.bc)############### +AddrsNum 4605 +BBWith2Succ 1523 +BBWith3Succ 22 +CallsNum 2666 +ConstArrayObj 40 +ConstStructObj 51 +ConstantObj 0 +CopysNum 1452 +FIObjNum 251 +FSObjNum 2782 +FunctionObjs 550 +GepsNum 5207 +GlobalObjs 151 +HeapObjs 58 +IndCallSites 46 +LoadsNum 10444 +MaxStructSize 65 +NonPtrObj 1965 +ReturnsNum 591 +StackObjs 2274 +StoresNum 5154 +TotalCallSite 2497 +TotalFieldObjects 155 +TotalObjects 3189 +TotalPTASVFStmts 20141 +TotalPointers 38427 +TotalSVFStmts 37139 +VarArrayObj 92 +VarStructObj 52 +----------------Time and memory stats-------------------- +LLVMIRTime 0.069 +SVFIRTime 0.245 +SymbolTableTime 0.024 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 979 +MaxNodeInCycle 125 +NodeInCycle 126 +TotalCycle 2 +TotalEdge 3876 +TotalNode 550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.198899 +AvgIn/OutCopyEdge 0.820337 +AvgIn/OutEdge 1.47425 +AvgIn/OutLoadEdge 0.321072 +AvgIn/OutStoreEdge 0.133944 +AvgPtsSetSize 39.0746 +AvgTopLvlPtsSize 88.0988 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 111420 +MemoryUsageVmsize 110840 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 1.254 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 4040 +CopyProcessed 29249 +DummyFieldPtrs 123 +FieldObjs 155 +GepProcessed 9639 +IndCallSites 46 +IndEdgeSolved 1423 +LoadProcessed 389104 +LocalVarInRecur 100 +MaxInAddrEdge 1 +MaxInCopyEdge 462 +MaxInLoadEdge 291 +MaxInStoreEdge 69 +MaxNodesInSCC 173 +MaxOutAddrEdge 1008 +MaxOutCopyEdge 1457 +MaxOutLoadEdge 352 +MaxOutStoreEdge 239 +MaxPtsSetSize 222 +MemObjects 3189 +NodesInCycles 244 +NullPointer 166 +NumOfAddrs 3650 +NumOfCGEdge 23404 +NumOfCGNode 18610 +NumOfCopys 9948 +NumOfFieldExpand 0 +NumOfGeps 5106 +NumOfLoads 5892 +NumOfSCCDetect 14 +NumOfSFRs 0 +NumOfStores 2458 +NumOfValidNode 18351 +NumOfValidObjNode 2706 +Pointers 38427 +PointsToBlkPtr 0 +PointsToConstPtr 2410 +SolveIterations 14 +StoreProcessed 59147 +TotalCycleNum 22 +TotalObjects 3189 +TotalPWCCycleNum 8 +TotalPointers 38427 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6119 +TotalUnions 55504 +PropertyUnions 31656 +UniqueUnions 1631 +LookupUnions 19160 +PreemptiveUnions 3057 +TotalComplements 276128 +PropertyComplements 256852 +UniqueComplements 1641 +LookupComplements 15994 +PreemptiveComplements 1641 +TotalIntersections 87681 +PropertyIntersections 81318 +UniqueIntersections 31 +LookupIntersections 3025 +PreemptiveIntersections 3307 +####################################################### + +*********Memory SSA Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AverageRegSize 5.50467 +GenMUCHITime 0.033 +GenRegionTime 0.445 +InsertPHITime 0.002 +SSARenameTime 0.006 +TotalMSSATime 0.486 +----------------Numbers stats---------------------------- +BBHasMSSAPhi 469 +CSChiNode 1901 +CSHasChi 913 +CSHasMu 1111 +CSMuNode 2947 +FunEntryChi 2324 +FunHasEntryChi 413 +FunHasRetMu 414 +FunRetMu 2317 +LoadHasMu 6149 +LoadMuNode 7293 +MSSAPhi 1415 +MaxRegSize 206 +MemRegions 1284 +StoreChiNode 1637 +StoreHasChi 1508 +####################################################### + +*********SVFG Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +ATNodeTime 0.014 +AvgWeight 24.5386 +ConnDirEdgeTime 0 +ConnIndEdgeTime 0.042 +OptTime 0 +TLNodeTime 0 +TotalTime 0.057 +----------------Numbers stats---------------------------- +ActualIn 2947 +ActualOut 1901 +ActualParam 3222 +ActualRet 388 +Addr 4040 +AvgInDegree 1 +AvgIndInDeg 1 +AvgIndOutDeg 2 +AvgOutDegree 1 +Copy 6 +DirectCallEdge 1747 +DirectEdge 21947 +DirectRetEdge 367 +FormalIn 2324 +FormalOut 2317 +FormalParam 599 +FormalRet 79 +Gep 5207 +IndCallEdge 2982 +IndRetEdge 1925 +IndirectEdge 23038 +IndirectEdgeLabels 565320 +Load 6149 +MSSAPhi 1415 +MaxInDegree 499 +MaxIndInDeg 499 +MaxIndOutDeg 183 +MaxOutDegree 411 +PHI 108 +Store 2517 +TotalEdge 44985 +TotalNode 33220 +####################################################### +Writing 'svfg_final.dot'...Writing 'fs_solved.dot'... +*********PTACallGraph Stats (Flow-sensitive analysis)*************** +################ (program : htop.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 796 +FIObjNum 251 +FSObjNum 2783 +MaxNodeInCycle 118 +NodeInCycle 119 +TotalCycle 2 +TotalEdge 3432 +TotalNode 550 +####################################################### + +*********Versioned Flow-Sensitive Pointer Analysis Statistics*************** +################ (program : htop.bc)############### +----------------Time and memory stats-------------------- +AddrTime 0 +AverageSCCSize 0 +AvgPtsSize 112.603 +AvgTopLvlPtsSize 44.8085 +AvgVersionPtsSize 61.1208 +CopyTime 0 +DirectPropaTime 0 +GepTime 0 +IndirectPropaTime 0 +LoadTime 0 +MemoryUsageVmrss 46772 +MemoryUsageVmsize 103984 +PhiTime 0 +PrelabelingTime 0.004 +ProcessTime 0 +PropagationTime 0 +SCCTime 0 +SolveTime 1.013 +StoreTime 0 +Strong/WeakUpdTime 0 +TotalTime 2.151 +UpdateCGTime 0 +VersionPropTime 0 +meldLabelingTime 0.46 +----------------Numbers stats---------------------------- +CopysNum 6 +DummyFieldPtrs 123 +FieldObjs 155 +IndEdgeSolved 979 +LocalVarInRecur 711 +MaxPtsSize 190 +MaxSCCSize 1 +MaxTopLvlPtsSize 190 +MaxVersionPtsSize 190 +MaxVersionsForObj 0 +MemObjects 3189 +NumOfNodesInSCC 0 +NumOfSCC 0 +Pointers 38427 +ProcessedAParam 0 +ProcessedAddr 16160 +ProcessedCopy 36 +ProcessedFRet 0 +ProcessedGep 31862 +ProcessedLoad 55573 +ProcessedMSSANode 43616 +ProcessedPhi 736 +ProcessedStore 23844 +SolveIterations 4 +StoresNum 2517 +StrongUpdates 853 +TotalEmptyVPts 0 +TotalExistingVPts 115719 +TotalNonEmptyVPts 115719 +TotalObjects 3189 +TotalPointers 38427 +TotalSingleVObjs 0 +TotalVersions 140899 +####################################################### + +****Persistent Points-To Cache Statistics: flow-sensitive analysis bitvector**** +################ (program : htop.bc)############### +UniquePointsToSets 6895 +TotalUnions 1977758 +PropertyUnions 1761940 +UniqueUnions 9398 +LookupUnions 193121 +PreemptiveUnions 13299 +TotalComplements 0 +PropertyComplements 0 +UniqueComplements 0 +LookupComplements 0 +PreemptiveComplements 0 +TotalIntersections 0 +PropertyIntersections 0 +UniqueIntersections 0 +LookupIntersections 0 +PreemptiveIntersections 0 +####################################################### + +Test time = 5.50 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-small/test_cases_bc/crux-bc/htop.bc" time elapsed: 00:00:05 +---------------------------------------------------------- + +1174/1440 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +1174/1440 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/libcurl.so.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" start time: Apr 28 13:38 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : libcurl.so.bc)############### +AddrsNum 12174 +BBWith2Succ 8522 +BBWith3Succ 198 +CallsNum 11660 +ConstArrayObj 17 +ConstStructObj 31 +ConstantObj 0 +CopysNum 4389 +FIObjNum 390 +FSObjNum 8735 +FunctionObjs 1550 +GepsNum 27964 +GlobalObjs 76 +HeapObjs 301 +IndCallSites 1068 +LoadsNum 43105 +MaxStructSize 458 +NonPtrObj 4985 +ReturnsNum 3010 +StackObjs 7198 +StoresNum 22583 +TotalCallSite 7146 +TotalFieldObjects 1163 +TotalObjects 10289 +TotalPTASVFStmts 87170 +TotalPointers 161748 +TotalSVFStmts 161651 +VarArrayObj 220 +VarStructObj 199 +----------------Time and memory stats-------------------- +LLVMIRTime 0.208 +SVFIRTime 1.367 +SymbolTableTime 0.088 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : libcurl.so.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 182 +MaxNodeInCycle 58 +NodeInCycle 96 +TotalCycle 10 +TotalEdge 7756 +TotalNode 1550 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : libcurl.so.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.134784 +AvgIn/OutCopyEdge 0.882293 +AvgIn/OutEdge 1.5103 +AvgIn/OutLoadEdge 0.371979 +AvgIn/OutStoreEdge 0.121244 +AvgPtsSetSize 56.4092 +AvgTopLvlPtsSize 124.092 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 594108 +MemoryUsageVmsize 593272 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 12.373 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 10897 +CopyProcessed 136827 +DummyFieldPtrs 345 +FieldObjs 1163 +GepProcessed 91953 +IndCallSites 1068 +IndEdgeSolved 1641 +LoadProcessed 5371327 +LocalVarInRecur 221 +MaxInAddrEdge 1 +MaxInCopyEdge 1123 +MaxInLoadEdge 1914 +MaxInStoreEdge 299 +MaxNodesInSCC 515 +MaxOutAddrEdge 2060 +MaxOutCopyEdge 5490 +MaxOutLoadEdge 613 +MaxOutStoreEdge 1877 +MaxPtsSetSize 352 +MemObjects 10289 +NodesInCycles 1765 +NullPointer 4790 +NumOfAddrs 10363 +NumOfCGEdge 105758 +NumOfCGNode 78220 +NumOfCopys 40640 +NumOfFieldExpand 0 +NumOfGeps 27196 +NumOfLoads 28600 +NumOfSCCDetect 15 +NumOfSFRs 0 +NumOfStores 9322 +NumOfValidNode 76886 +NumOfValidObjNode 8973 +Pointers 161748 +PointsToBlkPtr 0 +PointsToConstPtr 9224 +SolveIterations 15 +StoreProcessed 2538125 +TotalCycleNum 175 +TotalObjects 10289 +TotalPWCCycleNum 29 +TotalPointers 161748 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : libcurl.so.bc)############### +UniquePointsToSets 17820 +TotalUnions 272231 +PropertyUnions 82390 +UniqueUnions 5907 +LookupUnions 173653 +PreemptiveUnions 10281 +TotalComplements 1216507 +PropertyComplements 1043548 +UniqueComplements 5143 +LookupComplements 162678 +PreemptiveComplements 5138 +TotalIntersections 511624 +PropertyIntersections 498700 +UniqueIntersections 59 +LookupIntersections 2550 +PreemptiveIntersections 10315 +####################################################### + +Test time = 16.41 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/libcurl.so.bc" time elapsed: 00:00:16 +---------------------------------------------------------- + +1175/1440 Testing: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +1175/1440 Test: diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc +Command: "/home/runner/work/SVF/SVF/Release-build/bin/wpa" "-ander" "/home/runner/work/SVF/SVF/Test-Suite/test_cases_bc/crux-bc/bash.bc" +Directory: /home/runner/work/SVF/SVF/Release-build/bin +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" start time: Apr 28 13:38 UTC +Output: +---------------------------------------------------------- + +*********General Stats*************** +################ (program : bash.bc)############### +AddrsNum 17593 +BBWith2Succ 17408 +BBWith3Succ 141 +CallsNum 18004 +ConstArrayObj 95 +ConstStructObj 36 +ConstantObj 0 +CopysNum 10183 +FIObjNum 327 +FSObjNum 12583 +FunctionObjs 2369 +GepsNum 17909 +GlobalObjs 875 +HeapObjs 71 +IndCallSites 72 +LoadsNum 59151 +MaxStructSize 24 +NonPtrObj 8135 +ReturnsNum 5385 +StackObjs 9595 +StoresNum 27670 +TotalCallSite 13528 +TotalFieldObjects 1278 +TotalObjects 14189 +TotalPTASVFStmts 93236 +TotalPointers 229277 +TotalSVFStmts 223249 +VarArrayObj 157 +VarStructObj 462 +----------------Time and memory stats-------------------- +LLVMIRTime 0.373 +SVFIRTime 2.206 +SymbolTableTime 0.159 +####################################################### + +*********PTACallGraph Stats (Andersen analysis)*************** +################ (program : bash.bc)############### +----------------Numbers stats---------------------------- +CalRetPairInCycle 6385 +MaxNodeInCycle 1158 +NodeInCycle 1176 +TotalCycle 11 +TotalEdge 14859 +TotalNode 2369 +####################################################### + +*********Andersen Pointer Analysis Stats*************** +################ (program : bash.bc)############### +----------------Time and memory stats-------------------- +AvgIn/OutAddrEdge 0.177705 +AvgIn/OutCopyEdge 0.748959 +AvgIn/OutEdge 1.47479 +AvgIn/OutLoadEdge 0.409641 +AvgIn/OutStoreEdge 0.138485 +AvgPtsSetSize 62.4548 +AvgTopLvlPtsSize 193.535 +CollapseTime 0 +CopyGepTime 0 +LoadStoreTime 0 +MemoryUsageVmrss 836352 +MemoryUsageVmsize 835820 +SCCDetectTime 0 +SCCMergeTime 0 +TotalTime 13.006 +UpdateCGTime 0 +----------------Numbers stats---------------------------- +AddrProcessed 15085 +CopyProcessed 113956 +DummyFieldPtrs 977 +FieldObjs 1278 +GepProcessed 25632 +IndCallSites 72 +IndEdgeSolved 1375 +LoadProcessed 1618078 +LocalVarInRecur 3372 +MaxInAddrEdge 1 +MaxInCopyEdge 1070 +MaxInLoadEdge 3726 +MaxInStoreEdge 95 +MaxNodesInSCC 281 +MaxOutAddrEdge 2176 +MaxOutCopyEdge 13223 +MaxOutLoadEdge 300 +MaxOutStoreEdge 3282 +MaxPtsSetSize 327 +MemObjects 14189 +NodesInCycles 3050 +NullPointer 881 +NumOfAddrs 12501 +NumOfCGEdge 91246 +NumOfCGNode 71404 +NumOfCopys 35645 +NumOfFieldExpand 0 +NumOfGeps 17042 +NumOfLoads 28817 +NumOfSCCDetect 9 +NumOfSFRs 0 +NumOfStores 9742 +NumOfValidNode 70347 +NumOfValidObjNode 10662 +Pointers 229277 +PointsToBlkPtr 0 +PointsToConstPtr 12752 +SolveIterations 9 +StoreProcessed 481320 +TotalCycleNum 346 +TotalObjects 14189 +TotalPWCCycleNum 26 +TotalPointers 229277 +####################################################### + +****Persistent Points-To Cache Statistics: Andersen's analysis bitvector**** +################ (program : bash.bc)############### +UniquePointsToSets 15689 +TotalUnions 174223 +PropertyUnions 142933 +UniqueUnions 1401 +LookupUnions 27254 +PreemptiveUnions 2635 +TotalComplements 668783 +PropertyComplements 644167 +UniqueComplements 515 +LookupComplements 23586 +PreemptiveComplements 515 +TotalIntersections 1070583 +PropertyIntersections 1068990 +UniqueIntersections 6 +LookupIntersections 552 +PreemptiveIntersections 1035 +####################################################### + +Test time = 19.35 sec +---------------------------------------------------------- +Test Passed. +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" end time: Apr 28 13:38 UTC +"diff-perf-cruxbc-big/test_cases_bc/crux-bc/bash.bc" time elapsed: 00:00:19 +---------------------------------------------------------- + +End testing: Apr 28 13:38 UTC diff --git a/doublefree_check.h b/doublefree_check.h deleted file mode 100644 index 17b34237..00000000 --- a/doublefree_check.h +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - - -/// safe malloc -void* SAFEMALLOC(int n){ - return malloc(n); -} -/// double free malloc -void* DOUBLEFREEMALLOC(int n){ - return malloc(n); -} -/// double free malloc fn (output safe but should be double free) -void* DOUBLEFREEMALLOCFN(int n){ - return malloc(n); -} -/// safe malloc fn for double free (output double free but should be safe) -void* SAFEMALLOCFP(int n){ - return malloc(n); -} -/// safe free function -void* SAFEFREE(int * p){ - free(p); -} -/// double free -void* DOUBLEFREE(int * p){ - free(p); -} diff --git a/generate_bc.sh b/generate_bc.sh deleted file mode 100755 index 4de04f2c..00000000 --- a/generate_bc.sh +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/sh -# Generate bitcode for the .c/.cpp tests in $test_dirs. - -sysOS=$(uname -s) - -test_dirs=" - basic_c_tests - basic_cpp_tests - complex_tests - cpp_types - cs_tests - fs_tests - mem_leak - double_free - mta - non_annotated_tests - path_tests - objtype_tests - ae_overflow_tests - ae_assert_tests - ae_nullptr_deref_tests -" - - -root=$(cd "$(dirname "$0")"; pwd) -bc_path="$root/test_cases_bc" - -if [[ $sysOS == "Linux" ]];then - -######## -# Remove previous bc folder and create a new one. -######## - -git rm -rf "$bc_path" -mkdir -p "$bc_path" - -######## -# Loops through each folder in test_dirs. -######## -for td in $test_dirs; do - ######## - # Creates a directory for each listed folder. - ######## - bc_td="$bc_path/$td" - mkdir -p "$bc_td" - - ######## - # Full path to the test dir. - ######## - full_td="$root/src/$td" - - ######## - # Loops through each file within the folder. - ######## - for c_f in "$full_td/"*; do - ######## - # Obtains the text after the '.'. - ######## - ext=${c_f##*.} - - ######## - # We only look for .c/.cpp files. Check $ext = $f in case the filename is c/cpp. - ######## - if [ \( "$ext" != "cpp" -a "$ext" != "c" \) -o "$ext" = "$f" ] - then - continue - fi - - ######## - # The output .bc file name. - ######## - bc_f="$bc_td/`basename "$c_f"`.bc" - - ######## - # If the .bc is newer than the .c/.cpp, then no need to compile. - ######## - if [ "$bc_f" -nt "$c_f" ]; then - continue - fi - - ######## - # Set up the compiler to clang if the file extension is c else clang++. - ######## - compiler="" - if [ "$ext" = "c" ]; then - compiler="clang" - else - compiler="clang++" - fi - - echo "$0: Compiling '$c_f'" - echo "$0: to '$bc_f'" - - ######## - # created a .ll, let's make it .bc, as the filename suggests. - ######## - if test $td == "mem_leak" - then - $compiler -Wno-everything -S -emit-llvm -fno-discard-value-names -g -I"$root" "$c_f" -o "$bc_f" - # td = "ae_assert_tests" or "ae_overflow_tests" - elif test $td == "ae_assert_tests" - then - $compiler -Wno-everything -S -c -Xclang -DINCLUDEMAIN -Wno-implicit-function-declaration -fno-discard-value-names -g -emit-llvm -I"$root" "$c_f" -o "$bc_f" - elif test $td == "ae_overflow_tests" - then - $compiler -Wno-everything -S -c -Xclang -DINCLUDEMAIN -Wno-implicit-function-declaration -fno-discard-value-names -g -emit-llvm -I"$root" "$c_f" -o "$bc_f" - else - $compiler -Wno-everything -S -emit-llvm -fno-discard-value-names -I"$root" "$c_f" -o "$bc_f" - fi - #llvm-as "$bc_f" -o "$bc_f" - opt -S -p=mem2reg "$bc_f" -o "$bc_f" - done -done - -fi \ No newline at end of file diff --git a/memleak_check.h b/memleak_check.h deleted file mode 100644 index 48c1e1bd..00000000 --- a/memleak_check.h +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -// safe malloc -void* SAFEMALLOC(int n){ - return malloc(n); -} -// partial leak malloc -void* PLKMALLOC(int n){ - return malloc(n); -} -/// never free malloc -void* NFRMALLOC(int n){ - return malloc(n); -} -/// context leak malloc -void* CLKMALLOC(int n){ - return malloc(n); -} -/// expected never free false positive leak -void* NFRLEAKFP(int n){ - return malloc(n); -} -/// expected partial leak false positive leak -void* PLKLEAKFP(int n){ - return malloc(n); -} -/// expected leak false negative leak -void* LEAKFN(int n){ - return malloc(n); -} diff --git a/src/ae_assert_tests/BASIC_array_2d_0-0.c b/src/ae_assert_tests/BASIC_array_2d_0-0.c deleted file mode 100644 index 0eb3c32a..00000000 --- a/src/ae_assert_tests/BASIC_array_2d_0-0.c +++ /dev/null @@ -1,23 +0,0 @@ -// -// Created by Jiawei Wang on 1/27/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - int a[3][3]; - a[0][0] = 0; - a[0][1] = 1; - a[0][2] = 2; - a[1][0] = 3; - a[1][1] = 4; - a[1][2] = 5; - a[2][0] = 6; - a[2][1] = 7; - a[2][2] = 8; - - int b = 2, c = 2; - svf_assert(a[b][c] == 8); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_array_func_0-0.c b/src/ae_assert_tests/BASIC_array_func_0-0.c deleted file mode 100644 index 9b7826d8..00000000 --- a/src/ae_assert_tests/BASIC_array_func_0-0.c +++ /dev/null @@ -1,21 +0,0 @@ -// -// Created by Jiawei Wang on 2/3/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int getValue(int* arr, int idx) { - return arr[idx]; -} - -int main() { - int arr[2]; - arr[0] = 0; - arr[1] = 1; - int v = getValue(arr, 1); - svf_print(v, "value"); - svf_assert(v == 1); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_array_func_3-0.c b/src/ae_assert_tests/BASIC_array_func_3-0.c deleted file mode 100644 index a72f3a2f..00000000 --- a/src/ae_assert_tests/BASIC_array_func_3-0.c +++ /dev/null @@ -1,24 +0,0 @@ -// -// Created by Jiawei Wang on 2/3/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); - -struct { - int a; - int b[2]; -}typedef A; - -int getValue(A* arr, int x) { - return arr->b[x]; -} - -int main() { - A a; - a.a = 0; - a.b[0] = 1; - a.b[1] = 2; - svf_assert(getValue(&a, 1) == 2); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_array_func_4-0.c b/src/ae_assert_tests/BASIC_array_func_4-0.c deleted file mode 100644 index e50ca70e..00000000 --- a/src/ae_assert_tests/BASIC_array_func_4-0.c +++ /dev/null @@ -1,20 +0,0 @@ -// -// Created by Jiawei Wang on 2/5/22. -// - - -#include "stdbool.h" -extern void svf_assert(bool); - -int getValue(int* arr, int x) { - return arr[x]; -} - -int main() { - int arr[2]; - arr[0] = 0; - arr[1] = 1; - int res = getValue(arr, 1); - svf_assert(res == 1); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_array_func_6-0.c b/src/ae_assert_tests/BASIC_array_func_6-0.c deleted file mode 100644 index 86129b97..00000000 --- a/src/ae_assert_tests/BASIC_array_func_6-0.c +++ /dev/null @@ -1,18 +0,0 @@ -// -// Created by Jiawei Wang on 2/3/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); - -int getValue(int arr[2][2], int x, int y) { - return arr[x][y]; -} - -int main() { - int arr[2][2]; - arr[0][0] = 10; - int v = getValue(arr, 0, 0); - svf_assert(v == 10); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_array_int_0-0.c b/src/ae_assert_tests/BASIC_array_int_0-0.c deleted file mode 100644 index c45a8c39..00000000 --- a/src/ae_assert_tests/BASIC_array_int_0-0.c +++ /dev/null @@ -1,15 +0,0 @@ - // -// Created by Jiawei Wang on 1/17/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); -#define LEN 10 - -int main() { - int a[LEN] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - int *p = a + 9; - *p = 10; - svf_assert(a[LEN-1] == 10); - return 0; -} diff --git a/src/ae_assert_tests/BASIC_array_struct_0-0.c b/src/ae_assert_tests/BASIC_array_struct_0-0.c deleted file mode 100644 index e770d00c..00000000 --- a/src/ae_assert_tests/BASIC_array_struct_0-0.c +++ /dev/null @@ -1,22 +0,0 @@ -// -// Created by Jiawei Wang on 1/27/22. -// - - -#include "stdbool.h" -extern void svf_assert(bool); - -struct { - int a; - int b; -}typedef A; -int main() { - A a[2]; - a[0].a = 10; - a[0].b = 11; - a[1].a = 20; - a[1].b = 21; - int c = 0; - svf_assert(a[c].b == 11); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_array_varIdx_1-0.c b/src/ae_assert_tests/BASIC_array_varIdx_1-0.c deleted file mode 100644 index 3f293b3f..00000000 --- a/src/ae_assert_tests/BASIC_array_varIdx_1-0.c +++ /dev/null @@ -1,11 +0,0 @@ -extern void svf_assert(int); -int main(){ - - int a[3]; - a[0] = 0; - a[1] = 1; - a[2] = 2; - int i = 1; - svf_assert(a[i]==1); - -} diff --git a/src/ae_assert_tests/BASIC_arraycopy1-0.c b/src/ae_assert_tests/BASIC_arraycopy1-0.c deleted file mode 100644 index 98d1cbe3..00000000 --- a/src/ae_assert_tests/BASIC_arraycopy1-0.c +++ /dev/null @@ -1,7 +0,0 @@ -int main() { - int a, b; - int* source[2] = {&a, &b}; - int* x = source[1]; - svf_assert(x==&b); - return 0; -} diff --git a/src/ae_assert_tests/BASIC_arraycopy2-0.c b/src/ae_assert_tests/BASIC_arraycopy2-0.c deleted file mode 100644 index 964f97f4..00000000 --- a/src/ae_assert_tests/BASIC_arraycopy2-0.c +++ /dev/null @@ -1,7 +0,0 @@ -extern void svf_assert(int); -int main() { - char source[2] = {'A','B'}; //include terminating character - char x = source[1]; - svf_assert(x=='B'); - return 0; -} diff --git a/src/ae_assert_tests/BASIC_arraycopy3-0.c b/src/ae_assert_tests/BASIC_arraycopy3-0.c deleted file mode 100644 index 5fc1f244..00000000 --- a/src/ae_assert_tests/BASIC_arraycopy3-0.c +++ /dev/null @@ -1,7 +0,0 @@ -extern void svf_assert(int); -int a[2]={1,2}; -int main() { - //char source[5] = "hello"; - svf_assert(a[1]==2); - return 0; -} diff --git a/src/ae_assert_tests/BASIC_assign_0-0.c b/src/ae_assert_tests/BASIC_assign_0-0.c deleted file mode 100644 index 1792d2b5..00000000 --- a/src/ae_assert_tests/BASIC_assign_0-0.c +++ /dev/null @@ -1,12 +0,0 @@ -// -// Created by Jiawei Wang on 1/20/22. -// -#include "stdbool.h" - -extern void svf_assert(bool); -int main() { - int a = -1; - a = a*a; - svf_assert(a>0); - return 0; -} diff --git a/src/ae_assert_tests/BASIC_assign_1-0.c b/src/ae_assert_tests/BASIC_assign_1-0.c deleted file mode 100644 index 9b8e66ee..00000000 --- a/src/ae_assert_tests/BASIC_assign_1-0.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main(){ - int x=1; - int y=1; - svf_assert(x == y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_assign_2-0.c b/src/ae_assert_tests/BASIC_assign_2-0.c deleted file mode 100644 index e67fa2d1..00000000 --- a/src/ae_assert_tests/BASIC_assign_2-0.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - int a = 10; - int b = 5; - a = b; - svf_assert( a != 10); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_assign_3-0.c b/src/ae_assert_tests/BASIC_assign_3-0.c deleted file mode 100644 index 59371cf8..00000000 --- a/src/ae_assert_tests/BASIC_assign_3-0.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - int a = 10; - int b = 5; - a = b; - svf_assert( a == 5); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_bi_add_0-0.c b/src/ae_assert_tests/BASIC_bi_add_0-0.c deleted file mode 100644 index 4fb58f9d..00000000 --- a/src/ae_assert_tests/BASIC_bi_add_0-0.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - - -int main(){ - int x = -1; // 10000000001 - x += 3; // 0000000011 - svf_assert(x == 2); // signed 0000000010 unsigned 100000010 - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_bi_add_1-0.c b/src/ae_assert_tests/BASIC_bi_add_1-0.c deleted file mode 100644 index e38e8da5..00000000 --- a/src/ae_assert_tests/BASIC_bi_add_1-0.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - int a, b; - a = 1; - a += 2 ; - b = a; - svf_assert( b == 3 ); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_bi_add_2-0.c b/src/ae_assert_tests/BASIC_bi_add_2-0.c deleted file mode 100644 index c5181e8e..00000000 --- a/src/ae_assert_tests/BASIC_bi_add_2-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_assert_eq(int, int); -extern void set_value(int, int, int); -extern void svf_print(int, char*); -int main() { - volatile int i; - set_value(i, 0, 100); - volatile int a, c; - a = i + 1; - c = a; - svf_assert_eq(c, i+1); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_bi_div_0-0.c b/src/ae_assert_tests/BASIC_bi_div_0-0.c deleted file mode 100644 index 04387bd4..00000000 --- a/src/ae_assert_tests/BASIC_bi_div_0-0.c +++ /dev/null @@ -1,14 +0,0 @@ - -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); -int main() { - int a = 10; - int b = 5; - int c = a / b; - int d = a % b; - svf_print(c, "c"); - svf_print(d, "d"); - svf_assert(c == 2 && d == 0); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_bi_mix_0-0.c b/src/ae_assert_tests/BASIC_bi_mix_0-0.c deleted file mode 100644 index 4509f820..00000000 --- a/src/ae_assert_tests/BASIC_bi_mix_0-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void set_value(int, int, int); -int main() { - int a, b; - a = 1; - a += 2 ; - b = a; - b -= 1; - svf_assert( a == 3 && b == 2); - - - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_bi_mul_0-0.c b/src/ae_assert_tests/BASIC_bi_mul_0-0.c deleted file mode 100644 index 8dc3d8ae..00000000 --- a/src/ae_assert_tests/BASIC_bi_mul_0-0.c +++ /dev/null @@ -1,10 +0,0 @@ - -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - int a = 1; - int b = 2; - int c = a * b; - svf_assert(c == 2); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_br_false_0-0.c b/src/ae_assert_tests/BASIC_br_false_0-0.c deleted file mode 100644 index da9eadf5..00000000 --- a/src/ae_assert_tests/BASIC_br_false_0-0.c +++ /dev/null @@ -1,18 +0,0 @@ - -// CHECK: ^sat$ - - -#include "stdbool.h" - -extern void svf_assert(bool); - -int main() { - int x; - x = 1; - - if (false) { - x++; - } - svf_assert(x != 2); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_br_nd_0-0.c b/src/ae_assert_tests/BASIC_br_nd_0-0.c deleted file mode 100644 index 63931d2f..00000000 --- a/src/ae_assert_tests/BASIC_br_nd_0-0.c +++ /dev/null @@ -1,23 +0,0 @@ - -// CHECK: ^sat$ - -extern int nd(void); - -#include "stdbool.h" - -extern void svf_assert(bool); -extern void svf_assert_eq(int, int); - -int main() { - int x, y; - x = 1; - y = 1; - - if (nd()) { - x++; - y++; - } - svf_assert(x <=10); - svf_assert_eq(x, y); - return 0; -} diff --git a/src/ae_assert_tests/BASIC_br_nd_1-0.c b/src/ae_assert_tests/BASIC_br_nd_1-0.c deleted file mode 100644 index d521b991..00000000 --- a/src/ae_assert_tests/BASIC_br_nd_1-0.c +++ /dev/null @@ -1,22 +0,0 @@ - -// CHECK: ^sat$ - -extern int nd(void); - -#include "stdbool.h" - -extern void svf_assert(bool); - -int main() { - int x, y; - x = 1; - y = 1; - - if (nd()) { - x++; - y++; - svf_assert(x==y && x<=10 && x>=y && x<=y); - } - return 0; -} - diff --git a/src/ae_assert_tests/BASIC_br_nd_2-0.c b/src/ae_assert_tests/BASIC_br_nd_2-0.c deleted file mode 100644 index d42868c2..00000000 --- a/src/ae_assert_tests/BASIC_br_nd_2-0.c +++ /dev/null @@ -1,22 +0,0 @@ - -// CHECK: ^sat$ - -extern int nd(void); - -#include "stdbool.h" - -extern void svf_assert(bool); -extern void svf_assert_eq(int, int); - -int main() { - int x, y; - x = 1; - y = 1; - - if (nd()) { - x++; - y++; - } - svf_assert_eq(x,y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_br_nd_malloc-0.c b/src/ae_assert_tests/BASIC_br_nd_malloc-0.c deleted file mode 100644 index 7ceaa850..00000000 --- a/src/ae_assert_tests/BASIC_br_nd_malloc-0.c +++ /dev/null @@ -1,12 +0,0 @@ -extern void svf_assert(int); -extern int* malloc(int); -int main(int argc){ - int* p = malloc(10); - *p = 10; - if(argc){ - *p = 20; - } - else{ - svf_assert(*p==10); - } -} diff --git a/src/ae_assert_tests/BASIC_br_true_0-0.c b/src/ae_assert_tests/BASIC_br_true_0-0.c deleted file mode 100644 index 8d7afcc6..00000000 --- a/src/ae_assert_tests/BASIC_br_true_0-0.c +++ /dev/null @@ -1,21 +0,0 @@ - -// CHECK: ^sat$ - -extern int nd(void); - -#include "stdbool.h" - -extern void svf_assert(bool); - -int main() { - int x, y; - x = 1; - y = 1; - - if (true) { - x++; - y++; - } - svf_assert(x == y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_funcall_ref_0-0.c b/src/ae_assert_tests/BASIC_funcall_ref_0-0.c deleted file mode 100644 index 99e393f6..00000000 --- a/src/ae_assert_tests/BASIC_funcall_ref_0-0.c +++ /dev/null @@ -1,16 +0,0 @@ -// -// Created by Jiawei Wang on 12/30/21. -// -#include "stdbool.h" -//ADDR, LOAD, STORE, CAST(COPY) -extern void svf_assert(bool); - -void foo(int* p) { - *p = 1; -} - -int main() { - int a = 0; - foo(&a); - svf_assert(a == 1); -} diff --git a/src/ae_assert_tests/BASIC_funcall_ref_1-0.c b/src/ae_assert_tests/BASIC_funcall_ref_1-0.c deleted file mode 100644 index 71a7a20b..00000000 --- a/src/ae_assert_tests/BASIC_funcall_ref_1-0.c +++ /dev/null @@ -1,18 +0,0 @@ -// -// Created by Jiawei Wang on 12/30/21. -// -#include "stdbool.h" -//ADDR, LOAD, STORE, CAST(COPY) -extern void svf_assert(bool); - -void swap(int* p, int* q) { - int t = *p; - *p = *q; - *q = t; -} - -int main() { - int a = 0, b = 1; - swap(&a, &b); - svf_assert(a == 1); -} diff --git a/src/ae_assert_tests/BASIC_funcall_ref_2-0.c b/src/ae_assert_tests/BASIC_funcall_ref_2-0.c deleted file mode 100644 index ea0bb6a1..00000000 --- a/src/ae_assert_tests/BASIC_funcall_ref_2-0.c +++ /dev/null @@ -1,16 +0,0 @@ -// -// Created by Jiawei Wang on 12/30/21. -// -#include "stdbool.h" -//ADDR, LOAD, STORE, CAST(COPY) -extern void svf_assert(bool); - -int foo(int* p) { - return 0; -} - -int main() { - int a = 0; - int res = foo(&a); - svf_assert(res == 0); -} diff --git a/src/ae_assert_tests/BASIC_nullptr_def_0-0.c b/src/ae_assert_tests/BASIC_nullptr_def_0-0.c deleted file mode 100644 index f499ad96..00000000 --- a/src/ae_assert_tests/BASIC_nullptr_def_0-0.c +++ /dev/null @@ -1,30 +0,0 @@ -/* -Program description: In this program, the struct twoIntsStructPointer, contains two integers, twoIntsStructPointer->intOne and twoIntsStructPointer->intTwo, which are assigned as 5 and 3, respectively. Then, twoInstructPointer is set to NULL, and an if statement is used to check if twoIntsStructPointer is not equal to NULL and if twoIntsStructPointer->intOne is equal to 5. If the if condition holds true, then the program prints that twoIntsStructPointer->intOne is equal to 5 - -Vulnerability and consequence: However, the and operator (&) that is used in the if statement to check that twoIntsStructPointer is not equal to NULL and if the first integer in the struct is equal to 5 evaluates both sides of the and operator. Therefore, even though twoIntStructPointer is set to NULL, the program will still check if the first integer in the struct is equal to 5, thus causing a NULL pointer dereference - -The vulnerability triggers in the following lines: -if ((twoIntsStructPointer != NULL) & (twoIntsStructPointer->intOne == 5)) - -Mitigation: To make this program safe to run, use the conditional and operator (&&) instead of the and operator (&) to ensure the right hand side of the operator is only evaluated if the left hand side of the operator is true, which avoids the NULL pointer dereference -*/ - -#include -#define ALLOCA alloca - -typedef struct _twoIntsStruct { - int intOne; - int intTwo; -} twoIntsStruct; - -int main() { - twoIntsStruct * twoIntsStructPointer = (twoIntsStruct * )ALLOCA(sizeof(twoIntsStruct)); - twoIntsStructPointer->intOne = 5; - twoIntsStructPointer->intTwo = 3; - if (twoIntsStructPointer->intTwo < 0) { - twoIntsStructPointer = NULL; - } - svf_assert(twoIntsStructPointer->intTwo == 3);// wrong assert should be != - //svf_assert(twoIntsStructPointer->intOne != 5 && twoIntsStructPointer->intTwo != 3); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_ptr_assign_0-0.c b/src/ae_assert_tests/BASIC_ptr_assign_0-0.c deleted file mode 100644 index 54e48885..00000000 --- a/src/ae_assert_tests/BASIC_ptr_assign_0-0.c +++ /dev/null @@ -1,15 +0,0 @@ -// -// Created by Jiawei Wang on 1/16/22. -// - -#include "stdbool.h" -//ADDR, LOAD, STORE, CAST(COPY) -extern void svf_assert(bool); - -int main() { - int *p; - int a = 1; - p = &a; - *p = 3; - svf_assert(a == 3); -} diff --git a/src/ae_assert_tests/BASIC_ptr_call1-0.c b/src/ae_assert_tests/BASIC_ptr_call1-0.c deleted file mode 100644 index 456bdd59..00000000 --- a/src/ae_assert_tests/BASIC_ptr_call1-0.c +++ /dev/null @@ -1,30 +0,0 @@ -// CHECK: ^unsat$ -#include "stdbool.h" -extern void svf_assert(bool); -extern int nd_int(void); - -int a (void); -int c (int); - -int main() { - int (*p) (void); - int (*q) (int); - - if (nd_int()) { -// p = a; -// q = c; -// } else { -// p = b; -// q = d; - } - - int x = a(); - int y = c(2); - - svf_assert(x>= 5 && y>= 7); - - return 0; -} - -int a() {return 10;} -int c(int x) {return x+5;} diff --git a/src/ae_assert_tests/BASIC_ptr_call2-0.c b/src/ae_assert_tests/BASIC_ptr_call2-0.c deleted file mode 100644 index 18ef1173..00000000 --- a/src/ae_assert_tests/BASIC_ptr_call2-0.c +++ /dev/null @@ -1,22 +0,0 @@ -// CHECK: ^unsat$ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_assert_eq(int, int); -extern void svf_print(int, char*); -extern void set_value(int, int, int); - -int a (void); -int c (int); - -int main() { - int y = c(2); - int x = c(3); - int res; - set_value(res, 2, 3); - svf_print(x, "X"); - svf_assert_eq(x, res); - - return 0; -} - -int c(int z) {return z;} diff --git a/src/ae_assert_tests/BASIC_ptr_func_0-0.c b/src/ae_assert_tests/BASIC_ptr_func_0-0.c deleted file mode 100644 index 47474f4b..00000000 --- a/src/ae_assert_tests/BASIC_ptr_func_0-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -void swap(char **p, char **q){ - char* t = *p; - *p = *q; - *q = t; - svf_assert(*q == t); -} -int main(){ - char a1, b1; - char *a = &a1; - char *b = &b1; - swap(&a,&b); -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_ptr_func_1-0.c b/src/ae_assert_tests/BASIC_ptr_func_1-0.c deleted file mode 100644 index 44e8306b..00000000 --- a/src/ae_assert_tests/BASIC_ptr_func_1-0.c +++ /dev/null @@ -1,27 +0,0 @@ -// CHECK: ^unsat$ -#include "stdbool.h" -extern void svf_assert(bool); -extern int nd_int(void); - -int a (void); -int c (int); - -int main() { - int (*p) (void); - int (*q) (int); - - if (nd_int()) { - p = a; - q = c; - } - - int x = p(); - int y = q(2); - - svf_assert(x>= 5 && y>= 7); - - return 0; -} - -int a() {return 10;} -int c(int x) {return x+5;} diff --git a/src/ae_assert_tests/BASIC_ptr_func_4-0.c b/src/ae_assert_tests/BASIC_ptr_func_4-0.c deleted file mode 100644 index 476136c0..00000000 --- a/src/ae_assert_tests/BASIC_ptr_func_4-0.c +++ /dev/null @@ -1,23 +0,0 @@ -// CHECK: ^unsat$ -#include "stdbool.h" -extern void svf_assert(bool); -extern int nd_int(void); -int c (int*); - -int main(int argc, char** argv) { - int (*q) (int*); - if (nd_int()) { - q = c; - } else { - q = c; - } - int y = 5; - int r = q(&y); // the indirect call returns an integer - - svf_assert(y >= 7); -} - -int c(int* x) { - *x = *x+5; - return (nd_int() ? 0: 1); -} diff --git a/src/ae_assert_tests/BASIC_ptr_func_6-0.c b/src/ae_assert_tests/BASIC_ptr_func_6-0.c deleted file mode 100644 index c79da514..00000000 --- a/src/ae_assert_tests/BASIC_ptr_func_6-0.c +++ /dev/null @@ -1,20 +0,0 @@ -// CHECK: ^unsat$ -#include "stdbool.h" -extern void svf_assert(bool); -extern int nd_int(void); -void c (int*); - -int main(int argc, char** argv) { - void (*q) (int*) = c; - nd_int(); - - int y = 5; - q(&y); // the indirect call returns an integer - - svf_assert(y >= 7); -} - -void c(int* x) { - *x = *x+5; - nd_int(); -} diff --git a/src/ae_assert_tests/BASIC_ptr_s32_2-0.c b/src/ae_assert_tests/BASIC_ptr_s32_2-0.c deleted file mode 100644 index 22105eb7..00000000 --- a/src/ae_assert_tests/BASIC_ptr_s32_2-0.c +++ /dev/null @@ -1,13 +0,0 @@ -// -// Created by Jiawei Wang on 6/30/22. -// -#include "stdbool.h" -extern void svf_assert(bool); - -#define ALLOCA alloca - -int main() { - int a[3] = {1,2,3}; - int* p = (int *)ALLOCA((4)*sizeof(int)); // INT_MIN , INT_MAX - memcpy(p , a, 3*sizeof(int)); -} diff --git a/src/ae_assert_tests/BASIC_struct_array_0-0.c b/src/ae_assert_tests/BASIC_struct_array_0-0.c deleted file mode 100644 index cc24263f..00000000 --- a/src/ae_assert_tests/BASIC_struct_array_0-0.c +++ /dev/null @@ -1,20 +0,0 @@ -// -// Created by Jiawei Wang on 1/27/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); - -struct { - int a; - int b[3]; -}typedef A; -int main() { - A a; - a.b[0] = 4; - a.b[1] = 5; - a.b[2] = 6; - a.a = 1; - svf_assert(a.b[a.a] == 5); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_struct_assign_0-0.c b/src/ae_assert_tests/BASIC_struct_assign_0-0.c deleted file mode 100644 index b8b96afc..00000000 --- a/src/ae_assert_tests/BASIC_struct_assign_0-0.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include -#include - - -extern void __VERIFIER_error (void); -extern void __VERIFIER_assume (int); -extern void svf_assert(bool); -#define assume __VERIFIER_assume - - -typedef struct Struct { - int x; - int y; -} Struct; - -int main() { - Struct a; - int *p = &a.y; - a.y = 10; - svf_assert(*p == 10); - return 0; -} diff --git a/src/ae_assert_tests/BASIC_switch-0.c b/src/ae_assert_tests/BASIC_switch-0.c deleted file mode 100644 index b1f849ff..00000000 --- a/src/ae_assert_tests/BASIC_switch-0.c +++ /dev/null @@ -1,27 +0,0 @@ -// -// Created by Jiawei Wang on 1/17/22. -// - - -int main() { - int x, y; - x = 1; - y = 0; - char cond = 'a'; - switch (cond) - { - case 'a': - x += 1; - break; - case 'bb': - x += y; - case 'c': - x -= y; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch01-0.c b/src/ae_assert_tests/BASIC_switch01-0.c deleted file mode 100644 index 89a1e82a..00000000 --- a/src/ae_assert_tests/BASIC_switch01-0.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int nd(void) -{ - return 1; -} - -int main() { - int x, y; - x = 1; - y = 0; - switch (nd()) - { - case 0: - x += 1; - break; - case 1: - x += y; - break; - case 2: - x -= y; - break; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch02-0.c b/src/ae_assert_tests/BASIC_switch02-0.c deleted file mode 100644 index f2983322..00000000 --- a/src/ae_assert_tests/BASIC_switch02-0.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); - - -int main() { - int x, y; - x = 1; - y = 0; - char cond = 'a'; - switch (cond) - { - case 'a': - x += 1; - break; - case 'bb': - x += y; - case 'c': - x -= y; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch03-0.c b/src/ae_assert_tests/BASIC_switch03-0.c deleted file mode 100644 index f02ee0d1..00000000 --- a/src/ae_assert_tests/BASIC_switch03-0.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int nd(void) -{ - return 1; -} - -int main() { - int x, y; - x = 1; - y = 0; - switch (nd()) - { - case 1: - x += 1; - break; - case 0: - x += y; - break; - case 2: - x -= y; - break; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch04-0.c b/src/ae_assert_tests/BASIC_switch04-0.c deleted file mode 100644 index 9594c638..00000000 --- a/src/ae_assert_tests/BASIC_switch04-0.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int nd(void) -{ - return 1; -} - -int main() { - int x, y; - x = 1; - y = 0; - const int i = 1; - switch (x) - { - case 0: - x += 1; - break; - case i: - x += y; - break; - case 2: - x -= y; - break; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch05-0.c b/src/ae_assert_tests/BASIC_switch05-0.c deleted file mode 100644 index 43c807ba..00000000 --- a/src/ae_assert_tests/BASIC_switch05-0.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int nd(void) -{ - return 1; -} - -int main() { - int x, y; - x = 1; - y = 0; - switch (nd()) - { - case 0: - x += 1; - break; - case 1: - x += y; - break; - case 2: - x -= y; - break; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch06-0.c b/src/ae_assert_tests/BASIC_switch06-0.c deleted file mode 100644 index f2983322..00000000 --- a/src/ae_assert_tests/BASIC_switch06-0.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); - - -int main() { - int x, y; - x = 1; - y = 0; - char cond = 'a'; - switch (cond) - { - case 'a': - x += 1; - break; - case 'bb': - x += y; - case 'c': - x -= y; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch07-0.c b/src/ae_assert_tests/BASIC_switch07-0.c deleted file mode 100644 index f02ee0d1..00000000 --- a/src/ae_assert_tests/BASIC_switch07-0.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int nd(void) -{ - return 1; -} - -int main() { - int x, y; - x = 1; - y = 0; - switch (nd()) - { - case 1: - x += 1; - break; - case 0: - x += y; - break; - case 2: - x -= y; - break; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch08-0.c b/src/ae_assert_tests/BASIC_switch08-0.c deleted file mode 100644 index 22166374..00000000 --- a/src/ae_assert_tests/BASIC_switch08-0.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int nd(void) -{ - return 1; -} - -int main() { - int x, y; - x = 1; - y = 0; - const int i = 1; - switch (x) - { - case 0: - x += 1; - break; - case i: - x += y; - break; - case 2: - x -= y; - break; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch09-0.c b/src/ae_assert_tests/BASIC_switch09-0.c deleted file mode 100644 index 82aad4e2..00000000 --- a/src/ae_assert_tests/BASIC_switch09-0.c +++ /dev/null @@ -1,33 +0,0 @@ - - -#include "stdbool.h" -extern void svf_assert(bool); - -int nd(void) -{ - return 1; -} - -int main() { - int x, y; - x = 1; - y = 0; - switch (nd()) - { - case 0: - x += 1; - break; - case 1: - x += y; - break; - case 2: - x -= y; - break; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_switch10-0.c b/src/ae_assert_tests/BASIC_switch10-0.c deleted file mode 100644 index f2983322..00000000 --- a/src/ae_assert_tests/BASIC_switch10-0.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); - - -int main() { - int x, y; - x = 1; - y = 0; - char cond = 'a'; - switch (cond) - { - case 'a': - x += 1; - break; - case 'bb': - x += y; - case 'c': - x -= y; - default: - x++; - y++; - break; - } - svf_assert(x >= y); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BASIC_test_11-0.c b/src/ae_assert_tests/BASIC_test_11-0.c deleted file mode 100644 index 640f2bd0..00000000 --- a/src/ae_assert_tests/BASIC_test_11-0.c +++ /dev/null @@ -1,16 +0,0 @@ -//scope testing, pass - -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - int data = 0; - { - int data = 1; - { - int data = 2; - } - svf_assert(data == 1); - } - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/BUF_OVERFLOW_test_47-0.c b/src/ae_assert_tests/BUF_OVERFLOW_test_47-0.c deleted file mode 100644 index b302e2c6..00000000 --- a/src/ae_assert_tests/BUF_OVERFLOW_test_47-0.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include - -int main() { - int buffer[58]; - srand(time(0)); - int randomNumber = rand() % 128; - char ch = randomNumber; - if (isdigit(ch)) { - //randomNumber = [48, 57] - buffer[randomNumber] = 1; //FP - } - else { - //randomNumber < 48 || randomNumber > 57 - buffer[randomNumber] = 1; //TP - } -} diff --git a/src/ae_assert_tests/CAST_fptosi.c b/src/ae_assert_tests/CAST_fptosi.c deleted file mode 100644 index e48a70ae..00000000 --- a/src/ae_assert_tests/CAST_fptosi.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - float f = -3.14; - int si = (int)f; // fptosi - svf_assert(si == -3); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/CAST_fptoui.c b/src/ae_assert_tests/CAST_fptoui.c deleted file mode 100644 index 6d94091c..00000000 --- a/src/ae_assert_tests/CAST_fptoui.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); -int main() { - float f = 3.14; - unsigned int ui = (unsigned int)f; // fptoui - svf_print(ui, "UI"); - svf_assert(ui == 3); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/CAST_fptrunc.c b/src/ae_assert_tests/CAST_fptrunc.c deleted file mode 100644 index 8ab1c5ea..00000000 --- a/src/ae_assert_tests/CAST_fptrunc.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - double d = 1.0; - float f = (float)d; // fptrunc from double to float - svf_assert(f == 1.0f); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/CAST_sext.c b/src/ae_assert_tests/CAST_sext.c deleted file mode 100644 index 852c88e7..00000000 --- a/src/ae_assert_tests/CAST_sext.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - signed char size = -1; - int c = size; - svf_assert(c == -1); -} \ No newline at end of file diff --git a/src/ae_assert_tests/CAST_sitofp.c b/src/ae_assert_tests/CAST_sitofp.c deleted file mode 100644 index 2453446b..00000000 --- a/src/ae_assert_tests/CAST_sitofp.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - int si = -42; - float f = (float)si; // sitofp - svf_assert(f == -42.0f); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/CAST_trunc.c b/src/ae_assert_tests/CAST_trunc.c deleted file mode 100644 index 2bae4596..00000000 --- a/src/ae_assert_tests/CAST_trunc.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); -int main() { - int64_t largeValue = 256; // 假设我们有一个int64_t的值 - int8_t truncatedValue = (int8_t)largeValue; // trunc to int8_t - // 由于256超出了int8_t的表示范围(-128到127),所以这里会回绕到0 - svf_assert(truncatedValue == 0); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/CAST_uitofp.c b/src/ae_assert_tests/CAST_uitofp.c deleted file mode 100644 index ac23a566..00000000 --- a/src/ae_assert_tests/CAST_uitofp.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - unsigned int ui = 42; - float f = (float)ui; // uitofp - svf_assert(f == 42.0f); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/CAST_zext.c b/src/ae_assert_tests/CAST_zext.c deleted file mode 100644 index 2dfb6fae..00000000 --- a/src/ae_assert_tests/CAST_zext.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - unsigned char size = 255; - int c = size + 1; - svf_assert(c == 256); -} \ No newline at end of file diff --git a/src/ae_assert_tests/CVE-2019-19847-0.c b/src/ae_assert_tests/CVE-2019-19847-0.c deleted file mode 100644 index 60d7ad09..00000000 --- a/src/ae_assert_tests/CVE-2019-19847-0.c +++ /dev/null @@ -1,23 +0,0 @@ -/* -CVE-ID: CVE-2019-19847 -Description: Libspiro through 20190731 has a stack-based buffer overflow in the spiro_to_bpath0() function in spiro.c. -*/ - -#include - -void spiro_to_bpath0(double *dm) { - int index = 5; - //assert(index < 5); - dm[index] = 1.; //potential buffer overflow -} - -void test_curve() { - double d[5]; - d[0] = 1.; d[1] = d[1] = 0.; - - spiro_to_bpath0(d); -} - -int main() { - test_curve(); -} diff --git a/src/ae_assert_tests/CVE-2020-13598-0.c b/src/ae_assert_tests/CVE-2020-13598-0.c deleted file mode 100644 index b1ceaec4..00000000 --- a/src/ae_assert_tests/CVE-2020-13598-0.c +++ /dev/null @@ -1,41 +0,0 @@ -/* -CVE-ID: CVE-2020-13598 -Description: FS: Buffer Overflow when enabling Long File Names in FAT_FS and calling fs_stat. Zephyr versions >= v1.14.2, >= v2.3.0 contain Stack-based Buffer Overflow (CWE-121). -*/ - -#include -#include -#include -#include -#include - -#define _USE_LFN 1 - -#define MAX_FILE_NAME 12 /* Uses 8.3 SFN */ -#define _MAX_LFN 255 - -typedef struct { -#if _USE_LFN != 0 - char fname[_MAX_LFN + 1]; /* Primary file name */ -#else - char fname[13]; -#endif -} FILINFO; - -struct fs_dirent { - char name[MAX_FILE_NAME + 1]; -}; - -void fatfs_stat(struct fs_dirent *entry, FILINFO fno) { - if (true) { //nd() - //assert(strlen(fno.fname) < 13); - strcpy(entry->name, fno.fname); //potential buffer overflow - } -} - -int main() { - struct fs_dirent fsdir; - FILINFO filinfo; - strcpy(filinfo.fname, "01234567890123456789"); - fatfs_stat(&fsdir, filinfo); -} diff --git a/src/ae_assert_tests/CVE-2020-29203-0.c b/src/ae_assert_tests/CVE-2020-29203-0.c deleted file mode 100644 index 22baaa46..00000000 --- a/src/ae_assert_tests/CVE-2020-29203-0.c +++ /dev/null @@ -1,70 +0,0 @@ -/* -CVE-ID: CVE-2020-29203 -Description: struct2json before 2020-11-18 is affected by a Buffer Overflow because strcpy is used for S2J_STRUCT_GET_string_ELEMENT. -*/ - -#include -#include -#include -#include -#include -#include - -typedef struct { - char name[8]; -} Hometown; - -/* The cJSON structure: */ -typedef struct cJSON { - struct cJSON *child; /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */ - char *valuestring; /* The item's string, if type==cJSON_String */ - char *string; /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */ -} cJSON; - -#define S2J_CREATE_STRUCT_OBJECT(struct_obj, type) \ - cJSON *json_temp; \ - type *struct_obj = malloc(sizeof(type)); \ - if (struct_obj) memset(struct_obj, 0, sizeof(type)); - -#define S2J_STRUCT_GET_string_ELEMENT(to_struct, from_json, _element) \ - json_temp = from_json->child; \ - /*assert(sizeof(to_struct->_element) >= strlen(json_temp->valuestring) + 1);*/ \ - if (json_temp) strcpy((to_struct)->_element, json_temp->valuestring); //potential buffer overflow - -static char* cJSON_strdup(const char* str) { - size_t len = strlen(str) + 1; - char *copy = (char*)malloc(len); - memcpy(copy,str,len); - return copy; -} - -cJSON *cJSON_CreateString(const char *string) { - cJSON *item = (cJSON*)malloc(sizeof(cJSON)); - item->valuestring=cJSON_strdup(string); - return item; -} - -void cJSON_AddItemToArray(cJSON *array, cJSON *item) { - cJSON *c = array->child; - if (!c) { - array->child = item; - } -} - -void cJSON_AddItemToObject(cJSON *object,const char *string,cJSON *item) { - item->string=cJSON_strdup(string); - cJSON_AddItemToArray(object,item); -} - -static void *json_to_struct(cJSON* json_obj) { - S2J_CREATE_STRUCT_OBJECT(struct_hometown, Hometown); - S2J_STRUCT_GET_string_ELEMENT(struct_hometown, json_obj, name); - return struct_hometown; -} - -int main() { - cJSON *json = (cJSON*)malloc(sizeof(cJSON)); - cJSON_AddItemToObject(json, "name", cJSON_CreateString("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ")); - Hometown * test = json_to_struct(json); - //printf("%s\n", test->name); -} diff --git a/src/ae_assert_tests/CVE-2021-39602-0.c b/src/ae_assert_tests/CVE-2021-39602-0.c deleted file mode 100644 index 3e2437bf..00000000 --- a/src/ae_assert_tests/CVE-2021-39602-0.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -CVE-ID: CVE-2021-39602 -A Buffer Overflow vulnerabilty exists in Miniftpd 1.0 in the do_mkd function in the ftpproto.c file, which could let a remote malicious user cause a Denial of Service. -*/ - -#include -#include -#include -#include -#include -#include -#include - -#define MAX_BUFFER_SIZE 1024 -#define MAX_ARG 1024 - -#define FTP_MKDIROK 257 -#define FTP_FILEFAIL 550 -#define FTP_NOPERM 550 - -typedef struct session { - char arg[MAX_ARG]; -}session_t; - -static void do_mkd(session_t *sess) { - if(mkdir(sess->arg, 0755) < 0) { - if(errno == EEXIST) { - printf("%s\n", "Create directory operation failed."); - } - else { - printf("%s\n", "Permission denied."); - } - return; - } - char buf[MAX_BUFFER_SIZE] = {0}; - if(getcwd(buf, MAX_BUFFER_SIZE) != NULL) { - //assert((strlen(buf) + strlen(sess->arg) + 11) < sizeof(buf)); - sprintf(buf, "\"%s\\%s\" created",buf,sess->arg); //potential buffer overflow if path length is too long - //printf("%d\n", strlen(buf)); - } -} - -int main() { - session_t sess; - strcpy(sess.arg, "dQTzRwmNuJFoD9pFIwx97jfTRv1rAbvZ0Wcz6FdQU6uBcM6TreKoHvS0418qcGBLSqRCK4o7K0VxcfZ8btrUiIGMYbvdFdXueAvE3DrvmwaoFb06t3ZkpNw9HrSB7xCsJmdo86ZhrrCMlIx0m7im6zwBM3qnjds3OW6seTegTihzANyeZQmH1ojYIb7nZJEBJkFu7Ov8IBifYUFjoZNVdaTEmD8CnXnthnDYB45ssxTkcsPMbF2oLycwepI0jmd"); - - do_mkd(&sess); -} diff --git a/src/ae_assert_tests/CVE-2021-44975-0.c b/src/ae_assert_tests/CVE-2021-44975-0.c deleted file mode 100644 index 38a42657..00000000 --- a/src/ae_assert_tests/CVE-2021-44975-0.c +++ /dev/null @@ -1,106 +0,0 @@ -/* -CVE-ID: CVE-2021-44975 -Description: radareorg radare2 5.5.2 is vulnerable to Buffer Overflow via /libr/core/anal_objc.c mach-o parser. -*/ - -#include -#include -#include -#include -#include - -#define ut64 unsigned long long -#define ut8 unsigned char -#define R_MAX(x,y) (((x)>(y))?(x):(y)) -#define R_MIN(x,y) (((x)>(y))?(y):(x)) - -typedef struct r_io_t { - ut8 Oxff; // which printable char to use instead of 0xff for unallocated bytes -} RIO; - -typedef struct r_bin_section_t { - ut64 vsize; -} RBinSection; - -struct r_core_t { - RIO *io; -}; -typedef struct r_core_t RCore; - -typedef struct { - RCore *core; - size_t file_size; - RBinSection *_selrefs; - RBinSection *_const; -} RCoreObjc; - -int r_io_pread_at(RIO* io, ut8* buf, int len) { - if(!(io && buf && len >= 0)) { - return -1; - } - if (true) { //nd() - //assert(len <= maxsize); - memset(buf, io->Oxff, len); //potential buffer overflow - printf("%s\n", buf); - } - return 1; -} - -bool internal_r_io_read_at(RIO *io, ut8 *buf, int len) { - if (len < 1) { - return false; - } - bool ret = r_io_pread_at (io, buf, len) > 0; - return ret; -} - - -bool r_io_read_at(RIO *io, ut8 *buf, int len) { - if(!(io && buf && len >= 0)) { - return false; - } - if (len == 0) { - return false; - } - return internal_r_io_read_at (io, buf, len); -} - -bool objc_build_refs(RCoreObjc *objc) { - size_t ss_const = objc->_const->vsize; - size_t ss_selrefs = objc->_selrefs->vsize; - - // TODO: check if ss_const or ss_selrefs are too big before going further - size_t maxsize = R_MAX (ss_const, ss_selrefs); - maxsize = R_MIN (maxsize, objc->file_size); - - ut8 *buf = calloc (1, maxsize); - if (!buf) { - return false; - } - if (!r_io_read_at (objc->core->io, buf, ss_const)) { //uses unsanitized value ss_const - printf ("aao: Cannot read the whole const section %zu\n", ss_const); - return false; - } - return true; -} - -int main() { - RIO io; - io.Oxff = 'a'; - - RCore core; - core.io = &io; - - RBinSection selrefs; - RBinSection rconst; - selrefs.vsize = 3; - rconst.vsize = 10; - - RCoreObjc objc; - objc.core = &core; - objc.file_size = 5; - objc._selrefs = &selrefs; - objc._const = &rconst; - - objc_build_refs(&objc); -} diff --git a/src/ae_assert_tests/CVE-2021-45341-0.c b/src/ae_assert_tests/CVE-2021-45341-0.c deleted file mode 100644 index 8e6b1ebc..00000000 --- a/src/ae_assert_tests/CVE-2021-45341-0.c +++ /dev/null @@ -1,36 +0,0 @@ -/* -CVE-ID: CVE-2021-45341 -Description: A buffer overflow vulnerability in CDataMoji of the jwwlib component of LibreCAD 2.2.0-rc3 and older allows an attacker to achieve Remote Code Execution using a crafted JWW document. -*/ - -#include -#include -#include -#include -#include - -//NOTE: original function reads from ifstream (C++) to buf without checking the streamsize. In this demonstration, we use a char pointer to represent the stream instead -void Serialize(char* ifstr) { - int wd; - char buf[512]; - - char* ifstr_cpy = malloc(strlen(ifstr) + 1); - strcpy(ifstr_cpy, ifstr); - char* token = strtok(ifstr_cpy, " "); - - if(true) { //nd() - token = strtok(NULL, " "); - wd = atoi(token); - - token = strtok(NULL, ""); - //assert(wd < sizeof(buf)); - memcpy(buf, token, wd); - buf[wd] = '\0'; - //printf("%s\n", buf); - } -} - -int main() { - char* ifstr = "255 513 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789"; - Serialize(ifstr); -} diff --git a/src/ae_assert_tests/CVE-2022-23850-0.c b/src/ae_assert_tests/CVE-2022-23850-0.c deleted file mode 100644 index 8c8440b1..00000000 --- a/src/ae_assert_tests/CVE-2022-23850-0.c +++ /dev/null @@ -1,27 +0,0 @@ -/* -CVE-ID: CVE-2022-23850 -Description: xhtml_translate_entity in xhtml.c in epub2txt (aka epub2txt2) through 2.02 allows a stack-based buffer overflow via a crafted EPUB document. -*/ - -#include -#include -#include -#include - -struct _WString { - uint32_t *str; -}; -typedef struct _WString WString; - -void xhtml_translate_entity (const WString *entity) { - char out[20]; - char *in = (char*)entity->str; - //assert(strlen(in) < 20); - strcpy(out, in); //potential buffer overflow -} - -int main() { - WString wString; - wString.str = (uint32_t*)"0123456789912345678912345"; - xhtml_translate_entity(&wString); -} diff --git a/src/ae_assert_tests/CVE-2022-26129-0.c b/src/ae_assert_tests/CVE-2022-26129-0.c deleted file mode 100644 index ee9c8fdd..00000000 --- a/src/ae_assert_tests/CVE-2022-26129-0.c +++ /dev/null @@ -1,33 +0,0 @@ -/* -CWE-ID: CVE-2022-26129 -Description: Buffer overflow vulnerabilities exist in FRRouting through 8.1.0 due to wrong checks on the subtlv length in the functions, parse_hello_subtlv, parse_ihu_subtlv, and parse_update_subtlv in babeld/message.c. -*/ - -#include -#include - -void parse_update_subtlv(const unsigned char *a, int alen) { - int type, len, i = 0; - - while(i < alen) { - type = a[i]; - - if(i + 1 > alen) { - return; - } - - //assert(i + 1 < alen); - len = a[i + 1]; //potential buffer overflow - - if(i + len + 2 > alen) { - return; - } - - i += len + 2; - } -} - -int main() { - char a[] = {0, 0, 0, 0, 0}; - parse_update_subtlv(a, 5); -} diff --git a/src/ae_assert_tests/CVE-2022-29023-0.c b/src/ae_assert_tests/CVE-2022-29023-0.c deleted file mode 100644 index eebf06f4..00000000 --- a/src/ae_assert_tests/CVE-2022-29023-0.c +++ /dev/null @@ -1,77 +0,0 @@ -/* -CVE-ID: CVE-2022-29023 -Description: A buffer overflow in the razermouse driver of OpenRazer v3.3.0 and below allows attackers to cause a Denial of Service (DoS) via a crafted buffer sent to the matrix_custom_frame device. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include - -struct razer_report { - unsigned char arguments[80]; -}; - -struct razer_report get_razer_report() { - struct razer_report new_report = {0}; - memset(&new_report, 0, sizeof(struct razer_report)); - return new_report; -} - -struct razer_report razer_chroma_standard_matrix_set_custom_frame(unsigned char start_col, unsigned char stop_col, unsigned char *rgb_data) { - size_t row_length = (size_t) (((stop_col + 1) - start_col) * 3); - struct razer_report report = get_razer_report(); - //assert(row_length <= sizeof(report.arguments) - 4); - memcpy(&report.arguments[4], rgb_data, row_length); //potential buffer overflow - return report; -} - -ssize_t razer_attr_write_set_key_row(const char *buf, size_t count) { - struct razer_report report = {0}; - size_t offset = 0; - unsigned char row_id; - unsigned char start_col; - unsigned char stop_col; - unsigned char row_length; - - while(offset < count) { - if(offset + 3 > count) { - break; - } - - row_id = buf[offset++]; - start_col = buf[offset++]; - stop_col = buf[offset++]; - row_length = ((stop_col+1) - start_col) * 3; - //printf("start_col: %zu\n", (size_t)start_col); - //printf("stop_col: %zu\n", (size_t)stop_col); - //printf("row_length: %zu\n", (size_t)row_length); - - if(start_col > stop_col || offset + row_length > count) { - break; - } - if(offset + row_length > count) { - break; - } - - report = razer_chroma_standard_matrix_set_custom_frame(start_col, stop_col, (unsigned char*)&buf[offset]); - offset += row_length; - } - return count; -} - -int main() { - razer_attr_write_set_key_row("13aa45", 144); -} diff --git a/src/ae_assert_tests/CVE-2022-34835-0.c b/src/ae_assert_tests/CVE-2022-34835-0.c deleted file mode 100644 index 7a0e30be..00000000 --- a/src/ae_assert_tests/CVE-2022-34835-0.c +++ /dev/null @@ -1,63 +0,0 @@ -/* -CVE-ID: CVE-2022-34835 -Description: In Das U-Boot through 2022.07-rc5, an integer signedness error and resultant stack-based buffer overflow in the "i2c md" command enables the corruption of the return address pointer of the do_i2c_md function. -*/ - -#include -#include -#include -#include - -#include - -#define DISP_LINE_LEN 16 - -int do_i2c_md(int argc, char *const argv[]) { - uint32_t length = 0; - int32_t nbytes; - int32_t linebytes; - - if (argc < 3) { - return -1; - } - - if (argc > 3) { - length = strtol(argv[3], NULL, 16); - } - - nbytes = length; - do { - unsigned char linebuf[DISP_LINE_LEN]; - linebytes = (nbytes > DISP_LINE_LEN) ? DISP_LINE_LEN : nbytes; - printf("%d\n", linebytes); - i2c_read_bytewise(linebuf, linebytes); - nbytes -= linebytes; - } while (nbytes > 0); - - return 0; -} - -struct i2c_msg { - uint8_t *buf; -}; - - -int i2c_read_bytewise(uint8_t *buffer, uint32_t len) { - struct i2c_msg msg[2], *ptr; - int i; - //printf("%" PRIu32 "\n", len); - - for (i = 0; i < len; i++) { - ptr = msg + 1; - //assert(i < DISP_LINE_LEN); - ptr->buf = &buffer[i]; //potential buffer overflow - ptr++; - } - - return 0; -} - -int main(int argc, char *argv[]) { - do_i2c_md(argc, argv); //argv = 0 0 0x80000100 -} - diff --git a/src/ae_assert_tests/CVE-2022-34913-0.c b/src/ae_assert_tests/CVE-2022-34913-0.c deleted file mode 100644 index ec2a242a..00000000 --- a/src/ae_assert_tests/CVE-2022-34913-0.c +++ /dev/null @@ -1,87 +0,0 @@ -/* -CVE-ID: CVE-2022-34913 -Description: md2roff 1.7 has a stack-based buffer overflow via a Markdown file containing a large number of consecutive characters to be processed. NOTE: the vendor's position is that the product is not intended for untrusted input. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -void md2roff(const char *docname, const char *source) { - const char *p = source; - char appname[64]; - - if (true) { //nd() - while ( isspace(*p) ) { - p ++; - } - // no header specified - if (p[0] != '#' || !isblank(p[1]) ) { - //assert(sizeof(appname)/sizeof(appname[0]) < 64); - strcpy(appname, docname); //potential buffer overflow - } - } -} - -char *loadfile(const char *filename) { - int len = -1; - FILE *fp; - char *buf = NULL; - - if ( filename != NULL ) { - fp = fopen(filename, "r"); - if (fp == NULL) { - printf("Unable to open '%s'", filename); - exit(EXIT_FAILURE); - } - if (fseek(fp, 0L, SEEK_END) == -1) { - printf("fseek failed"); - exit(EXIT_FAILURE); - } - len = ftell(fp); - if (len == -1) { - printf("ftell failed"); - exit(EXIT_FAILURE); - } - if(fseek(fp, 0L, SEEK_SET) == -1) { - printf("fseek failed"); - exit(EXIT_FAILURE); - } - buf = (char *) malloc(len+1); - if(fread(buf, len, 1, fp) == -1) { - printf("fread failed"); - exit(EXIT_FAILURE); - } - buf[len] = '\0'; - fclose(fp); - } - - return buf; -} - -int main(int argc, char *argv[]) { - int files[64]; - int fc = 0; - - for ( int i = 1; i < argc; i ++ ) { - if ( argv[i][0] != '-' ) { - //assert(fc < 64); - files[fc] = i; //potential buffer overflow - fc ++; - } - } - - for ( int i = 0; i < fc; i ++ ) { - char *buf = loadfile(argv[files[i]]); - md2roff(argv[files[i]], buf); - free(buf); - } -} diff --git a/src/ae_assert_tests/CVE-2022-34918-0.c b/src/ae_assert_tests/CVE-2022-34918-0.c deleted file mode 100644 index e6b645f5..00000000 --- a/src/ae_assert_tests/CVE-2022-34918-0.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "stdbool.h" -#include - -extern int nd(void); -#define ALLOCA alloca -/* - * Linux NetFilter Buf Overflow Bug Demo - * - * CVE-2022-34918, - * follow <====== (1), (2), (3) until the buffer overflow position - * - * */ - -struct nft_set { - int dlen; - char* data; -}; - -struct nft_data_desc { - enum TYPE { - NFT_DATA_VERDICT = 0, - NFT_DATA_OTHER = 1 - }; - enum TYPE type; - int len; -}; - -struct nft_data { - char* data; -}; - -void *nft_set_elem_init(const struct nft_set *set, - const char *data) -{ - if (data) - memcpy(data, set->data, set->dlen); // <===== (7) -} - -int nft_setelem_parse_data( struct nft_set *set, - struct nft_data_desc *desc, - struct nft_data *data) -{ - int err; - err = nft_data_init(data, desc); // <===== (4) - if (err < 0) - return err; - - if (desc->type != NFT_DATA_VERDICT && desc->len != set->dlen) { // <===== (5) does not release - nft_data_release(data, desc); - return -1; - } - - return 0; -} - -int nft_add_set_elem(struct nft_set *set) { - struct nft_data data; - struct nft_data_desc desc; - desc.len = set->dlen; - - if (nd()) { - nft_setelem_parse_data(set, &desc, &data); // <===== (2) - } - nft_set_elem_init(set, data.data); //<==== (6) -} - -int nft_data_init(struct nft_data *data, struct nft_data_desc *desc) { - if (nd()) { - data->data = (char*)ALLOC(desc->len); - desc->type = NFT_DATA_VERDICT; - } else { - data->data = (char*)ALLOC(desc->len - 2); - desc->type = NFT_DATA_VERDICT; // <====== (3) - } -} - -int nft_data_release(struct nft_data *data, struct nft_data_desc *desc ) { - free(data->data); - data->data = NULL; - desc->len = 0; -} - -int main() { - struct nft_set set; - set.dlen = 10; - set.data = (char*)ALLOCA(set.dlen); - nft_add_set_elem(&set); // <====== (1) -} \ No newline at end of file diff --git a/src/ae_assert_tests/CWE127_har_alloc-0.c b/src/ae_assert_tests/CWE127_har_alloc-0.c deleted file mode 100644 index 4b81b70d..00000000 --- a/src/ae_assert_tests/CWE127_har_alloc-0.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include "stdbool.h" -#define ALLOCA alloca - -extern void svf_assert(bool); - -int main() { - char * data; - char * dataBuffer = (char *)ALLOCA(3*sizeof(char)); - memset(dataBuffer, 'A', 3-1); - dataBuffer[3-1] = '\0'; - /* FLAW: Set data pointer to before the allocated memory buffer */ - data = dataBuffer; - char dest[2*2]; - memset(dest, 'C', 2*2-1); /* fill with 'C's */ - dest[2*2-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possibly copy from a memory location located before the source buffer */ - strcpy(dest, data); - svf_assert(data[0] == 'A'); -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_10-0.c b/src/ae_assert_tests/INTERVAL_test_10-0.c deleted file mode 100644 index 77c16814..00000000 --- a/src/ae_assert_tests/INTERVAL_test_10-0.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include "stdbool.h" -#include "math.h" -extern void svf_assert(bool); -extern void svf_assert_eq(int, int); - -extern void svf_print(int, char*); -int main() { - int a = rand(); - if (a > 5 && a < 7) { - svf_print(a, "a value"); - svf_assert(a == 6); - } - else { - // top - int res = rand(); - svf_assert_eq(a, res); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_11-0.c b/src/ae_assert_tests/INTERVAL_test_11-0.c deleted file mode 100644 index 7d0cf3fc..00000000 --- a/src/ae_assert_tests/INTERVAL_test_11-0.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - int a = 6; - if (a > 5 && a < 7) { - svf_assert(a == 6); - } - else { - //svf_assert(a <= 5 || a >= 7); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_12-0.c b/src/ae_assert_tests/INTERVAL_test_12-0.c deleted file mode 100644 index 3e2a3764..00000000 --- a/src/ae_assert_tests/INTERVAL_test_12-0.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "stdbool.h" -#include "math.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); -int main() { - int a = rand(); //a = [-INF, INF] - int b = 1; - if (a > 5) { //a = [6, INF] - b = a - b; - svf_assert(b >= 5); - } - else { - b = a - b; - svf_assert(b <= 4); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_13-0.c b/src/ae_assert_tests/INTERVAL_test_13-0.c deleted file mode 100644 index b7032904..00000000 --- a/src/ae_assert_tests/INTERVAL_test_13-0.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "stdbool.h" -#include "math.h" -extern void svf_assert(bool); - -int main() { - int a = rand(); //a = [-INF, INF] - int b = -2; - if (a > 5) { //a = [6, INF] - b = a * b; - svf_assert(b <= -12); - } - else { - b = a * b; - svf_assert(b > -12); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_14-0.c b/src/ae_assert_tests/INTERVAL_test_14-0.c deleted file mode 100644 index c9e9a926..00000000 --- a/src/ae_assert_tests/INTERVAL_test_14-0.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -#include "math.h" -extern void svf_assert(bool); - -int main() { - int a = rand(); //a = [-INF, INF] - int b = 10; - if(a > 0 && a <= 5) { - b = b / a; - svf_assert(b >= 2); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_15-0.c b/src/ae_assert_tests/INTERVAL_test_15-0.c deleted file mode 100644 index bb06aa37..00000000 --- a/src/ae_assert_tests/INTERVAL_test_15-0.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - int a; //a = [-INF, INF] - a = a % 5; - if (a >= 0) { - svf_assert(a >= 0 && a < 5); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_16-0.c b/src/ae_assert_tests/INTERVAL_test_16-0.c deleted file mode 100644 index 7c8639b9..00000000 --- a/src/ae_assert_tests/INTERVAL_test_16-0.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "stdbool.h" -#include "math.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); -extern void set_value(int, int, int); - -void foo(int* i) { - *i = *i + 1; - if(*i < 10) { - foo(i); - } -} - -int main() { - int i; - set_value(i, 0, 5); - foo(&i); - svf_assert(i >= 0); // now we cannot handle recursive, it should be changed later. -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_19-0.c b/src/ae_assert_tests/INTERVAL_test_19-0.c deleted file mode 100644 index 7ac3139d..00000000 --- a/src/ae_assert_tests/INTERVAL_test_19-0.c +++ /dev/null @@ -1,28 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void set_value(int, int, int); -#include - -void foo(int* i) { - int a = *i % 2; - switch (a) - { - case 0: - break; - case 1: - *i = *i + 1; - break; - default: - *i = *i + 3; - break; - } -} - -int main() { - int i; - set_value(i, 1, 1); - if (i >= 0) { - foo(&i); - svf_assert(i % 2 == 0); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_2-0.c b/src/ae_assert_tests/INTERVAL_test_2-0.c deleted file mode 100644 index 6cffb25d..00000000 --- a/src/ae_assert_tests/INTERVAL_test_2-0.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int main() { - //int a = 0; - int a; - int b = 1; - scanf("%d", &a); //[-INF, INF] top - if (a > 5) { //a = [6, INF] - b = a + b; - svf_print(b, "b1"); - svf_assert(b > 6); //b = [1, 1] + [6, INF] - } - else { - b = a + b; - svf_print(b, "b2"); - svf_assert(b <= 6); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_20-0.c b/src/ae_assert_tests/INTERVAL_test_20-0.c deleted file mode 100644 index 6731cc5a..00000000 --- a/src/ae_assert_tests/INTERVAL_test_20-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, const char*); -#include -#include -#include - -int main() { - srand(time(0)); - int r = rand() % 128; - char a = (char)r; //random ascii character - if (a >= 'a' && a <= 'z') { - int a_as_int = (int)a; - svf_print(a_as_int, "a"); - svf_assert(a_as_int >= 97 && a_as_int <= 122); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_36-1-0.c b/src/ae_assert_tests/INTERVAL_test_36-1-0.c deleted file mode 100644 index d9f930e5..00000000 --- a/src/ae_assert_tests/INTERVAL_test_36-1-0.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int main() { - int* i = malloc(4 * sizeof(int)); - int ar[4] = {1, 2, 3, 5}; - int a = rand(); - ar[3] = a; - memcpy(i, ar, 4 * sizeof(int)); - if (i[3] > 5) { - svf_assert(i[3] > 5); - } - else { - svf_assert(i[3] <= 5); - } -} diff --git a/src/ae_assert_tests/INTERVAL_test_49-0.c b/src/ae_assert_tests/INTERVAL_test_49-0.c deleted file mode 100644 index d1a0e011..00000000 --- a/src/ae_assert_tests/INTERVAL_test_49-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include - -void foo(int* i) { - LOOP: - *i = *i + 1; - if(*i < 10) { - goto LOOP; - } -} - -int main() { - int i; - foo(&i); - svf_assert(i >= 10); -} diff --git a/src/ae_assert_tests/INTERVAL_test_58-0.c b/src/ae_assert_tests/INTERVAL_test_58-0.c deleted file mode 100644 index b9ce9ae1..00000000 --- a/src/ae_assert_tests/INTERVAL_test_58-0.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int main() { - int a; - int b; - if(a >= 0) { - do { - printf("%d\n", a); - for(int i = b; i > a; i--) { - if(i % 2 == 0) { - printf("%d is even\n", i); - } - else { - printf("%d is odd\n", i); - } - } - a--; - } while(a); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_6-0.c b/src/ae_assert_tests/INTERVAL_test_6-0.c deleted file mode 100644 index 87429ca4..00000000 --- a/src/ae_assert_tests/INTERVAL_test_6-0.c +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - int a = 0; - while(a < 10) { - a++; - } - svf_assert(a == 10); -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_64-0.c b/src/ae_assert_tests/INTERVAL_test_64-0.c deleted file mode 100644 index 5299af79..00000000 --- a/src/ae_assert_tests/INTERVAL_test_64-0.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include -#include - -void increment(int* a) { - *a = *a + 1; -} - -int recursive(int a) { - a--; - if(a) { - a = recursive(a); - } - return a; -} - -int main() { - int a; - LOOP: - if(a > 5) { - a--; - } - else if(a < 5) { - a++; - } - - if(a != 5) { - goto LOOP; - } - else { - a = recursive(a); - } - while(true) { - increment(&a); - if(a == 10) { - exit(0); - } - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_8-0.c b/src/ae_assert_tests/INTERVAL_test_8-0.c deleted file mode 100644 index da83d3ff..00000000 --- a/src/ae_assert_tests/INTERVAL_test_8-0.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int main() { - int a = rand(); - while(a < 10) { - a++; - } - svf_print(a, "a"); - svf_assert(a >= 10); -} \ No newline at end of file diff --git a/src/ae_assert_tests/INTERVAL_test_9-0.c b/src/ae_assert_tests/INTERVAL_test_9-0.c deleted file mode 100644 index 02d1fddd..00000000 --- a/src/ae_assert_tests/INTERVAL_test_9-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "stdbool.h" -#include "math.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int main() { - int a = rand(); //a = [-INF, INF] - int b = 1; - if (a > 5) { //a = [6, INF] - b = a + b; - svf_assert(b > 6); //b = [1, 1] + [6, INF] - } - else { - b = a + b; - svf_assert(b <= 6); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests/LOOP_for01-0.c b/src/ae_assert_tests/LOOP_for01-0.c deleted file mode 100644 index df877b82..00000000 --- a/src/ae_assert_tests/LOOP_for01-0.c +++ /dev/null @@ -1,16 +0,0 @@ -// -// Created by Jiawei Wang on 4/27/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); -int main() { - int i = 0; - int j = 0; - // bound 5 - for (i = 0; i < 5; i++) { - j++; - } - svf_assert(i == 5 && j >= 0); -} diff --git a/src/ae_assert_tests/LOOP_for_call-0.c b/src/ae_assert_tests/LOOP_for_call-0.c deleted file mode 100644 index f89c9fdf..00000000 --- a/src/ae_assert_tests/LOOP_for_call-0.c +++ /dev/null @@ -1,18 +0,0 @@ -// -// Created by Jiawei Wang on 4/27/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); -int add(int a) { - return a + 1; -} -int main() { - int i = 0; - int j = 0; - for (i = 0; i < 5; i++) { - j = add(j); - } - svf_assert(i == 5 && j >= 0); -} diff --git a/src/ae_assert_tests/LOOP_for_inc-0.c b/src/ae_assert_tests/LOOP_for_inc-0.c deleted file mode 100644 index f7c381be..00000000 --- a/src/ae_assert_tests/LOOP_for_inc-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_assert_eq(int, int); -extern void set_value(int, int, int); -extern void svf_print(int, char*); -int main() { - int i = 0; - for (i = 0; i < 5; i++) { - i++; - } - int res; - set_value(res, 5, 6); - svf_assert_eq(i, res); -} diff --git a/src/ae_assert_tests/LOOP_while01-0.c b/src/ae_assert_tests/LOOP_while01-0.c deleted file mode 100644 index 8688699a..00000000 --- a/src/ae_assert_tests/LOOP_while01-0.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int main(){ - int x; - x=1; - while(x<5) { - x++; - } - svf_assert(x == 5); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/LOOP_while01-1.c b/src/ae_assert_tests/LOOP_while01-1.c deleted file mode 100644 index f1a17641..00000000 --- a/src/ae_assert_tests/LOOP_while01-1.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int main(){ - int x; - x=10; - while(x>0) { - x--; - } - svf_assert(x == 0); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/LOOP_while02-0.c b/src/ae_assert_tests/LOOP_while02-0.c deleted file mode 100644 index b26f9e0b..00000000 --- a/src/ae_assert_tests/LOOP_while02-0.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int main(){ - int x; - x=1; - while(x<128) { - x*=2; - } - svf_assert(x == 128); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/LOOP_while02-1.c b/src/ae_assert_tests/LOOP_while02-1.c deleted file mode 100644 index f3d86ddf..00000000 --- a/src/ae_assert_tests/LOOP_while02-1.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int main(){ - int x; - x=128; - while(x>4) { - x/=2; - } - svf_assert(x == 4); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests/cwe121_char_alloc-0.c b/src/ae_assert_tests/cwe121_char_alloc-0.c deleted file mode 100644 index c2c9397c..00000000 --- a/src/ae_assert_tests/cwe121_char_alloc-0.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include "stdbool.h" - -#define ALLOCA alloca - -extern void svf_assert(bool); - -int main() { - char * data; - char * dataBadBuffer = (char *)ALLOCA((4)*sizeof(char)); - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = 'A'; - data[1] = 'A'; - data[2] = 'A'; - svf_assert(data[1] == 'A'); -} \ No newline at end of file diff --git a/src/ae_assert_tests/cwe121_int64_alloc-0.c b/src/ae_assert_tests/cwe121_int64_alloc-0.c deleted file mode 100644 index 8306b3a8..00000000 --- a/src/ae_assert_tests/cwe121_int64_alloc-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include "stdbool.h" -#define ALLOCA alloca - -extern void svf_assert(bool); - -int main() { - int * data; - int * dataBadBuffer = (int *)ALLOCA((4)*sizeof(int)); - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = 10; - data[1] = 11; - data[2] = 12; - svf_assert(data[1] == 11); -} \ No newline at end of file diff --git a/src/ae_assert_tests/cwe121_int_alloc-0.c b/src/ae_assert_tests/cwe121_int_alloc-0.c deleted file mode 100644 index 8306b3a8..00000000 --- a/src/ae_assert_tests/cwe121_int_alloc-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include "stdbool.h" -#define ALLOCA alloca - -extern void svf_assert(bool); - -int main() { - int * data; - int * dataBadBuffer = (int *)ALLOCA((4)*sizeof(int)); - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = 10; - data[1] = 11; - data[2] = 12; - svf_assert(data[1] == 11); -} \ No newline at end of file diff --git a/src/ae_assert_tests/cwe121_struct_alloc-0.c b/src/ae_assert_tests/cwe121_struct_alloc-0.c deleted file mode 100644 index e2a3ff3b..00000000 --- a/src/ae_assert_tests/cwe121_struct_alloc-0.c +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include "stdbool.h" -#define ALLOCA alloca - -extern void svf_assert(bool); - -typedef struct _twoIntsStruct -{ - int intOne; - int intTwo; -} twoIntsStruct; - -int main() { - twoIntsStruct * data; - twoIntsStruct * dataBadBuffer = (twoIntsStruct *)ALLOCA((4)*sizeof(twoIntsStruct)); - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0].intOne = 10; - data[1].intOne = 11; - data[2].intOne = 12; - svf_assert(data[1].intOne == 11); -} \ No newline at end of file diff --git a/src/ae_assert_tests/cwe126_char_alloc-0.c b/src/ae_assert_tests/cwe126_char_alloc-0.c deleted file mode 100644 index 5eed10ae..00000000 --- a/src/ae_assert_tests/cwe126_char_alloc-0.c +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include "stdbool.h" -#define ALLOCA alloca - -extern void svf_assert(bool); - -#include -#include "stdbool.h" -#define ALLOCA alloca - -extern void svf_assert(bool); -// int a[2] = {1,2} -int main() { - char * data; - char * dataGoodBuffer = (char *)ALLOCA(2*sizeof(char)); - memset(dataGoodBuffer, 'A', 2); /* fill with 'A's */ - /* FLAW: Set data pointer to a small buffer */ - data = dataGoodBuffer; - char dest[2]; - memcpy(dest, data, 2*sizeof(char)); - svf_assert(data[0] == 'A'); -} \ No newline at end of file diff --git a/src/ae_assert_tests/cwe190_char_fscanf-0.c b/src/ae_assert_tests/cwe190_char_fscanf-0.c deleted file mode 100644 index 5360fbc1..00000000 --- a/src/ae_assert_tests/cwe190_char_fscanf-0.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include "stdbool.h" -#include -#define ALLOCA alloca - -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int main() { - char data; - data = ' '; - /* POTENTIAL FLAW: Use a value input from the console */ - fscanf(stdin, "%c", &data); - /* POTENTIAL FLAW: Adding 1 to data could cause an overflow */ - svf_print(data, "data"); - char result = data + 1; - svf_print(result, "result"); - svf_assert(result <= 255); -} \ No newline at end of file diff --git a/src/ae_assert_tests/cwe190_int_max-0.c b/src/ae_assert_tests/cwe190_int_max-0.c deleted file mode 100644 index 908d69c7..00000000 --- a/src/ae_assert_tests/cwe190_int_max-0.c +++ /dev/null @@ -1,20 +0,0 @@ -// -// Created by Jiawei Wang on 2/11/22. -// -#include -#include "stdbool.h" -#include -#define ALLOCA alloca - -extern void svf_assert(bool); - -int main() { - int data; - /* Initialize data */ - data = 0; - /* POTENTIAL FLAW: Use the maximum value for this type */ - data = 2; - /* POTENTIAL FLAW: if (data*2) > INT_MAX, this will overflow */ - int result = data * 2; - svf_assert(data < 2147483647); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/BASIC_array_func_1-0.c b/src/ae_assert_tests_fail/BASIC_array_func_1-0.c deleted file mode 100644 index a45ad134..00000000 --- a/src/ae_assert_tests_fail/BASIC_array_func_1-0.c +++ /dev/null @@ -1,20 +0,0 @@ -// -// Created by Jiawei Wang on 2/3/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int getValue(int** arr, int x, int y) { - return arr[x][y]; -} - -int main() { - int arr[2][2]; - arr[0][0] = 10; - int v = getValue(arr, 0, 0); - svf_print(v, "value"); - svf_assert(v == 10); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/BASIC_array_func_2-0.c b/src/ae_assert_tests_fail/BASIC_array_func_2-0.c deleted file mode 100644 index 05798415..00000000 --- a/src/ae_assert_tests_fail/BASIC_array_func_2-0.c +++ /dev/null @@ -1,26 +0,0 @@ -// -// Created by Jiawei Wang on 2/3/22. -// - -#include "stdbool.h" -extern void svf_assert(bool); - -struct { - int a; - int b; -}typedef A; - -A getValue(A* arr, int x) { - return arr[x]; -} - -int main() { - A a[2]; - a[0].a = 10; - a[0].b = 11; - a[1].a = 20; - a[1].b = 21; - A res = getValue(a, 1); - svf_assert(res.b == 21); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/BASIC_bi_sub_0-0.c b/src/ae_assert_tests_fail/BASIC_bi_sub_0-0.c deleted file mode 100644 index f7fb405b..00000000 --- a/src/ae_assert_tests_fail/BASIC_bi_sub_0-0.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void set_value(int, int, int); -extern void svf_assert_eq(int, int); -int main() { - int i; - set_value(i, 0, 100); - int a, c; - a = i - 1; - c = a; - svf_assert_eq(c, i - 1); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/BASIC_extapi_strcat_0.c b/src/ae_assert_tests_fail/BASIC_extapi_strcat_0.c deleted file mode 100644 index 3b460787..00000000 --- a/src/ae_assert_tests_fail/BASIC_extapi_strcat_0.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include - -// 假设 svf_assert 函数的声明 -extern void svf_assert(bool); - -int main() { - char dest[20] = "Hello, "; // 目标字符串 - strcat(dest, "world!"); // 连接字符串 - svf_assert(strcmp(dest, "Hello, world!") == 0); // 使用 svf_assert 进行测试 - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/CVE-2022-27239-0.c b/src/ae_assert_tests_fail/CVE-2022-27239-0.c deleted file mode 100644 index 3aa05250..00000000 --- a/src/ae_assert_tests_fail/CVE-2022-27239-0.c +++ /dev/null @@ -1,79 +0,0 @@ -/* -CVE-ID: CVE-2022-27239 -Description: In cifs-utils through 6.14, a stack-based buffer overflow when parsing the mount.cifs ip= command-line argument could lead to local attackers gaining root privileges. -*/ - -#include -#include -#include -#include - -#define EX_USAGE 1 -#define OPT_IP 6 -#define OPT_ERROR -1 -#define MAX_ADDRESS_LEN 46 -#define MAX_ADDR_LIST_LEN ((MAX_ADDRESS_LEN + 1) * 16) - -struct parsed_mount_info { - char addrlist[45]; - unsigned int verboseflag:1; -}; - -int parse_opt_token(const char *token) { - printf("parse opt token, token: %s\n", token); - if (token == NULL) - return OPT_ERROR; - - /* - * token is NULL terminated and contains exactly the - * keyword so we can match exactly - */ - if (strcmp(token, "ip") == 0 || strcmp(token, "addr") == 0) - return OPT_IP; - - return OPT_ERROR; -} - -//format is keyword,keyword2=value2,keyword3=value3... -int parse_options(const char *data, struct parsed_mount_info *parsed_info) { - char *value = malloc(strlen(data) + 1); - char *equals = malloc(strlen(data) + 1); - char *next_keyword = malloc(strlen(data) + 1); - - if (!data) - return EX_USAGE; - - char buffer[strlen(data) + 1]; - strcpy(buffer, data); - printf("parse option, buffer:%s\n", buffer); - char *token = strtok(buffer, ","); - while(token != NULL) { - strcpy(next_keyword, token); - - /* temporarily null terminate keyword if there's a value */ - value = NULL; - if ((equals = strchr(next_keyword, '=')) != NULL) { - *equals = '\0'; - value = equals + 1; - } - - if(value && parse_opt_token(next_keyword) == OPT_IP) { - if (strnlen(value, MAX_ADDRESS_LEN) <= MAX_ADDRESS_LEN) { - //assert(strlen(value) < MAX_ADDRESS_LEN); - //printf("value len: %lu\n", strlen(value)); - strcpy(parsed_info->addrlist, value); //potential buffer overflow - if (parsed_info->verboseflag) - fprintf(stderr, "ip address %s override specified\n", value); - } - } - - token = strtok(NULL, ","); - } - - return 0; -} - -int main() { - struct parsed_mount_info parsed_info; - parse_options("keyword,ip=VapodinGmVAFzAbsPWGkWdPQI2gozcQulsHW1hJRsyVlaZ,keyword3=value3", &parsed_info); -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_17-0.c b/src/ae_assert_tests_fail/INTERVAL_test_17-0.c deleted file mode 100644 index 95e3e0a8..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_17-0.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int loop(int a) { - int result = 0; - int output = 0; - for(int i = 1; i <= a; i++) { - if(i % 2 == 0) { - output++; - } - } - return output; -} - -int main() { - int a; - int b = a; - int output = 0; - if(a > 0) { - output = loop(a); - svf_print(output, "output"); - svf_print(b, "b"); - svf_assert(output >= 0); - } - else { - svf_assert(output == 0); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_18-0.c b/src/ae_assert_tests_fail/INTERVAL_test_18-0.c deleted file mode 100644 index 0c9e1847..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_18-0.c +++ /dev/null @@ -1,28 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include - -int loop(int a) { - int result = 0; - int output = 0; - for(int i = 1; i <= a; i++) { - if(i % 2 != 0) { - continue; - } - output++; - } - return output; -} - -int main() { - int a; - int b = a; - int output = 0; - if(a > 0) { - output = loop(a); - svf_assert(output == b/2); - } - else { - svf_assert(output == 0); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_21-0.c b/src/ae_assert_tests_fail/INTERVAL_test_21-0.c deleted file mode 100644 index 04d34310..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_21-0.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void set_value(int, int, int); -extern void svf_print(int, char*); -#include - -int main() { - int a; - set_value(a, 0, 5); - int b = a; - for(int i = 0; i < 10; i++) { - if(a == 10) { - break; - } - a++; - } - svf_print(a, "a"); - if(b >= 0 && b <= 10) { - svf_assert(a == 10); - } - else { - svf_assert(a = b + 10); - } - -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_22-0.c b/src/ae_assert_tests_fail/INTERVAL_test_22-0.c deleted file mode 100644 index b7f341c9..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_22-0.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include - -int main() { - int a; - int b = a; - for(int i = 0; i < 3; i++) { - b = b * a; - } - svf_assert(b >= 0); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_23-0.c b/src/ae_assert_tests_fail/INTERVAL_test_23-0.c deleted file mode 100644 index 5ea6651e..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_23-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include - -int main () { - int input; - int a = input; - int b; - if(b != 0) { - //"If the quotient a/b is representable, the expression (a/b)*b + a%b shall equal a" - C99 standard - a = (a / b) * b + a % b; - svf_assert(a == input); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_25-0.c b/src/ae_assert_tests_fail/INTERVAL_test_25-0.c deleted file mode 100644 index 91201e3c..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_25-0.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); -#include -#include -#include - -int foo() { - int i = 0; - bool a = true; - do { - i++; - } while(i < 5 && a); - return i; -} - -int bar() { - int i = 0; - bool a = false; - do { - i++; - } while(i < 5 && a); - return i; -} - -int main() { - srand(time(0)); - int a = rand() % 2; - int b = (a) ? foo() : bar(); - if(a) { - svf_assert(b == 5); - } - else { - svf_assert(b == 1); - } -} - diff --git a/src/ae_assert_tests_fail/INTERVAL_test_26-0.c b/src/ae_assert_tests_fail/INTERVAL_test_26-0.c deleted file mode 100644 index 26727f3d..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_26-0.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include - -int main() { - int a; //a = [-INF, INF] - a = a % 5; - svf_assert(a >= 0 && a < 5); //if a is a negative number, this assertion does not hold -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_27-0.c b/src/ae_assert_tests_fail/INTERVAL_test_27-0.c deleted file mode 100644 index e207100b..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_27-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include - -int main() { - srand(time(0)); - int randomNumber = rand() % 128; - char ch = randomNumber; - if (isdigit(ch)) { - svf_assert(randomNumber >= 48 && randomNumber <= 57); - } - else { - svf_assert(randomNumber < 48 || randomNumber > 57); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_29-0.c b/src/ae_assert_tests_fail/INTERVAL_test_29-0.c deleted file mode 100644 index 38e67f21..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_29-0.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include - -int main() { - int ch; - if (ch >= 97 && ch <= 122) { - ch = toupper(ch); - svf_assert(ch >= 65 && ch <= 90); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_30-0.c b/src/ae_assert_tests_fail/INTERVAL_test_30-0.c deleted file mode 100644 index 802ad0b7..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_30-0.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include - -int main() { - srand(time(0)); - int randomNumber = rand() % 999; - int i = printf("Value:%d", randomNumber); - svf_assert(i >= 7 && i <= 9); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_31-0.c b/src/ae_assert_tests_fail/INTERVAL_test_31-0.c deleted file mode 100644 index 0097c46b..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_31-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include - -int main () { - int a; - int b = a; - loopStart: do { - if(a == b) { - a++; - goto loopStart; - } - a++; - b++; - } while(a < 15); - svf_assert(b == a - 1 && a >= 15); -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_32-0.c b/src/ae_assert_tests_fail/INTERVAL_test_32-0.c deleted file mode 100644 index be5734ce..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_32-0.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include - -int digitCount(int i) { - int counter = 0; - do { - i = i/10; - counter++; - } while(i != 0); - return counter; -} - -int main() { - srand(time(0)); - int randomNumber = rand() % 999; - int counter = digitCount(randomNumber); - svf_assert(counter >= 1 && counter <= 3); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_33-0.c b/src/ae_assert_tests_fail/INTERVAL_test_33-0.c deleted file mode 100644 index 62c0ed4a..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_33-0.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int digitCount(int i) { - int counter = 0; - counter = (i == 0)? 1 : log10(i) + 1; - return counter; -} - -int main() { - srand(time(0)); - int randomNumber = rand() % 999; - int counter = digitCount(randomNumber); - svf_assert(counter >= 1 && counter <= 3); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_35-0.c b/src/ae_assert_tests_fail/INTERVAL_test_35-0.c deleted file mode 100644 index 1c6410cd..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_35-0.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include - -int counter = 0; - -long factorial(int i) { - counter++; - if(i <= 1) { - return 1; - } - return i * factorial(i - 1); -} - -int main() { - int i; - long f = factorial(i); - svf_assert(counter == i); -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_37-0.c b/src/ae_assert_tests_fail/INTERVAL_test_37-0.c deleted file mode 100644 index a80736c1..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_37-0.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -struct testStruct { - int a; -}; - -int main() { - struct testStruct* i = malloc(4 * sizeof(struct testStruct)); - if (i[3].a > 5) { - svf_assert(i[3].a > 5); - } - else { - svf_assert(i[3].a <= 5); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_39-0.c b/src/ae_assert_tests_fail/INTERVAL_test_39-0.c deleted file mode 100644 index b057270b..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_39-0.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int count = 0; - -int fib(int i) { - count++; - if(i == 0) { - return 0; - } - if(i == 1) { - return 1; - } - return fib(i - 1) + fib(i - 2); -} - -int main() { - int i; - if(i >= 0) { - fib(i); - svf_assert(count == 2 * fib(i + 1) - 1); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_4-0.c b/src/ae_assert_tests_fail/INTERVAL_test_4-0.c deleted file mode 100644 index a7da01a4..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_4-0.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - srand(time(0)); - int a = rand() % 5; //[0, 4] - int b = rand() % 5; //[0, 4] - int c = a * b; - if (c == 16) { //a = [6, INF] - svf_print(); - svf_assert(a == 4 && b == 4); - } - else { - svf_assert(a < 4 || b < 4); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_40-0.c b/src/ae_assert_tests_fail/INTERVAL_test_40-0.c deleted file mode 100644 index e36c9970..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_40-0.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int count = 0; - -int sum(int i) { - count++; - if (i != 0) { - return i + sum(i - 1); - } - else { - return i; - } -} - -int main() { - int i; - if(i >= 0) { - sum(i); - svf_assert(count == i + 1); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_41-0.c b/src/ae_assert_tests_fail/INTERVAL_test_41-0.c deleted file mode 100644 index b9531ae0..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_41-0.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int count = 0; - -//indirect recursion -int foo(int i) { - count++; - if(i == 0) { - return 0; - } - else { - return bar(i); - } -} - -int bar(int i) { - return foo(i - 1); -} - -int main() { - int i; - if(i >= 0) { - foo(i); - svf_assert(count == i + 1); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_42-0.c b/src/ae_assert_tests_fail/INTERVAL_test_42-0.c deleted file mode 100644 index f016457a..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_42-0.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int count = 0; - -int foo(int i) { - count++; - if(i == 0) { - return 0; - } - else { - return foo(i - 1); - } -} - -int main() { - int i; - if(i >= 0) { - foo(i); - svf_assert(count == i + 1); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_44-0.c b/src/ae_assert_tests_fail/INTERVAL_test_44-0.c deleted file mode 100644 index a83f194d..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_44-0.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int sumDigits(int i) { - static int sum = 0; - if(i!=0) { - sum = sum + (i % 10); - sumDigits(i/10); - } - return sum; -} - -int main() { - srand(time(0)); - int randomNumber = rand() % 999; - int i = sumDigits(randomNumber); - svf_assert(i >= 0 && i <= 26); -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_45-0.c b/src/ae_assert_tests_fail/INTERVAL_test_45-0.c deleted file mode 100644 index beef1c5b..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_45-0.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int baseConversion(int i, int base) { - if(i == 0) { - return 0; - } - return i % base + 10 * baseConversion(i / base, base); -} - -int main() { - srand(time(0)); - int randomNumber = rand() % 999; - //octal value - int i = baseConversion(randomNumber, 8); - svf_assert(i >= 0 && i <= 1746); -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_46-0.c b/src/ae_assert_tests_fail/INTERVAL_test_46-0.c deleted file mode 100644 index ad5f190c..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_46-0.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int count = 0; -int result = 0; - -void foo(); -void bar(); - -void foo(int limit) { - if(count < limit) { - result = count + 1; - count++; - bar(limit); - } - return; -} - -void bar(int limit) { - if(count < limit) { - result = count - 1; - count++; - foo(limit); - } - return; -} - -int main() { - int limit; - if(limit > 0) { - foo(limit); - if(limit % 2 == 1) { - svf_assert(result == limit); - } - else { - svf_assert(result == limit - 2); - } - } - else { - svf_assert(result == 0); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_47-0.c b/src/ae_assert_tests_fail/INTERVAL_test_47-0.c deleted file mode 100644 index a41374e2..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_47-0.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int count = 0; - -bool isPalindrome(char* word, int index) { - count++; - int length = strlen(word) - (index + 1); - if (word[index] == word[length]) { - if (index + 1 == length || index == length) { - return true; - } - isPalindrome(word, index + 1); - } - else { - return false; - } -} - -int main() { - char* word; - if(strlen(word) > 0) { - isPalindrome(word, 0); - if(strlen(word) % 2 == 0) { - svf_assert(count == strlen(word)/2); - } - else { - svf_assert(count == (strlen(word) + 1)/2); - } - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_48-0.c b/src/ae_assert_tests_fail/INTERVAL_test_48-0.c deleted file mode 100644 index dea0f668..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_48-0.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int main() { - int a = 0; - int b = 0; - int c; - LOOP: - if(a < c) { - a++; - b = b + 2; - goto LOOP; - } - svf_assert(a == c); - svf_assert(b == a * 2); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_50-0.c b/src/ae_assert_tests_fail/INTERVAL_test_50-0.c deleted file mode 100644 index 1dd84f91..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_50-0.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include - -int loop(int a) { - int output = 0; - int i = 1; - while(true) { - if(i % 2 == 0) { - output++; - } - if(i == a) { - break; - } - i++; - } - return output; -} - -int main() { - int a; - int output = 0; - if(a > 0) { - output = loop(a); - svf_assert(output == a/2); - } - else { - svf_assert(output == 0); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_51-0.c b/src/ae_assert_tests_fail/INTERVAL_test_51-0.c deleted file mode 100644 index 6fed85e4..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_51-0.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include - -int digitCount(int i) { - int counter = 0; - LOOP: - i = i/10; - counter++; - if(i != 0) { - goto LOOP; - } - return counter; -} - -int main() { - srand(time(0)); - int randomNumber = rand() % 999; - int counter = digitCount(randomNumber); - svf_assert(counter >= 1 && counter <= 3); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_52-0.c b/src/ae_assert_tests_fail/INTERVAL_test_52-0.c deleted file mode 100644 index ccea611b..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_52-0.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include - -int digitCount(int i) { - int counter = 0; - while(true) { - i = i/10; - counter++; - if(i == 0) { - break; - } - } - return counter; -} - -int main() { - srand(time(0)); - int randomNumber = rand() % 999; - int counter = digitCount(randomNumber); - svf_assert(counter >= 1 && counter <= 3); -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_57-0.c b/src/ae_assert_tests_fail/INTERVAL_test_57-0.c deleted file mode 100644 index 8070af8e..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_57-0.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int a(int x); -int b(int x); -int c(int x); -int d(int x); -int e(int x); -int f(int x); -int g(int x); -int h(int x); -int z(int x); - -int a(int x) { - return b(x) * 2; -} - -int b(int x) { - return c(x) * 2; -} - -int c(int x) { - return d(x) * 2; -} - -int d(int x) { - return e(x) * 2; -} - -int e(int x) { - return f(x) * 2; -} - -int f(int x) { - return g(x) * 2; -} - -int g(int x) { - return h(x) * 2; -} - -int h(int x) { - return z(x) * 2; -} - -int z(int x) { - return x * 2; -} - -int main() { - int input; - int result = a(input); - svf_assert(result == input * 512); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_59-0.c b/src/ae_assert_tests_fail/INTERVAL_test_59-0.c deleted file mode 100644 index fe9c0dd8..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_59-0.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -int recursive(int a) { - a--; - if(a) { - a = recursive(a); - } - return a; -} - -int main() { - int a; - if(a > 0) { - a = recursive(a); - } - else { - a = recursive(abs(a)); - } - svf_assert(a == 0); -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_60-0.c b/src/ae_assert_tests_fail/INTERVAL_test_60-0.c deleted file mode 100644 index 778f6771..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_60-0.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include - -#define MIN(x, y) ((x) < (y) ? (x) : (y)) - -int main() { - int a; - int b = MIN(a * a * a, a); - if(b == a) { - svf_assert(a >= 0); - } - else { - svf_assert(a < 0); - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_61-0.c b/src/ae_assert_tests_fail/INTERVAL_test_61-0.c deleted file mode 100644 index 16f9ddaa..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_61-0.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include -#include - -int main() { - int a; - while(true) { - if(a) { - svf_assert(a != 0); - exit(0); - } - else { - if(a > 0) { - a--; - } - else { - a++; - } - continue; - } - } -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/INTERVAL_test_62-0.c b/src/ae_assert_tests_fail/INTERVAL_test_62-0.c deleted file mode 100644 index f8c5a458..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_62-0.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include -#include - -int main() { - int a; - while(true) { - if(a) { - svf_assert(a != 0); - abort(); - } - else { - if(a > 0) { - a--; - } - else { - a++; - } - continue; - } - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_63-0.c b/src/ae_assert_tests_fail/INTERVAL_test_63-0.c deleted file mode 100644 index d00418bc..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_63-0.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -#include -#include -#include -#include -#include -#include - -int a; - -int foo(int input) { - int output = 0; - for(int i = 0; i < input; i++) { - output++; - } - return output; -} - -int main() { - a = rand(); - int b = a; - if(a > 0) { - for(int i = 0; i < b; i++) { - a = a + foo(a); - } - svf_assert(a == b * pow(2, b)); - } - while(true) { - LOOP: - a -= pow(2, b); - if(a) { - goto LOOP; - } - exit(0); - } -} diff --git a/src/ae_assert_tests_fail/INTERVAL_test_7-0.c b/src/ae_assert_tests_fail/INTERVAL_test_7-0.c deleted file mode 100644 index e051443f..00000000 --- a/src/ae_assert_tests_fail/INTERVAL_test_7-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include "stdbool.h" -extern void svf_assert(bool); - -int main() { - int a = 0; - int b = 0; - while(a < 10) { - a++; - b = b + 2; - } - svf_assert(a == 10); - svf_assert(b == 20); -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/LOOP_for_break02-0.c b/src/ae_assert_tests_fail/LOOP_for_break02-0.c deleted file mode 100644 index f719ba4d..00000000 --- a/src/ae_assert_tests_fail/LOOP_for_break02-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int main() { - int i = 0; - int j = 0; - for (i = 0; i < 5; i++) { - if (j==1) break; - j++; - } - svf_print(i, "i"); - svf_assert(i == 1); -} diff --git a/src/ae_assert_tests_fail/LOOP_for_nested-0.c b/src/ae_assert_tests_fail/LOOP_for_nested-0.c deleted file mode 100644 index 1bb3d63c..00000000 --- a/src/ae_assert_tests_fail/LOOP_for_nested-0.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -int main() { - int i = 0; - int j = 0; - for (i = 0; i < 5; i++) { - for (j = 0; j < 3; ++j) { - - } - } - svf_assert(i == 5 && j == 3); -} diff --git a/src/ae_assert_tests_fail/LOOP_while_break-0.c b/src/ae_assert_tests_fail/LOOP_while_break-0.c deleted file mode 100644 index 2cfbf865..00000000 --- a/src/ae_assert_tests_fail/LOOP_while_break-0.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); - -int main(){ - int x; - x=1; - while(x<5) { - x++; - if(x==3) break; - } - svf_assert(x == 3); - return 0; -} - diff --git a/src/ae_assert_tests_fail/LOOP_while_nested-0.c b/src/ae_assert_tests_fail/LOOP_while_nested-0.c deleted file mode 100644 index 2652be02..00000000 --- a/src/ae_assert_tests_fail/LOOP_while_nested-0.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "stdbool.h" -extern void svf_assert(bool); -extern void svf_print(int, char*); - -int main(){ - int x, y; - x=1; - while(x<5) { - for (y = 0; y < 3; ++y) - x++; - svf_print(x, "x"); - } - svf_print(x, "x"); - svf_assert(x == 7); - return 0; -} \ No newline at end of file diff --git a/src/ae_assert_tests_fail/NULL_1.c b/src/ae_assert_tests_fail/NULL_1.c deleted file mode 100644 index 520dbbcc..00000000 --- a/src/ae_assert_tests_fail/NULL_1.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); - -int main() { - int *ptr = NULL; - svf_assert(ptr == NULL); - return 0; -} diff --git a/src/ae_assert_tests_fail/NULL_2.c b/src/ae_assert_tests_fail/NULL_2.c deleted file mode 100644 index 2a14153f..00000000 --- a/src/ae_assert_tests_fail/NULL_2.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); - -int main() { - int value = 10; - int *ptr = &value; - svf_assert(ptr != NULL); - return 0; -} diff --git a/src/ae_assert_tests_fail/NULL_3.c b/src/ae_assert_tests_fail/NULL_3.c deleted file mode 100644 index c8b9893a..00000000 --- a/src/ae_assert_tests_fail/NULL_3.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); - -int main() { - int *ptr = NULL; - bool isNullDereference = false; - - if (ptr == NULL) { - isNullDereference = true; - } - - svf_assert(isNullDereference); - return 0; -} diff --git a/src/ae_assert_tests_fail/NULL_4.c b/src/ae_assert_tests_fail/NULL_4.c deleted file mode 100644 index bf484113..00000000 --- a/src/ae_assert_tests_fail/NULL_4.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "stdbool.h" -#include -extern void svf_assert(bool); - -int main() { - int *a[3][3] = {NULL}; - - bool isNull = (a[0][0] == NULL); - svf_assert(isNull); - - return 0; -} diff --git a/src/ae_assert_tests_fail/UAF_uaf_0-0.c b/src/ae_assert_tests_fail/UAF_uaf_0-0.c deleted file mode 100644 index 1b6c6cba..00000000 --- a/src/ae_assert_tests_fail/UAF_uaf_0-0.c +++ /dev/null @@ -1,24 +0,0 @@ -/* -Program description: In this program, data is allocated memory for 100 integers, which are all assigned as 5 using a for loop. Then, the memory that was allocated to data is freed. Finally, the first element of data is printed out - -Vulnerability and consequence: However, after data is deallocated with free, the program tries to print the first element of data, which causes a use after free error - -The vulnerability triggers in the following lines: -printf("%d\n", data[0]); - -Mitigation: To make this program safe to run, ensure that data is only freed after the first element of data is printed out. Therefore, only free data when there are no more uses for data. To check if the data has been freed or not, assign data to NULL after using free, then perform a NULL check -*/ -#define ALLOCA alloca - -#include -int main() { - int * data = (int *)ALLOCA(2 * sizeof(int)); - data[0] = 0; - data[1] = 1; - if (data[1] != 1) { - free(data); - data = NULL; - } - svf_assert(data != NULL); - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/array_2d_big.c b/src/ae_nullptr_deref_tests/array_2d_big.c deleted file mode 100644 index 8bacb520..00000000 --- a/src/ae_nullptr_deref_tests/array_2d_big.c +++ /dev/null @@ -1,23 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -#define SIZE 100 - -int main() { - int *arr[SIZE][SIZE]; - - for (int i = 0; i < SIZE; i++) { - for (int j = 0; j < SIZE; j++) { - arr[i][j] = NULL; - } - } - - for (int m = 0; m < SIZE; m++) { - for (int n = 0; n < SIZE; n++) { - UNSAFE_LOAD(arr[m][n]); - } - } - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/array_2d_small.c b/src/ae_nullptr_deref_tests/array_2d_small.c deleted file mode 100644 index f7ac26df..00000000 --- a/src/ae_nullptr_deref_tests/array_2d_small.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int *arr[2][2]; - arr[0][0] = NULL; - arr[0][1] = NULL; - arr[1][0] = NULL; - arr[1][1] = NULL; - - UNSAFE_LOAD(arr[0][0]); - UNSAFE_LOAD(arr[0][1]); - UNSAFE_LOAD(arr[1][0]); - UNSAFE_LOAD(arr[1][1]); -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/array_2d_small_partial_null.c b/src/ae_nullptr_deref_tests/array_2d_small_partial_null.c deleted file mode 100644 index 54a187fd..00000000 --- a/src/ae_nullptr_deref_tests/array_2d_small_partial_null.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -extern void SAFE_LOAD(void *ptr); -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int *arr[2][2]; - arr[0][0] = NULL; - arr[0][1] = NULL; - arr[1][0] = malloc(sizeof(int)); - arr[1][1] = malloc(sizeof(int)); - - *arr[1][0] = 123; - *arr[1][1] = 456; - - UNSAFE_LOAD(arr[0][0]); - UNSAFE_LOAD(arr[0][1]); - SAFE_LOAD(arr[1][0]); - SAFE_LOAD(arr[1][1]); -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/array_all_nullptr.c b/src/ae_nullptr_deref_tests/array_all_nullptr.c deleted file mode 100644 index 2d9fcbec..00000000 --- a/src/ae_nullptr_deref_tests/array_all_nullptr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int *n = NULL; - int *ptrs[5] = {n, n, n, n, n}; - for (int i = 0; i < 5; i++) { - UNSAFE_LOAD(ptrs[i]); - } - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/array_of_struct.c b/src/ae_nullptr_deref_tests/array_of_struct.c deleted file mode 100644 index fb801260..00000000 --- a/src/ae_nullptr_deref_tests/array_of_struct.c +++ /dev/null @@ -1,23 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); -extern void UNSAFE_LOAD(void *ptr); - -struct S { - int *intPtr; -}; - -int main() { - struct S arrStruct[3]; - - arrStruct[0].intPtr = malloc(sizeof(int)); - *arrStruct[0].intPtr = 1024; - - arrStruct[1].intPtr = NULL; - - SAFE_LOAD(arrStruct[0].intPtr); // malloc - UNSAFE_LOAD(arrStruct[1].intPtr); // NULL - UNSAFE_LOAD(arrStruct[2].intPtr); // uninitialized - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/char_ptr_arg.c b/src/ae_nullptr_deref_tests/char_ptr_arg.c deleted file mode 100644 index 9c56c434..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_arg.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -void foo(char *ptr) { - UNSAFE_LOAD(ptr); // Dereferencing the NULL pointer -} - -int main() { - char *ptr = NULL; - - foo(ptr); // Passing a NULL pointer to the function - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_arithmetic.c b/src/ae_nullptr_deref_tests/char_ptr_arithmetic.c deleted file mode 100644 index e927a633..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_arithmetic.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - char *ptr = NULL; - - char *newPtr = ptr + 5; // Perform pointer arithmetic on NULL pointer - - UNSAFE_LOAD(newPtr); // Dereference the result - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_branch.c b/src/ae_nullptr_deref_tests/char_ptr_branch.c deleted file mode 100644 index 43e9aacf..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_branch.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - char *ptr = (char *)malloc(sizeof(char)); // Allocate memory - - int a = 0; - - if (a >= 0) { - ptr = NULL; - } - - UNSAFE_LOAD(ptr); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_doubleptr.c b/src/ae_nullptr_deref_tests/char_ptr_doubleptr.c deleted file mode 100644 index c6bd5865..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_doubleptr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - - char **double_ptr = NULL; - UNSAFE_LOAD(double_ptr); // This will trigger a null pointer dereference - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/char_ptr_func_return_val.c b/src/ae_nullptr_deref_tests/char_ptr_func_return_val.c deleted file mode 100644 index 868e8aa3..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_func_return_val.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -char *getNullPointer() { - return NULL; // Function returns a NULL pointer -} - -int main() { - char *ptr = getNullPointer(); - - UNSAFE_LOAD(ptr); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_in_struct_null.c b/src/ae_nullptr_deref_tests/char_ptr_in_struct_null.c deleted file mode 100644 index ee898829..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_in_struct_null.c +++ /dev/null @@ -1,20 +0,0 @@ -// -// Created by Ethan Lin on 30/9/2024. -// - -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct S { - char *ptr; -}; - -int main() { - struct S myStruct; - myStruct.ptr = NULL; - - UNSAFE_LOAD(myStruct.ptr); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c b/src/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c deleted file mode 100644 index 417e706a..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c +++ /dev/null @@ -1,19 +0,0 @@ -// -// Created by Ethan Lin on 30/9/2024. -// - -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct S { - char *ptr; -}; - -int main() { - struct S myStruct; - - UNSAFE_LOAD(myStruct.ptr); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c b/src/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c deleted file mode 100644 index 145269f0..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c +++ /dev/null @@ -1,20 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -char *getNullPointer() { - return NULL; // Function returns a NULL pointer -} - -char *foo() { - char *p = getNullPointer(); - return p; -} - -int main() { - char *ptr = foo(); - - UNSAFE_LOAD(ptr); // Dereferencing the NULL pointer - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c b/src/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c deleted file mode 100644 index 2ff02a4d..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - char *p = malloc(sizeof(char) * 100); - *p = 'This string can be stored.'; - free(p); - p = NULL; - UNSAFE_LOAD(p); -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_simple.c b/src/ae_nullptr_deref_tests/char_ptr_simple.c deleted file mode 100644 index a4cfc6a8..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_simple.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - char *p = NULL; - UNSAFE_LOAD(p); -} diff --git a/src/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c b/src/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c deleted file mode 100644 index 80257e0f..00000000 --- a/src/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c +++ /dev/null @@ -1,7 +0,0 @@ - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - char *p; - UNSAFE_LOAD(p); -} diff --git a/src/ae_nullptr_deref_tests/dangleptr_safe_branch.c b/src/ae_nullptr_deref_tests/dangleptr_safe_branch.c deleted file mode 100644 index e1a6c425..00000000 --- a/src/ae_nullptr_deref_tests/dangleptr_safe_branch.c +++ /dev/null @@ -1,28 +0,0 @@ -// -// Created by Ethan Lin on 11/11/2024. -// - -#include - -extern void SAFE_LOAD(void *p); -extern void UNSAFE_LOAD(void *p); - -int main() { - int a = 5; - - int *myPtr; - - myPtr = (int*)malloc(sizeof(int)); - free(myPtr); - UNSAFE_LOAD(myPtr); - if (a > 0) - { - myPtr = &a; - } else - { - /* Do nothing */ - } - - SAFE_LOAD(myPtr); - return 0; -} diff --git a/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c b/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c deleted file mode 100644 index 6bfcb156..00000000 --- a/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c +++ /dev/null @@ -1,21 +0,0 @@ -// -// Created by Ethan Lin on 11/11/2024. -// - -#include - -extern void SAFE_LOAD(void *p); -extern void UNSAFE_LOAD(void *p); - -int main() { - int a = 5; - - int *myPtr; - - myPtr = (int*)malloc(sizeof(int)); - free(myPtr); - // UNSAFE_LOAD(myPtr); - myPtr = &a; - SAFE_LOAD(myPtr); - return 0; -} diff --git a/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c b/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c deleted file mode 100644 index 6fb56dad..00000000 --- a/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c +++ /dev/null @@ -1,19 +0,0 @@ -// -// Created by Ethan Lin on 21/10/2024. -// -#include - -extern void SAFE_LOAD(void *p); -extern void UNSAFE_LOAD(void *p); -//extern void svf_assert(bool); - -int main() { - int *myPtr = (int*)malloc(sizeof(int)); - free(myPtr); - UNSAFE_LOAD(myPtr); - myPtr = (int*)malloc(sizeof(int)); - *myPtr = 200; - SAFE_LOAD(myPtr); - return 0; -} - diff --git a/src/ae_nullptr_deref_tests/dangleptr_safe_load.c b/src/ae_nullptr_deref_tests/dangleptr_safe_load.c deleted file mode 100644 index a7d4c601..00000000 --- a/src/ae_nullptr_deref_tests/dangleptr_safe_load.c +++ /dev/null @@ -1,14 +0,0 @@ -// -// Created by Ethan Lin on 21/10/2024. -// -#include - -extern void SAFE_LOAD(void *p); - -int main() { - int *myPtr = malloc(sizeof(int)); - *myPtr = 123; - SAFE_LOAD(myPtr); - return 0; -} - diff --git a/src/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c b/src/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c deleted file mode 100644 index 72c27660..00000000 --- a/src/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c +++ /dev/null @@ -1,24 +0,0 @@ -// -// Created by Ethan Lin on 21/10/2024. -// -#include - -extern void SAFE_LOAD(void *p); -extern void UNSAFE_LOAD(void *p); -extern void svf_assert(bool); - -int main() { - int *safePtr = (int *)malloc(sizeof(int)); - *safePtr = 777; - SAFE_LOAD(safePtr); - - free(safePtr); - - safePtr = (int *)malloc(sizeof(int)); - *safePtr = 888; - SAFE_LOAD(safePtr); - svf_assert(*safePtr == 888); - - return 0; -} - diff --git a/src/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c b/src/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c deleted file mode 100644 index aa12abdc..00000000 --- a/src/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c +++ /dev/null @@ -1,28 +0,0 @@ -// -// Created by Ethan Lin on 11/11/2024. -// - -#include - -extern void SAFE_LOAD(void *p); -extern void UNSAFE_LOAD(void *p); - -int main() { - int a = 5; - - int *myPtr; - - myPtr = (int*)malloc(sizeof(int)); - free(myPtr); - UNSAFE_LOAD(myPtr); - if (a < 0) - { - myPtr = &a; - } else - { - /* Do nothing */ - } - - UNSAFE_LOAD(myPtr); - return 0; -} diff --git a/src/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c b/src/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c deleted file mode 100644 index 20ce5b45..00000000 --- a/src/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c +++ /dev/null @@ -1,18 +0,0 @@ -// -// Created by Ethan Lin on 21/10/2024. -// -#include - -extern void SAFE_LOAD(void *p); -extern void UNSAFE_LOAD(void *p); - -int main() { - int *myPtr = (int*)malloc(sizeof(int)); - // SAFE_LOAD(myPtr); - *myPtr = 200; - free(myPtr); - UNSAFE_LOAD(myPtr); - *myPtr = 404; // Trigger dangling pointer dereference - return 0; -} - diff --git a/src/ae_nullptr_deref_tests/func_nullptr_func_1.c b/src/ae_nullptr_deref_tests/func_nullptr_func_1.c deleted file mode 100644 index 6ce839c7..00000000 --- a/src/ae_nullptr_deref_tests/func_nullptr_func_1.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - void (*funcPtr)() = NULL; - - UNSAFE_LOAD(funcPtr); // Attempting to call a function via a NULL function pointer - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/func_nullptr_func_2.c b/src/ae_nullptr_deref_tests/func_nullptr_func_2.c deleted file mode 100644 index 6a2430ec..00000000 --- a/src/ae_nullptr_deref_tests/func_nullptr_func_2.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); -typedef void (*FuncPtr)(); // Define a function pointer type - -void invokeFunction(FuncPtr func) { - UNSAFE_LOAD(func); -} - -int main() { - FuncPtr funcPtr = NULL; // Initialize function pointer to NULL - - invokeFunction(funcPtr); // Attempt to call the function via the NULL pointer - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/int_ptr_arg.c b/src/ae_nullptr_deref_tests/int_ptr_arg.c deleted file mode 100644 index 5df69be1..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_arg.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -void foo(int *ptr) { - UNSAFE_LOAD(ptr); // Dereferencing the NULL pointer -} - -int main() { - int *ptr = NULL; - - foo(ptr); // Passing a NULL pointer to the function - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_arithmetic.c b/src/ae_nullptr_deref_tests/int_ptr_arithmetic.c deleted file mode 100644 index cf501b8c..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_arithmetic.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int *ptr = NULL; - - int *newPtr = ptr + 5; // Perform pointer arithmetic on NULL pointer - - UNSAFE_LOAD(newPtr); // Dereference the result - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_branch.c b/src/ae_nullptr_deref_tests/int_ptr_branch.c deleted file mode 100644 index 47d0130f..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_branch.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int *ptr = (int *)malloc(sizeof(int)); // Allocate memory - - int a = 0; - - if (a >= 0) { - ptr = NULL; - } - - UNSAFE_LOAD(ptr); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_doubleptr.c b/src/ae_nullptr_deref_tests/int_ptr_doubleptr.c deleted file mode 100644 index be09d968..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_doubleptr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - - int **double_ptr = NULL; - UNSAFE_LOAD(double_ptr); // This will trigger a null pointer dereference - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/int_ptr_func_return_val.c b/src/ae_nullptr_deref_tests/int_ptr_func_return_val.c deleted file mode 100644 index eed2cc2f..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_func_return_val.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int* getNullPointer() { - return NULL; // Function returns a NULL pointer -} - -int main() { - int *ptr = getNullPointer(); - - UNSAFE_LOAD(ptr); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_in_struct_null.c b/src/ae_nullptr_deref_tests/int_ptr_in_struct_null.c deleted file mode 100644 index 9ae9943e..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_in_struct_null.c +++ /dev/null @@ -1,21 +0,0 @@ -// -// Created by Ethan Lin on 30/9/2024. -// - -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct S { - int *ptr; -}; - -int main() { - struct S myStruct; - myStruct.ptr = NULL; - - UNSAFE_LOAD(myStruct.ptr); - *myStruct.ptr = 404; - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c b/src/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c deleted file mode 100644 index e0163afe..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c +++ /dev/null @@ -1,20 +0,0 @@ -// -// Created by Ethan Lin on 30/9/2024. -// - -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct S { - int *ptr; -}; - -int main() { - struct S myStruct; - - UNSAFE_LOAD(myStruct.ptr); - *myStruct.ptr = 404; - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c b/src/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c deleted file mode 100644 index e1ccd76c..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c +++ /dev/null @@ -1,20 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int *getNullPointer() { - return NULL; // Function returns a NULL pointer -} - -int *foo() { - int *p = getNullPointer(); - return p; -} - -int main() { - int *ptr = foo(); - - UNSAFE_LOAD(ptr); // Dereferencing the NULL pointer - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c b/src/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c deleted file mode 100644 index 26e5b0eb..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int* p = malloc(sizeof(int)); - *p = 1; - free(p); - p = NULL; - UNSAFE_LOAD(p); -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_simple.c b/src/ae_nullptr_deref_tests/int_ptr_simple.c deleted file mode 100644 index 8d886158..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_simple.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int* p = NULL; - UNSAFE_LOAD(p); -} diff --git a/src/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c b/src/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c deleted file mode 100644 index ee34de74..00000000 --- a/src/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c +++ /dev/null @@ -1,7 +0,0 @@ - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int* p; - UNSAFE_LOAD(p); -} diff --git a/src/ae_nullptr_deref_tests/safe_array_access.c b/src/ae_nullptr_deref_tests/safe_array_access.c deleted file mode 100644 index e47e78c9..00000000 --- a/src/ae_nullptr_deref_tests/safe_array_access.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -int main() { - int arr[10] = {0}; - for (int i = 0; i < 10; ++i) - SAFE_LOAD(&arr[i]); -} diff --git a/src/ae_nullptr_deref_tests/safe_array_of_struct_1.c b/src/ae_nullptr_deref_tests/safe_array_of_struct_1.c deleted file mode 100644 index 3cda2d46..00000000 --- a/src/ae_nullptr_deref_tests/safe_array_of_struct_1.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -struct Data { - int number; - char character; -}; - -int main() { - struct Data arr[10] = {}; - for (int i = 0; i < 10; ++i) { - SAFE_LOAD(&arr[i].number); - SAFE_LOAD(&arr[i].character); - } -} diff --git a/src/ae_nullptr_deref_tests/safe_array_of_struct_2.c b/src/ae_nullptr_deref_tests/safe_array_of_struct_2.c deleted file mode 100644 index 20af8f4f..00000000 --- a/src/ae_nullptr_deref_tests/safe_array_of_struct_2.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -struct Data { - int *number; - char character; -}; - -int main() { - struct Data arr[10] = {}; - for (int i = 0; i < 10; ++i) { - *(arr[i].number) = 0; - SAFE_LOAD(&arr[i].number); - } -} diff --git a/src/ae_nullptr_deref_tests/safe_double_ptr.c b/src/ae_nullptr_deref_tests/safe_double_ptr.c deleted file mode 100644 index a2f51ee9..00000000 --- a/src/ae_nullptr_deref_tests/safe_double_ptr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -int main() { - int **dp = malloc(sizeof(int *)); - *dp = malloc(sizeof(int)); - **dp = 1; - SAFE_LOAD(dp); - SAFE_LOAD(*dp); -} diff --git a/src/ae_nullptr_deref_tests/safe_func_arg.c b/src/ae_nullptr_deref_tests/safe_func_arg.c deleted file mode 100644 index 09230660..00000000 --- a/src/ae_nullptr_deref_tests/safe_func_arg.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -void foo(int *a) { - SAFE_LOAD(a); -} - -int main() { - int* p = malloc(sizeof(int)); - *p = 1; - foo(p); -} diff --git a/src/ae_nullptr_deref_tests/safe_func_ptr.c b/src/ae_nullptr_deref_tests/safe_func_ptr.c deleted file mode 100644 index 22384935..00000000 --- a/src/ae_nullptr_deref_tests/safe_func_ptr.c +++ /dev/null @@ -1,14 +0,0 @@ -#include - -void testFunction() { - printf("Test function called\n"); -} - -int main() { - void (*funcPtr)(); - funcPtr = testFunction; - SAFE_LOAD(&funcPtr); - funcPtr(); - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/safe_func_return.c b/src/ae_nullptr_deref_tests/safe_func_return.c deleted file mode 100644 index b7fd8e18..00000000 --- a/src/ae_nullptr_deref_tests/safe_func_return.c +++ /dev/null @@ -1,14 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -int *foo() { - int* p = malloc(sizeof(int)); - *p = 1; - return p; -} - -int main() { - int *myPtr = foo(); - SAFE_LOAD(myPtr); -} diff --git a/src/ae_nullptr_deref_tests/safe_pointer_access.c b/src/ae_nullptr_deref_tests/safe_pointer_access.c deleted file mode 100644 index f455753b..00000000 --- a/src/ae_nullptr_deref_tests/safe_pointer_access.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -int main() { - int* p = malloc(sizeof(int)); - *p = 1; - SAFE_LOAD(p); -} diff --git a/src/ae_nullptr_deref_tests/safe_ptr_array_access.c b/src/ae_nullptr_deref_tests/safe_ptr_array_access.c deleted file mode 100644 index 29e4f2de..00000000 --- a/src/ae_nullptr_deref_tests/safe_ptr_array_access.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -int main() { - int *n = malloc(sizeof(int)); - *n = 0; - int *ptrs[5] = {n, n, n, n, n}; - for (int i = 0; i < 5; i++) { - SAFE_LOAD(ptrs[i]); - *ptrs[i] = 1; - } - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/safe_ptr_assign.c b/src/ae_nullptr_deref_tests/safe_ptr_assign.c deleted file mode 100644 index 6b223a6a..00000000 --- a/src/ae_nullptr_deref_tests/safe_ptr_assign.c +++ /dev/null @@ -1,18 +0,0 @@ -// -// Created by Ethan Lin on 21/10/2024. -// -#include - -extern void SAFE_LOAD(void *p); -extern void UNSAFE_LOAD(void *p); - -int main() { - int x = 6; - int *myPtr2; - myPtr2 = &x; - SAFE_LOAD(myPtr2); - *myPtr2 = 5; - - return 0; -} - diff --git a/src/ae_nullptr_deref_tests/safe_single_array_access.c b/src/ae_nullptr_deref_tests/safe_single_array_access.c deleted file mode 100644 index e94330fa..00000000 --- a/src/ae_nullptr_deref_tests/safe_single_array_access.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -int main() { - int arr[1] = {0}; - SAFE_LOAD(arr); -} diff --git a/src/ae_nullptr_deref_tests/safe_struct_access.c b/src/ae_nullptr_deref_tests/safe_struct_access.c deleted file mode 100644 index 6404acae..00000000 --- a/src/ae_nullptr_deref_tests/safe_struct_access.c +++ /dev/null @@ -1,20 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -struct Data { - int number; - char character; -}; - -int main() { - struct Data *dataPtr = malloc(sizeof(struct Data)); - - dataPtr->number = 0; - dataPtr->character = 'a'; - - SAFE_LOAD(&dataPtr->number); - SAFE_LOAD(&dataPtr->character); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/struct_func_ptr_1.c b/src/ae_nullptr_deref_tests/struct_func_ptr_1.c deleted file mode 100644 index a69d268a..00000000 --- a/src/ae_nullptr_deref_tests/struct_func_ptr_1.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct Operations { - void (*op_function)(int); // function ptr -}; - -int main() { - struct Operations ops; - ops.op_function = NULL; - UNSAFE_LOAD(ops.op_function); // Triggers a null pointer dereference -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/struct_func_ptr_2.c b/src/ae_nullptr_deref_tests/struct_func_ptr_2.c deleted file mode 100644 index f67b1553..00000000 --- a/src/ae_nullptr_deref_tests/struct_func_ptr_2.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct Operations { - void (*op_function)(int); // function ptr -}; - -int main() { - struct Operations *ops = NULL; - UNSAFE_LOAD(&ops->op_function); // Triggers a null pointer dereference -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests/struct_nullptr.c b/src/ae_nullptr_deref_tests/struct_nullptr.c deleted file mode 100644 index e3865283..00000000 --- a/src/ae_nullptr_deref_tests/struct_nullptr.c +++ /dev/null @@ -1,17 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct Data { - int number; - char character; -}; - -int main() { - struct Data *dataPtr = NULL; - - UNSAFE_LOAD(&dataPtr->number); // Accessing a member of the structure via NULL pointer - UNSAFE_LOAD(&dataPtr->character); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/struct_uninit_struct.c b/src/ae_nullptr_deref_tests/struct_uninit_struct.c deleted file mode 100644 index 1e833a1c..00000000 --- a/src/ae_nullptr_deref_tests/struct_uninit_struct.c +++ /dev/null @@ -1,17 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct Data { - int number; - char character; -}; - -int main() { - struct Data *dataPtr; - - UNSAFE_LOAD(&dataPtr->number); // Accessing a member of the structure via NULL pointer - UNSAFE_LOAD(&dataPtr->character); - - return 0; -} diff --git a/src/ae_nullptr_deref_tests/union_nullptr_member.c b/src/ae_nullptr_deref_tests/union_nullptr_member.c deleted file mode 100644 index f770ca8b..00000000 --- a/src/ae_nullptr_deref_tests/union_nullptr_member.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -union Data { - int* int_ptr; - float* float_ptr; -}; - -int main() { - union Data data; - data.int_ptr = NULL; - UNSAFE_LOAD(data.int_ptr); // This will trigger a null pointer dereference - - return 0; -} diff --git a/src/ae_nullptr_deref_tests_failed/array_2d_big_partial_null.c b/src/ae_nullptr_deref_tests_failed/array_2d_big_partial_null.c deleted file mode 100644 index 52828014..00000000 --- a/src/ae_nullptr_deref_tests_failed/array_2d_big_partial_null.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -extern void SAFE_LOAD(void *ptr); -extern void UNSAFE_LOAD(void *ptr); - -#define SIZE 100 - -int main() { - int *arr[SIZE][SIZE]; - - for (int i = 0; i < SIZE; i++) { - for (int j = 0; j < SIZE; j++) { - if (j < SIZE / 2) { - arr[i][j] = NULL; - } else { - arr[i][j] = malloc(sizeof(int)); - *arr[i][j] = 1024; - } - } - } - - for (int m = 0; m < SIZE; m++) { - for (int n = 0; n < SIZE; n++) { - if (n < SIZE / 2) - UNSAFE_LOAD(arr[m][n]); - else - SAFE_LOAD(arr[m][n]); - } - } - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/array_of_struct_func_ptr.c b/src/ae_nullptr_deref_tests_failed/array_of_struct_func_ptr.c deleted file mode 100644 index 332c0111..00000000 --- a/src/ae_nullptr_deref_tests_failed/array_of_struct_func_ptr.c +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -extern void SAFE_LOAD(void *ptr); -extern void UNSAFE_LOAD(void *ptr); - -struct S { - void (*funcPtr)(); -}; - -void foo() { - printf("This is a function\n"); -} - -int main() { - struct S arrStruct[3]; - - arrStruct[0].funcPtr = &foo; - - arrStruct[1].funcPtr = NULL; - - SAFE_LOAD(arrStruct[0].funcPtr); // malloc - UNSAFE_LOAD(arrStruct[1].funcPtr); // NULL - UNSAFE_LOAD(arrStruct[2].funcPtr); // uninitialized - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/array_partial_nullptr.c b/src/ae_nullptr_deref_tests_failed/array_partial_nullptr.c deleted file mode 100644 index 01b1b46f..00000000 --- a/src/ae_nullptr_deref_tests_failed/array_partial_nullptr.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int *arr[5]; - arr[0] = malloc(sizeof(int)); - arr[1] = malloc(sizeof(int)); - arr[2] = malloc(sizeof(int)); - arr[3] = malloc(sizeof(int)); - - arr[4] = NULL; - - for (int i = 0; i < 5; i++) - { - UNSAFE_LOAD(arr[i]); - } - - return 0; -} diff --git a/src/ae_nullptr_deref_tests_failed/char_ptr_loop_branch_nullptr.c b/src/ae_nullptr_deref_tests_failed/char_ptr_loop_branch_nullptr.c deleted file mode 100644 index 42e508dd..00000000 --- a/src/ae_nullptr_deref_tests_failed/char_ptr_loop_branch_nullptr.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - char *p; - int i = 0; - while (i < 100) { - if (i == 50) { - p = NULL; - } - else { - p = malloc(sizeof(char)); - } - UNSAFE_LOAD(p); - i++; - } - - return 0; -} diff --git a/src/ae_nullptr_deref_tests_failed/int_ptr_loop_branch_nullptr.c b/src/ae_nullptr_deref_tests_failed/int_ptr_loop_branch_nullptr.c deleted file mode 100644 index f0841109..00000000 --- a/src/ae_nullptr_deref_tests_failed/int_ptr_loop_branch_nullptr.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -extern void UNSAFE_LOAD(void *ptr); - -int main() { - int *p; - int i = 0; - while (i < 100) { - if (i == 50) { - p = NULL; - } - else { - p = malloc(sizeof(int)); - } - UNSAFE_LOAD(p); - i++; - } - - return 0; -} diff --git a/src/ae_nullptr_deref_tests_failed/nullptr_func.c b/src/ae_nullptr_deref_tests_failed/nullptr_func.c deleted file mode 100644 index 4356bd7d..00000000 --- a/src/ae_nullptr_deref_tests_failed/nullptr_func.c +++ /dev/null @@ -1,8 +0,0 @@ -#include -int main() { - void (*funcPtr)() = NULL; - - funcPtr(); // Attempting to call a function via a NULL function pointer - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/recursive_return_null.c b/src/ae_nullptr_deref_tests_failed/recursive_return_null.c deleted file mode 100644 index cd74cfbb..00000000 --- a/src/ae_nullptr_deref_tests_failed/recursive_return_null.c +++ /dev/null @@ -1,21 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -int *recursive_function(int depth) { - if (depth > 0) { - // Do nothing and keep calling itself - recursive_function(depth - 1); - } else { - // Base case reached, dereferencing NULL pointer - return NULL; - } -} - -int main() { - int *intPtr = recursive_function(5); - - UNSAFE_LOAD(intPtr); - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/recursive_safe.c b/src/ae_nullptr_deref_tests_failed/recursive_safe.c deleted file mode 100644 index 93472eff..00000000 --- a/src/ae_nullptr_deref_tests_failed/recursive_safe.c +++ /dev/null @@ -1,22 +0,0 @@ -#include - -extern void SAFE_LOAD(void *ptr); - -void recursive_function(void *ptr, int depth) { - if (depth > 0) { - // Do nothing and keep calling itself - recursive_function(ptr, depth - 1); - } else { - // Base case reached - SAFE_LOAD(ptr); - } -} - -int main() { - int *intPtr = malloc(sizeof(int)); - char *charPtr = malloc(sizeof(char)); - recursive_function(intPtr, 3); - recursive_function(charPtr, 3); - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/recursive_simple.c b/src/ae_nullptr_deref_tests_failed/recursive_simple.c deleted file mode 100644 index 3e22d4f2..00000000 --- a/src/ae_nullptr_deref_tests_failed/recursive_simple.c +++ /dev/null @@ -1,22 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -void recursive_function(void *ptr, int depth) { - if (depth > 0) { - // Do nothing and keep calling itself - recursive_function(ptr, depth - 1); - } else { - // Base case reached, dereferencing NULL pointer - UNSAFE_LOAD(ptr); // This will trigger a null pointer dereference - } -} - -int main() { - int *intPtr = NULL; - char *charPtr = NULL; - recursive_function(intPtr, 3); - recursive_function(charPtr, 3); - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/recursive_simple_once.c b/src/ae_nullptr_deref_tests_failed/recursive_simple_once.c deleted file mode 100644 index 888323a6..00000000 --- a/src/ae_nullptr_deref_tests_failed/recursive_simple_once.c +++ /dev/null @@ -1,22 +0,0 @@ -#include - -extern void UNSAFE_LOAD(void *ptr); - -void recursive_function(void *ptr, int depth) { - if (depth > 0) { - // Do nothing and keep calling itself - recursive_function(ptr, depth - 1); - } else { - // Base case reached, dereferencing NULL pointer - UNSAFE_LOAD(ptr); // This will trigger a null pointer dereference - } -} - -int main() { - int *intPtr = NULL; - char *charPtr = NULL; - recursive_function(intPtr, 1); - recursive_function(charPtr, 1); - - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/recursive_struct.c b/src/ae_nullptr_deref_tests_failed/recursive_struct.c deleted file mode 100644 index ff526257..00000000 --- a/src/ae_nullptr_deref_tests_failed/recursive_struct.c +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include - -extern void UNSAFE_LOAD(void *ptr); - -struct S { - int *intPtr; - char *charPtr; - int64_t *int64Ptr; - wchar_t *wcharPtr; -}; - -void recursive_function(struct S s, int depth) { - if (depth > 0) { - // Do nothing and keep calling itself - recursive_function(s, depth - 1); - } else { - // Base case reached, dereferencing NULL pointer - UNSAFE_LOAD(s.intPtr); - UNSAFE_LOAD(s.charPtr); - UNSAFE_LOAD(s.int64Ptr); - UNSAFE_LOAD(s.wcharPtr); - } -} - -int main() { - struct S myStruct; - myStruct.intPtr = NULL; - myStruct.charPtr = NULL; - myStruct.int64Ptr = NULL; - myStruct.wcharPtr = NULL; - - recursive_function(myStruct, 3); - return 0; -} \ No newline at end of file diff --git a/src/ae_nullptr_deref_tests_failed/safe_loop_access.c b/src/ae_nullptr_deref_tests_failed/safe_loop_access.c deleted file mode 100644 index e870a0be..00000000 --- a/src/ae_nullptr_deref_tests_failed/safe_loop_access.c +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -extern void SAFE_LOAD(void *ptr); - -#define LEN 3 - -int main() { - int *arr[LEN]; - - for (int i = 0; i < LEN; i++) - { - arr[i] = malloc(sizeof(int)); - if (arr[i] == NULL) { - printf("Memory allocation failed\n"); - return 1; - } - *arr[i] = 0; - } - - for (int j = 0; j < LEN; j++) - { - SAFE_LOAD(&arr[j]); - } - - return 0; -} diff --git a/src/ae_nullptr_deref_tests_failed/struct_func_ptr.c b/src/ae_nullptr_deref_tests_failed/struct_func_ptr.c deleted file mode 100644 index 007dad94..00000000 --- a/src/ae_nullptr_deref_tests_failed/struct_func_ptr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -struct Operations { - void (*op_function)(int); // function ptr -}; - -int main() { - struct Operations ops; - ops.op_function = NULL; - ops.op_function(10); // Triggers a null pointer dereference -} \ No newline at end of file diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c deleted file mode 100644 index ff7384eb..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c +++ /dev/null @@ -1,171 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE129.label.xml -Template File: sources-sinks-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: fgets Read data from the console using fgets() - * GoodSource: Larger than zero but less than 10 - * Sinks: - * GoodSink: Ensure the array index is valid - * BadSink : Improperly check the array index by not checking the upper bound - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#define CHAR_ARRAY_SIZE (3 * sizeof(data) + 2) - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01_bad() -{ - int data; - /* Initialize data */ - data = -1; - { - char inputBuffer[CHAR_ARRAY_SIZE] = ""; - /* POTENTIAL FLAW: Read data from the console using fgets() */ - if (fgets(inputBuffer, CHAR_ARRAY_SIZE, stdin) != NULL) - { - /* Convert to int */ - data = atoi(inputBuffer); - } - else - { - printLine("fgets() failed."); - } - } - { - int i; - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to write to an index of the array that is above the upper bound - * This code does check to see if the array index is negative */ - if (data >= 0) - { - buffer[data] = 1; - UNSAFE_BUFACCESS(buffer, data * sizeof(int) - 1 ); - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is negative."); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int data; - /* Initialize data */ - data = -1; - /* FIX: Use a value greater than 0, but less than 10 to avoid attempting to - * access an index of the array in the sink that is out-of-bounds */ - data = 7; - { - int i; - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to write to an index of the array that is above the upper bound - * This code does check to see if the array index is negative */ - if (data >= 0) - { - buffer[data] = 1; - SAFE_BUFACCESS(buffer, data * sizeof(int) - 1); - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is negative."); - } - } -} - -/* goodB2G uses the BadSource with the GoodSink */ -static void goodB2G() -{ - int data; - /* Initialize data */ - data = -1; - { - char inputBuffer[CHAR_ARRAY_SIZE] = ""; - /* POTENTIAL FLAW: Read data from the console using fgets() */ - if (fgets(inputBuffer, CHAR_ARRAY_SIZE, stdin) != NULL) - { - /* Convert to int */ - data = atoi(inputBuffer); - } - else - { - printLine("fgets() failed."); - } - } - { - int i; - int buffer[10] = { 0 }; - /* FIX: Properly validate the array index and prevent a buffer overflow */ - if (data >= 0 && data < (10)) - { - buffer[data] = 1; - SAFE_BUFACCESS(buffer, data * sizeof(int) - 1); - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is out-of-bounds"); - } - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01_good() -{ - goodG2B(); - goodB2G(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c deleted file mode 100644 index dfcb4061..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c +++ /dev/null @@ -1,302 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE129.label.xml -Template File: sources-sinks-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: listen_socket Read data using a listen socket (server side) - * GoodSource: Larger than zero but less than 10 - * Sinks: - * GoodSink: Ensure the array index is valid - * BadSink : Improperly check the array index by not checking the upper bound - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifdef _WIN32 -#include -#include -#include -#pragma comment(lib, "ws2_32") /* include ws2_32.lib when linking */ -#define CLOSE_SOCKET closesocket -#else -#include -#include -#include -#include -#include -#define INVALID_SOCKET -1 -#define SOCKET_ERROR -1 -#define CLOSE_SOCKET close -#define SOCKET int -#endif - -#define TCP_PORT 27015 -#define LISTEN_BACKLOG 5 -#define CHAR_ARRAY_SIZE (3 * sizeof(data) + 2) - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad() -{ - int data; - /* Initialize data */ - data = -1; - { -#ifdef _WIN32 - WSADATA wsaData; - int wsaDataInit = 0; -#endif - int recvResult; - struct sockaddr_in service; - SOCKET listenSocket = INVALID_SOCKET; - SOCKET acceptSocket = INVALID_SOCKET; - char inputBuffer[CHAR_ARRAY_SIZE]; - do - { -#ifdef _WIN32 - if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR) - { - break; - } - wsaDataInit = 1; -#endif - /* POTENTIAL FLAW: Read data using a listen socket */ - listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (listenSocket == INVALID_SOCKET) - { - break; - } - memset(&service, 0, sizeof(service)); - service.sin_family = AF_INET; - service.sin_addr.s_addr = INADDR_ANY; - service.sin_port = htons(TCP_PORT); - if (bind(listenSocket, (struct sockaddr*)&service, sizeof(service)) == SOCKET_ERROR) - { - break; - } - if (listen(listenSocket, LISTEN_BACKLOG) == SOCKET_ERROR) - { - break; - } - acceptSocket = accept(listenSocket, NULL, NULL); - if (acceptSocket == SOCKET_ERROR) - { - break; - } - /* Abort on error or the connection was closed */ - recvResult = recv(acceptSocket, inputBuffer, CHAR_ARRAY_SIZE - 1, 0); - if (recvResult == SOCKET_ERROR || recvResult == 0) - { - break; - } - /* NUL-terminate the string */ - inputBuffer[recvResult] = '\0'; - /* Convert to int */ - data = atoi(inputBuffer); - } - while (0); - if (listenSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(listenSocket); - } - if (acceptSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(acceptSocket); - } -#ifdef _WIN32 - if (wsaDataInit) - { - WSACleanup(); - } -#endif - } - { - int i; - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to write to an index of the array that is above the upper bound - * This code does check to see if the array index is negative */ - if (data >= 0) - { - buffer[data] = 1; - UNSAFE_BUFACCESS(buffer, data * sizeof(int) - 1); - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is negative."); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int data; - /* Initialize data */ - data = -1; - /* FIX: Use a value greater than 0, but less than 10 to avoid attempting to - * access an index of the array in the sink that is out-of-bounds */ - data = 7; - { - int i; - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to write to an index of the array that is above the upper bound - * This code does check to see if the array index is negative */ - if (data >= 0) - { - BOF_CHECK_GEP(buffer, data * sizeof(int), false); - buffer[data] = 1; - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is negative."); - } - } -} - -/* goodB2G uses the BadSource with the GoodSink */ -static void goodB2G() -{ - int data; - /* Initialize data */ - data = -1; - { -#ifdef _WIN32 - WSADATA wsaData; - int wsaDataInit = 0; -#endif - int recvResult; - struct sockaddr_in service; - SOCKET listenSocket = INVALID_SOCKET; - SOCKET acceptSocket = INVALID_SOCKET; - char inputBuffer[CHAR_ARRAY_SIZE]; - do - { -#ifdef _WIN32 - if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR) - { - break; - } - wsaDataInit = 1; -#endif - /* POTENTIAL FLAW: Read data using a listen socket */ - listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (listenSocket == INVALID_SOCKET) - { - break; - } - memset(&service, 0, sizeof(service)); - service.sin_family = AF_INET; - service.sin_addr.s_addr = INADDR_ANY; - service.sin_port = htons(TCP_PORT); - if (bind(listenSocket, (struct sockaddr*)&service, sizeof(service)) == SOCKET_ERROR) - { - break; - } - if (listen(listenSocket, LISTEN_BACKLOG) == SOCKET_ERROR) - { - break; - } - acceptSocket = accept(listenSocket, NULL, NULL); - if (acceptSocket == SOCKET_ERROR) - { - break; - } - /* Abort on error or the connection was closed */ - recvResult = recv(acceptSocket, inputBuffer, CHAR_ARRAY_SIZE - 1, 0); - if (recvResult == SOCKET_ERROR || recvResult == 0) - { - break; - } - /* NUL-terminate the string */ - inputBuffer[recvResult] = '\0'; - /* Convert to int */ - data = atoi(inputBuffer); - } - while (0); - if (listenSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(listenSocket); - } - if (acceptSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(acceptSocket); - } -#ifdef _WIN32 - if (wsaDataInit) - { - WSACleanup(); - } -#endif - } - { - int i; - int buffer[10] = { 0 }; - /* FIX: Properly validate the array index and prevent a buffer overflow */ - if (data >= 0 && data < (10)) - { - buffer[data] = 1; - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is out-of-bounds"); - } - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good() -{ - goodG2B(); - goodB2G(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c deleted file mode 100644 index a67b323e..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c +++ /dev/null @@ -1,146 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE129.label.xml -Template File: sources-sinks-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: rand Set data to result of rand(), which may be zero - * GoodSource: Larger than zero but less than 10 - * Sinks: - * GoodSink: Ensure the array index is valid - * BadSink : Improperly check the array index by not checking the upper bound - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01_bad() -{ - int data; - /* Initialize data */ - data = -1; - /* POTENTIAL FLAW: Set data to a random value */ - data = RAND32(); - { - int i; - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to write to an index of the array that is above the upper bound - * This code does check to see if the array index is negative */ - if (data >= 0) - { - buffer[data] = 1; - UNSAFE_BUFACCESS(buffer, data * sizeof(int) - 1); - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is negative."); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int data; - /* Initialize data */ - data = -1; - /* FIX: Use a value greater than 0, but less than 10 to avoid attempting to - * access an index of the array in the sink that is out-of-bounds */ - data = 7; - { - int i; - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to write to an index of the array that is above the upper bound - * This code does check to see if the array index is negative */ - if (data >= 0) - { - buffer[data] = 1; - SAFE_BUFACCESS(buffer, data * sizeof(int) - 1); - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is negative."); - } - } -} - -/* goodB2G uses the BadSource with the GoodSink */ -static void goodB2G() -{ - int data; - /* Initialize data */ - data = -1; - /* POTENTIAL FLAW: Set data to a random value */ - data = RAND32(); - { - int i; - int buffer[10] = { 0 }; - /* FIX: Properly validate the array index and prevent a buffer overflow */ - if (data >= 0 && data < (10)) - { - buffer[data] = 1; - /* Print the array values */ - for(i = 0; i < 10; i++) - { - printIntLine(buffer[i]); - } - } - else - { - printLine("ERROR: Array index is out-of-bounds"); - } - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01_good() -{ - goodG2B(); - goodB2G(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c deleted file mode 100644 index 0fe33c7a..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c +++ /dev/null @@ -1,101 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE131.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Allocate memory without using sizeof(int) - * GoodSource: Allocate memory using sizeof(int) - * Sink: loop - * BadSink : Copy array to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01_bad() -{ - int * data; - data = NULL; - /* FLAW: Allocate memory without using sizeof(int) */ - data = (int *)ALLOCA(10); - { - int source[10] = {0}; - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - for (i = 0; i < 10; i++) - { - data[i] = source[i]; - } - SAFE_BUFACCESS(source, 10 * sizeof(int) - 1); - UNSAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - printIntLine(data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int * data; - data = NULL; - /* FIX: Allocate memory using sizeof(int) */ - data = (int *)ALLOCA(10*sizeof(int)); - { - int source[10] = {0}; - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - for (i = 0; i < 10; i++) - { - data[i] = source[i]; - SAFE_BUFACCESS(data, (i+1) * sizeof(int) - 1); - SAFE_BUFACCESS(source, (i+1) * sizeof(int) - 1); - } - SAFE_BUFACCESS(source, 10 * sizeof(int) - 1); - SAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - - printIntLine(data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c deleted file mode 100644 index ab51ff5b..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c +++ /dev/null @@ -1,92 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE131.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Allocate memory without using sizeof(int) - * GoodSource: Allocate memory using sizeof(int) - * Sink: memcpy - * BadSink : Copy array to data using memcpy() - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01_bad() -{ - int * data; - data = NULL; - /* FLAW: Allocate memory without using sizeof(int) */ - data = (int *)ALLOCA(10); - { - int source[10] = {0}; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - - memcpy(data, source, 10*sizeof(int)); - - UNSAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - SAFE_BUFACCESS(source, 10 * sizeof(int) - 1); - printIntLine(data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int * data; - data = NULL; - /* FIX: Allocate memory using sizeof(int) */ - data = (int *)ALLOCA(10*sizeof(int)); - { - int source[10] = {0}; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - memcpy(data, source, 10*sizeof(int)); - SAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - SAFE_BUFACCESS(source, 10 * sizeof(int) - 1); - printIntLine(data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c deleted file mode 100644 index 11919990..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c +++ /dev/null @@ -1,103 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE193.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Point data to a buffer that does not have space for a NULL terminator - * GoodSource: Point data to a buffer that includes space for a NULL terminator - * Sink: cpy - * BadSink : Copy string to data using strcpy() - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef _WIN32 -#include -#endif - -/* MAINTENANCE NOTE: The length of this string should equal the 10 */ -#define SRC_STRING "AAAAAAAAAA" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01_bad() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA((10)*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA((10+1)*sizeof(char)); - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* POTENTIAL FLAW: data may not have enough space to hold source */ - strcpy(data, source); - UNSAFE_BUFACCESS(data, 11 - 1); - SAFE_BUFACCESS(source, 11 - 1); - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA((10)*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA((10+1)*sizeof(char)); - /* FIX: Set a pointer to a buffer that leaves room for a NULL terminator when performing - * string copies in the sinks */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* POTENTIAL FLAW: data may not have enough space to hold source */ - strcpy(data, source); - SAFE_BUFACCESS(data, 11 - 1); - SAFE_BUFACCESS(source, 11 - 1); - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c deleted file mode 100644 index 1c3288d6..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c +++ /dev/null @@ -1,105 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE193.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Point data to a buffer that does not have space for a NULL terminator - * GoodSource: Point data to a buffer that includes space for a NULL terminator - * Sink: memcpy - * BadSink : Copy string to data using memcpy() - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef _WIN32 -#include -#endif - -/* MAINTENANCE NOTE: The length of this string should equal the 10 */ -#define SRC_STRING "AAAAAAAAAA" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01_bad() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA((10)*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA((10+1)*sizeof(char)); - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* Copy length + 1 to include NUL terminator from source */ - /* POTENTIAL FLAW: data may not have enough space to hold source */ - memcpy(data, source, (strlen(source) + 1) * sizeof(char)); - UNSAFE_BUFACCESS(data, (strlen(source) + 1) * sizeof(char) - 1); - SAFE_BUFACCESS(source, (strlen(source) + 1) * sizeof(char) - 1); - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA((10)*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA((10+1)*sizeof(char)); - /* FIX: Set a pointer to a buffer that leaves room for a NULL terminator when performing - * string copies in the sinks */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* Copy length + 1 to include NUL terminator from source */ - /* POTENTIAL FLAW: data may not have enough space to hold source */ - memcpy(data, source, (strlen(source) + 1) * sizeof(char)); - SAFE_BUFACCESS(data, (strlen(source) + 1) * sizeof(char) - 1); - SAFE_BUFACCESS(source, (strlen(source) + 1) * sizeof(char) - 1); - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c deleted file mode 100644 index 5ff38411..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c +++ /dev/null @@ -1,105 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE193.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Point data to a buffer that does not have space for a NULL terminator - * GoodSource: Point data to a buffer that includes space for a NULL terminator - * Sink: memmove - * BadSink : Copy string to data using memmove() - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef _WIN32 -#include -#endif - -/* MAINTENANCE NOTE: The length of this string should equal the 10 */ -#define SRC_STRING "AAAAAAAAAA" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01_bad() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA((10)*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA((10+1)*sizeof(char)); - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* Copy length + 1 to include NUL terminator from source */ - /* POTENTIAL FLAW: data may not have enough space to hold source */ - memmove(data, source, (strlen(source) + 1) * sizeof(char)); - UNSAFE_BUFACCESS(data, (strlen(source) + 1) * sizeof(char) - 1); - SAFE_BUFACCESS(source, (strlen(source) + 1) * sizeof(char) - 1); - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA((10)*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA((10+1)*sizeof(char)); - /* FIX: Set a pointer to a buffer that leaves room for a NULL terminator when performing - * string copies in the sinks */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* Copy length + 1 to include NUL terminator from source */ - /* POTENTIAL FLAW: data may not have enough space to hold source */ - memmove(data, source, (strlen(source) + 1) * sizeof(char)); - SAFE_BUFACCESS(data, (strlen(source) + 1) * sizeof(char) - 1); - SAFE_BUFACCESS(source, (strlen(source) + 1) * sizeof(char) - 1); - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c deleted file mode 100644 index 867e5768..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c +++ /dev/null @@ -1,105 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE193.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Point data to a buffer that does not have space for a NULL terminator - * GoodSource: Point data to a buffer that includes space for a NULL terminator - * Sink: memmove - * BadSink : Copy string to data using memmove() - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef _WIN32 -#include -#endif - -/* MAINTENANCE NOTE: The length of this string should equal the 10 */ -#define SRC_STRING "AAAAAAAAAA" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01_bad() -{ - char * data; - char dataBadBuffer[10]; - char dataGoodBuffer[10+1]; - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* Copy length + 1 to include NUL terminator from source */ - /* POTENTIAL FLAW: data may not have enough space to hold source */ - memmove(data, source, (strlen(source) + 1) * sizeof(char)); - UNSAFE_BUFACCESS(data, (strlen(source) + 1) * sizeof(char) - 1); - SAFE_BUFACCESS(source, (strlen(source) + 1) * sizeof(char) - 1); - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char dataBadBuffer[10]; - char dataGoodBuffer[10+1]; - /* FIX: Set a pointer to a buffer that leaves room for a NULL terminator when performing - * string copies in the sinks */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[10+1] = SRC_STRING; - /* Copy length + 1 to include NUL terminator from source */ - /* POTENTIAL FLAW: data may not have enough space to hold source */ - memmove(data, source, (strlen(source) + 1) * sizeof(char)); - SAFE_BUFACCESS(data, (strlen(source) + 1) * sizeof(char) - 1); - SAFE_BUFACCESS(source, (strlen(source) + 1) * sizeof(char) - 1); - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c deleted file mode 100644 index 11221f97..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c +++ /dev/null @@ -1,103 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE193.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Point data to a buffer that does not have space for a NULL terminator - * GoodSource: Point data to a buffer that includes space for a NULL terminator - * Sink: cpy - * BadSink : Copy string to data using wcscpy() - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef _WIN32 -#include -#endif - -/* MAINTENANCE NOTE: The length of this string should equal the 10 */ -#define SRC_STRING L"AAAAAAAAAA" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01_bad() -{ - wchar_t * data; - wchar_t dataBadBuffer[10]; - wchar_t dataGoodBuffer[10+1]; - /* FLAW: Set a pointer to a buffer that does not leave room for a NULL terminator when performing - * string copies in the sinks */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[10+1] = SRC_STRING; - /* POTENTIAL FLAW: data may not have enough space to hold source */ - wcscpy(data, source); - UNSAFE_BUFACCESS(data, 11 * sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 11 * sizeof(wchar_t) - 1); - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBadBuffer[10]; - wchar_t dataGoodBuffer[10+1]; - /* FIX: Set a pointer to a buffer that leaves room for a NULL terminator when performing - * string copies in the sinks */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[10+1] = SRC_STRING; - /* POTENTIAL FLAW: data may not have enough space to hold source */ - wcscpy(data, source); - SAFE_BUFACCESS(data, 11 * sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 11 * sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c deleted file mode 100644 index 76cccb07..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c +++ /dev/null @@ -1,114 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: loop - * BadSink : Copy string to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01_bad() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA(50*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA(100*sizeof(char)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - size_t i; - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - } - UNSAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA(50*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA(100*sizeof(char)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - size_t i; - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - SAFE_BUFACCESS(data, i); - SAFE_BUFACCESS(source, i); - } - SAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c deleted file mode 100644 index 92bc0988..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c +++ /dev/null @@ -1,103 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memcpy - * BadSink : Copy string to data using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01_bad() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA(50*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA(100*sizeof(char)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - memcpy(data, source, 100*sizeof(char)); - UNSAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA(50*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA(100*sizeof(char)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - memcpy(data, source, 100*sizeof(char)); - SAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c deleted file mode 100644 index 361b0437..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c +++ /dev/null @@ -1,104 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memmove - * BadSink : Copy string to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01_bad() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - memmove(data, source, 100*sizeof(char)); - UNSAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - - memmove(data, source, 100*sizeof(char)); - SAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c deleted file mode 100644 index d1ca616e..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c +++ /dev/null @@ -1,103 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: ncpy - * BadSink : Copy string to data using strncpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01_bad() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - strncpy(data, source, 100-1); - UNSAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - strncpy(data, source, 100-1); - SAFE_BUFACCESS(data, 100 - 1); - SAFE_BUFACCESS(source, 100 - 1); - data[100-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c deleted file mode 100644 index 1172b8c0..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c +++ /dev/null @@ -1,93 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memmove - * BadSink : Copy int64_t array to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01_bad() -{ - int64_t * data; - int64_t * dataBadBuffer = (int64_t *)ALLOCA(50*sizeof(int64_t)); - int64_t * dataGoodBuffer = (int64_t *)ALLOCA(100*sizeof(int64_t)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int64_t)); - UNSAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int64_t * data; - int64_t * dataBadBuffer = (int64_t *)ALLOCA(50*sizeof(int64_t)); - int64_t * dataGoodBuffer = (int64_t *)ALLOCA(100*sizeof(int64_t)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int64_t)); - SAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c deleted file mode 100644 index 2913a8a7..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c +++ /dev/null @@ -1,107 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: loop - * BadSink : Copy int64_t array to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01_bad() -{ - int64_t * data; - int64_t dataBadBuffer[50]; - int64_t dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - { - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - } - UNSAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int64_t * data; - int64_t dataBadBuffer[50]; - int64_t dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - { - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - SAFE_BUFACCESS(data, (i+1)*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, (i+1)*sizeof(int64_t) - 1); - } - SAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c deleted file mode 100644 index b06865ba..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c +++ /dev/null @@ -1,93 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memcpy - * BadSink : Copy int64_t array to data using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01_bad() -{ - int64_t * data; - int64_t dataBadBuffer[50]; - int64_t dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(int64_t)); - UNSAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int64_t * data; - int64_t dataBadBuffer[50]; - int64_t dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(int64_t)); - SAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c deleted file mode 100644 index 13cb7101..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c +++ /dev/null @@ -1,93 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memmove - * BadSink : Copy int64_t array to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01_bad() -{ - int64_t * data; - int64_t dataBadBuffer[50]; - int64_t dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int64_t)); - UNSAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int64_t * data; - int64_t dataBadBuffer[50]; - int64_t dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int64_t)); - SAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c deleted file mode 100644 index 8ccd6a19..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c +++ /dev/null @@ -1,107 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: loop - * BadSink : Copy int array to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01_bad() -{ - int * data; - int * dataBadBuffer = (int *)ALLOCA(50*sizeof(int)); - int * dataGoodBuffer = (int *)ALLOCA(100*sizeof(int)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - int source[100] = {0}; /* fill with 0's */ - { - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - } - UNSAFE_BUFACCESS(data, 100*sizeof(int) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int) - 1); - printIntLine(data[0]); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int * data; - int * dataBadBuffer = (int *)ALLOCA(50*sizeof(int)); - int * dataGoodBuffer = (int *)ALLOCA(100*sizeof(int)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - int source[100] = {0}; /* fill with 0's */ - { - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - SAFE_BUFACCESS(data, (i+1)*sizeof(int) - 1); - SAFE_BUFACCESS(source, (i+1)*sizeof(int) - 1); - } - SAFE_BUFACCESS(data, 100*sizeof(int) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int) - 1); - printIntLine(data[0]); - } - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c deleted file mode 100644 index c4e62e65..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c +++ /dev/null @@ -1,93 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memcpy - * BadSink : Copy int array to data using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01_bad() -{ - int * data; - int * dataBadBuffer = (int *)ALLOCA(50*sizeof(int)); - int * dataGoodBuffer = (int *)ALLOCA(100*sizeof(int)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - int source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(int)); - UNSAFE_BUFACCESS(data, 100*sizeof(int) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int) - 1); - printIntLine(data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int * data; - int * dataBadBuffer = (int *)ALLOCA(50*sizeof(int)); - int * dataGoodBuffer = (int *)ALLOCA(100*sizeof(int)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - int source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(int)); - SAFE_BUFACCESS(data, 100*sizeof(int) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int) - 1); - printIntLine(data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c deleted file mode 100644 index af94d659..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c +++ /dev/null @@ -1,111 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memmove - * BadSink : Copy twoIntsStruct array to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01_bad() -{ - twoIntsStruct * data; - twoIntsStruct * dataBadBuffer = (twoIntsStruct *)ALLOCA(50*sizeof(twoIntsStruct)); - twoIntsStruct * dataGoodBuffer = (twoIntsStruct *)ALLOCA(100*sizeof(twoIntsStruct)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - twoIntsStruct source[100]; - { - size_t i; - /* Initialize array */ - for (i = 0; i < 100; i++) - { - source[i].intOne = 0; - source[i].intTwo = 0; - } - } - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(twoIntsStruct)); - UNSAFE_BUFACCESS(data, 100*sizeof(twoIntsStruct) - 1); - SAFE_BUFACCESS(source, 100*sizeof(twoIntsStruct) - 1); - printStructLine(&data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - twoIntsStruct * data; - twoIntsStruct * dataBadBuffer = (twoIntsStruct *)ALLOCA(50*sizeof(twoIntsStruct)); - twoIntsStruct * dataGoodBuffer = (twoIntsStruct *)ALLOCA(100*sizeof(twoIntsStruct)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - twoIntsStruct source[100]; - { - size_t i; - /* Initialize array */ - for (i = 0; i < 100; i++) - { - source[i].intOne = 0; - source[i].intTwo = 0; - } - } - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(twoIntsStruct)); - SAFE_BUFACCESS(data, 100*sizeof(twoIntsStruct) - 1); - SAFE_BUFACCESS(source, 100*sizeof(twoIntsStruct) - 1); - printStructLine(&data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c deleted file mode 100644 index b7e0857f..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c +++ /dev/null @@ -1,111 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memmove - * BadSink : Copy twoIntsStruct array to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01_bad() -{ - twoIntsStruct * data; - twoIntsStruct dataBadBuffer[50]; - twoIntsStruct dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - { - twoIntsStruct source[100]; - { - size_t i; - /* Initialize array */ - for (i = 0; i < 100; i++) - { - source[i].intOne = 0; - source[i].intTwo = 0; - } - } - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(twoIntsStruct)); - UNSAFE_BUFACCESS(data, 100*sizeof(twoIntsStruct) - 1); - SAFE_BUFACCESS(source, 100*sizeof(twoIntsStruct) - 1); - printStructLine(&data[0]); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - twoIntsStruct * data; - twoIntsStruct dataBadBuffer[50]; - twoIntsStruct dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - { - twoIntsStruct source[100]; - { - size_t i; - /* Initialize array */ - for (i = 0; i < 100; i++) - { - source[i].intOne = 0; - source[i].intTwo = 0; - } - } - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(twoIntsStruct)); - SAFE_BUFACCESS(data, 100*sizeof(twoIntsStruct) - 1); - SAFE_BUFACCESS(source, 100*sizeof(twoIntsStruct) - 1); - printStructLine(&data[0]); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c deleted file mode 100644 index 12157352..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c +++ /dev/null @@ -1,111 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: loop - * BadSink : Copy string to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01_bad() -{ - wchar_t * data; - wchar_t * dataBadBuffer = (wchar_t *)ALLOCA(50*sizeof(wchar_t)); - wchar_t * dataGoodBuffer = (wchar_t *)ALLOCA(100*sizeof(wchar_t)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - size_t i; - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - } - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t * dataBadBuffer = (wchar_t *)ALLOCA(50*sizeof(wchar_t)); - wchar_t * dataGoodBuffer = (wchar_t *)ALLOCA(100*sizeof(wchar_t)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - size_t i; - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - } - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c deleted file mode 100644 index 61645185..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c +++ /dev/null @@ -1,107 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: swprintf - * BadSink : Copy string to data using swprintf - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifdef _WIN32 -#define SNPRINTF _snwprintf -#else -#define SNPRINTF swprintf -#endif - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01_bad() -{ - wchar_t * data; - wchar_t * dataBadBuffer = (wchar_t *)ALLOCA(50*sizeof(wchar_t)); - wchar_t * dataGoodBuffer = (wchar_t *)ALLOCA(100*sizeof(wchar_t)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - SNPRINTF(data, 100, L"%s", source); - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t * dataBadBuffer = (wchar_t *)ALLOCA(50*sizeof(wchar_t)); - wchar_t * dataGoodBuffer = (wchar_t *)ALLOCA(100*sizeof(wchar_t)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - SNPRINTF(data, 100, L"%s", source); - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c deleted file mode 100644 index c0641777..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c +++ /dev/null @@ -1,111 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: loop - * BadSink : Copy string to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01_bad() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - size_t i; - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - } - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - size_t i; - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - for (i = 0; i < 100; i++) - { - data[i] = source[i]; - } - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c deleted file mode 100644 index 645c17ca..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c +++ /dev/null @@ -1,103 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memcpy - * BadSink : Copy string to data using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01_bad() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - memcpy(data, source, 100*sizeof(wchar_t)); - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - memcpy(data, source, 100*sizeof(wchar_t)); - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c deleted file mode 100644 index c2a91ef7..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c +++ /dev/null @@ -1,103 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: memmove - * BadSink : Copy string to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01_bad() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - memmove(data, source, 100*sizeof(wchar_t)); - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - memmove(data, source, 100*sizeof(wchar_t)); - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c deleted file mode 100644 index 99ce9aef..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c +++ /dev/null @@ -1,107 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: swprintf - * BadSink : Copy string to data using swprintf - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifdef _WIN32 -#define SNPRINTF _snwprintf -#else -#define SNPRINTF swprintf -#endif - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01_bad() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - SNPRINTF(data, 100, L"%s", source); - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - SNPRINTF(data, 100, L"%s", source); - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c deleted file mode 100644 index 8647a9fb..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c +++ /dev/null @@ -1,110 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE806.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: loop - * BadSink : Copy data to string using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01_bad() -{ - char * data; - char dataBuffer[100]; - data = dataBuffer; - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - memset(data, 'A', 100-1); /* fill with 'A's */ - data[100-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - size_t i, dataLen; - dataLen = strlen(data); - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - for (i = 0; i < dataLen; i++) - { - dest[i] = data[i]; - } - dest[50-1] = '\0'; /* Ensure the destination buffer is null terminated */ - UNSAFE_BUFACCESS(dest, dataLen - 1); - SAFE_BUFACCESS(data, dataLen - 1); - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char dataBuffer[100]; - data = dataBuffer; - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - memset(data, 'A', 50-1); /* fill with 'A's */ - data[50-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - size_t i, dataLen; - dataLen = strlen(data); - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - for (i = 0; i < dataLen; i++) - { - dest[i] = data[i]; - SAFE_BUFACCESS(dest, i); - SAFE_BUFACCESS(data, i); - } - SAFE_BUFACCESS(dest, dataLen - 1); - SAFE_BUFACCESS(data, dataLen - 1); - dest[50-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c deleted file mode 100644 index 2efdb574..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c +++ /dev/null @@ -1,98 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE806.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: ncpy - * BadSink : Copy data to string using strncpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01_bad() -{ - char * data; - char dataBuffer[100]; - data = dataBuffer; - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - memset(data, 'A', 100-1); /* fill with 'A's */ - data[100-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - strncpy(dest, data, strlen(data)); - UNSAFE_BUFACCESS(dest, strlen(data) - 1); - SAFE_BUFACCESS(data, strlen(data) - 1); - dest[50-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char dataBuffer[100]; - data = dataBuffer; - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - memset(data, 'A', 50-1); /* fill with 'A's */ - data[50-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - strncpy(dest, data, strlen(data)); - SAFE_BUFACCESS(dest, strlen(data) - 1); - SAFE_BUFACCESS(data, strlen(data) - 1); - dest[50-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c deleted file mode 100644 index 4391e753..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c +++ /dev/null @@ -1,98 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__CWE806.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: memcpy - * BadSink : Copy data to string using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01_bad() -{ - wchar_t * data; - wchar_t dataBuffer[100]; - data = dataBuffer; - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - wmemset(data, L'A', 100-1); /* fill with L'A's */ - data[100-1] = L'\0'; /* null terminate */ - { - wchar_t dest[50] = L""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - memcpy(dest, data, wcslen(data)*sizeof(wchar_t)); - UNSAFE_BUFACCESS(dest, wcslen(data)*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, wcslen(data)*sizeof(wchar_t) - 1); - dest[50-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBuffer[100]; - data = dataBuffer; - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - wmemset(data, L'A', 50-1); /* fill with L'A's */ - data[50-1] = L'\0'; /* null terminate */ - { - wchar_t dest[50] = L""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - memcpy(dest, data, wcslen(data)*sizeof(wchar_t)); - SAFE_BUFACCESS(dest, wcslen(data)*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, wcslen(data)*sizeof(wchar_t) - 1); - dest[50-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c deleted file mode 100644 index 19cbdd50..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c +++ /dev/null @@ -1,101 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__dest.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Set data pointer to the bad buffer - * GoodSource: Set data pointer to the good buffer - * Sink: cpy - * BadSink : Copy string to data using wcscpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01_bad() -{ - wchar_t * data; - wchar_t * dataBadBuffer = (wchar_t *)ALLOCA(50*sizeof(wchar_t)); - wchar_t * dataGoodBuffer = (wchar_t *)ALLOCA(100*sizeof(wchar_t)); - /* FLAW: Set a pointer to a "small" buffer. This buffer will be used in the sinks as a destination - * buffer in various memory copying functions using a "large" source buffer. */ - data = dataBadBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - wcscpy(data, source); - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t * dataBadBuffer = (wchar_t *)ALLOCA(50*sizeof(wchar_t)); - wchar_t * dataGoodBuffer = (wchar_t *)ALLOCA(100*sizeof(wchar_t)); - /* FIX: Set a pointer to a "large" buffer, thus avoiding buffer overflows in the sinks. */ - data = dataGoodBuffer; - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if the size of data is less than the length of source */ - wcscpy(data, source); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c deleted file mode 100644 index da8e97e1..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c +++ /dev/null @@ -1,96 +0,0 @@ - /* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__src.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: cpy - * BadSink : Copy data to string using strcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01_bad() -{ - char * data; - char * dataBuffer = (char *)ALLOCA(100*sizeof(char)); - data = dataBuffer; - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - memset(data, 'A', 100-1); /* fill with 'A's */ - data[100-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - strcpy(dest, data); - UNSAFE_BUFACCESS(dest, 100 - 1); - SAFE_BUFACCESS(data, 100 - 1); - printLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char * dataBuffer = (char *)ALLOCA(100*sizeof(char)); - data = dataBuffer; - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - memset(data, 'A', 50-1); /* fill with 'A's */ - data[50-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - strcpy(dest, data); - SAFE_BUFACCESS(dest, 50 - 1); - SAFE_BUFACCESS(data, 50 - 1); - printLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c b/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c deleted file mode 100644 index 7c2403b7..00000000 --- a/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c +++ /dev/null @@ -1,96 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c -Label Definition File: CWE121_Stack_Based_Buffer_Overflow__src.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 121 Stack Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: cpy - * BadSink : Copy data to string using wcscpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01_bad() -{ - wchar_t * data; - wchar_t dataBuffer[100]; - data = dataBuffer; - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - wmemset(data, L'A', 100-1); /* fill with L'A's */ - data[100-1] = L'\0'; /* null terminate */ - { - wchar_t dest[50] = L""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - wcscpy(dest, data); - UNSAFE_BUFACCESS(dest, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBuffer[100]; - data = dataBuffer; - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - wmemset(data, L'A', 50-1); /* fill with L'A's */ - data[50-1] = L'\0'; /* null terminate */ - { - wchar_t dest[50] = L""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - wcscpy(dest, data); - SAFE_BUFACCESS(dest, 50*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, 50*sizeof(wchar_t) - 1); - printWLine(data); - } -} - -void CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c deleted file mode 100644 index 88bc1fe7..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c +++ /dev/null @@ -1,101 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__CWE131.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate memory without using sizeof(int) - * GoodSource: Allocate memory using sizeof(int) - * Sink: loop - * BadSink : Copy array to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01_bad() -{ - int * data; - data = NULL; - /* FLAW: Allocate memory without using sizeof(int) */ - data = (int *)malloc(10); - if (data == NULL) {exit(-1);} - { - int source[10] = {0}; - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - for (i = 0; i < 10; i++) - { - data[i] = source[i]; - } - UNSAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - printIntLine(data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int * data; - data = NULL; - /* FIX: Allocate memory using sizeof(int) */ - data = (int *)malloc(10*sizeof(int)); - if (data == NULL) {exit(-1);} - { - int source[10] = {0}; - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - for (i = 0; i < 10; i++) - { - data[i] = source[i]; - SAFE_BUFACCESS(data, (i + 1) * sizeof(int) - 1); - } - SAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - printIntLine(data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c deleted file mode 100644 index e42715f7..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c +++ /dev/null @@ -1,96 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__CWE131.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate memory without using sizeof(int) - * GoodSource: Allocate memory using sizeof(int) - * Sink: memcpy - * BadSink : Copy array to data using memcpy() - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01_bad() -{ - int * data; - data = NULL; - /* FLAW: Allocate memory without using sizeof(int) */ - data = (int *)malloc(10); - if (data == NULL) {exit(-1);} - { - int source[10] = {0}; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - memcpy(data, source, 10*sizeof(int)); - UNSAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - SAFE_BUFACCESS(source, 10 * sizeof(int) - 1); - - printIntLine(data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int * data; - data = NULL; - /* FIX: Allocate memory using sizeof(int) */ - data = (int *)malloc(10*sizeof(int)); - if (data == NULL) {exit(-1);} - { - int source[10] = {0}; - /* POTENTIAL FLAW: Possible buffer overflow if data was not allocated correctly in the source */ - memcpy(data, source, 10*sizeof(int)); - SAFE_BUFACCESS(data, 10 * sizeof(int) - 1); - SAFE_BUFACCESS(source, 10 * sizeof(int) - 1); - - printIntLine(data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c deleted file mode 100644 index b6806041..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c +++ /dev/null @@ -1,94 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE680.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Set dataSize to a large value causing integer overflow - * GoodSource: Set dataSize to a small, safe value - * Sink: malloc - * BadSink : Allocate memory using malloc() and initialize it - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_bad() -{ - int * data; - int dataSize; - /* FLAW: Set dataSize to a value that will cause an integer overflow in malloc */ - dataSize = INT_MAX / sizeof(int) + 2; - /* POTENTIAL FLAW: dataSize * sizeof(int) may overflow to a small value */ - data = (int *)malloc(dataSize * sizeof(int)); - if (data == NULL) {exit(-1);} - { - size_t i; - /* POTENTIAL FLAW: May write beyond allocated memory if dataSize * sizeof(int) overflows */ - for (i = 0; i < (size_t)dataSize; i++) - { - data[i] = 0; - } - UNSAFE_BUFACCESS(data, dataSize * sizeof(int) - 1); - printIntLine(data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -static void goodG2B() -{ - int * data; - int dataSize; - /* FIX: Set dataSize to a small, safe value */ - dataSize = 20; - data = (int *)malloc(dataSize * sizeof(int)); - if (data == NULL) {exit(-1);} - { - size_t i; - /* SAFE: dataSize is small and does not cause overflow */ - for (i = 0; i < (size_t)dataSize; i++) - { - data[i] = 0; - SAFE_BUFACCESS(data, i * sizeof(int)); - } - printIntLine(data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c deleted file mode 100644 index ee3cf828..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c +++ /dev/null @@ -1,85 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate buffer of insufficient size - * GoodSource: Allocate buffer with sufficient size - * Sink: scanf - * BadSink : Read data from the console using scanf without limit - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_bad() -{ - char * data; - data = NULL; - /* FLAW: Allocate a small buffer */ - data = (char *)malloc(10 * sizeof(char)); - if (data == NULL) {exit(-1);} - /* POTENTIAL FLAW: Using scanf without specifying length limit */ - printLine("Enter a string:"); - scanf("%s", data); /* May cause buffer overflow */ - UNSAFE_BUFACCESS(data, strlen(data) * sizeof(char)); - printLine(data); - free(data); -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -static void goodG2B() -{ - char * data; - data = NULL; - /* FIX: Allocate a larger buffer */ - data = (char *)malloc(100 * sizeof(char)); - if (data == NULL) {exit(-1);} - /* FIX: Use scanf with length limit */ - printLine("Enter a string:"); - scanf("%99s", data); /* Limits input to 99 characters */ - SAFE_BUFACCESS(data, 99 * sizeof(char)); - printLine(data); - free(data); -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is used when building this testcase on its own - * for testing or for building a binary to use in testing binary analysis tools. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c deleted file mode 100644 index 5524c8b1..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c +++ /dev/null @@ -1,94 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: memcpy - * BadSink : Copy int64_t array to data using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01_bad() -{ - int64_t * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (int64_t *)malloc(50*sizeof(int64_t)); - if (data == NULL) {exit(-1);} - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(int64_t)); - UNSAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int64_t * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (int64_t *)malloc(100*sizeof(int64_t)); - if (data == NULL) {exit(-1);} - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(int64_t)); - SAFE_BUFACCESS(data, 100*sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(int64_t) - 1); - printLongLongLine(data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c deleted file mode 100644 index 4abd2797..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c +++ /dev/null @@ -1,94 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: memmove - * BadSink : Copy int64_t array to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01_bad() -{ - int64_t * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (int64_t *)malloc(50*sizeof(int64_t)); - if (data == NULL) {exit(-1);} - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int64_t)); - UNSAFE_BUFACCESS(data, 100 * sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(int64_t) - 1); - printLongLongLine(data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int64_t * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (int64_t *)malloc(100*sizeof(int64_t)); - if (data == NULL) {exit(-1);} - { - int64_t source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int64_t)); - SAFE_BUFACCESS(data, 100 * sizeof(int64_t) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(int64_t) - 1); - printLongLongLine(data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c deleted file mode 100644 index b699280f..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c +++ /dev/null @@ -1,94 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: memmove - * BadSink : Copy int array to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01_bad() -{ - int * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (int *)malloc(50*sizeof(int)); - if (data == NULL) {exit(-1);} - { - int source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int)); - UNSAFE_BUFACCESS(data, 100 * sizeof(int) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(int) - 1); - printIntLine(data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (int *)malloc(100*sizeof(int)); - if (data == NULL) {exit(-1);} - { - int source[100] = {0}; /* fill with 0's */ - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memmove(data, source, 100*sizeof(int)); - SAFE_BUFACCESS(data, 100 * sizeof(int) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(int) - 1); - printIntLine(data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c deleted file mode 100644 index 2207c6cb..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c +++ /dev/null @@ -1,106 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate buffer for fewer elements than needed - * GoodSource: Allocate buffer with sufficient elements - * Sink: loop - * BadSink : Copy struct array to data using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_bad() -{ - twoIntsStruct * data; - data = NULL; - /* FLAW: Allocate buffer for 5 elements */ - data = (twoIntsStruct *)malloc(5 * sizeof(twoIntsStruct)); - if (data == NULL) {exit(-1);} - { - twoIntsStruct source[10]; - size_t i; - /* Initialize source array */ - for (i = 0; i < 10; i++) - { - source[i].intOne = (int)i; - source[i].intTwo = (int)i; - } - /* POTENTIAL FLAW: Possible buffer overflow if data has fewer than 10 elements */ - for (i = 0; i < 10; i++) - { - data[i] = source[i]; - if (i > 5) - UNSAFE_BUFACCESS(data, i * sizeof(twoIntsStruct)); - } - printStructLine(&data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -static void goodG2B() -{ - twoIntsStruct * data; - data = NULL; - /* FIX: Allocate buffer for 10 elements */ - data = (twoIntsStruct *)malloc(10 * sizeof(twoIntsStruct)); - if (data == NULL) {exit(-1);} - { - twoIntsStruct source[10]; - size_t i; - /* Initialize source array */ - for (i = 0; i < 10; i++) - { - source[i].intOne = (int)i; - source[i].intTwo = (int)i; - } - /* SAFE: data has enough space for the copy operation */ - for (i = 0; i < 10; i++) - { - data[i] = source[i]; - SAFE_BUFACCESS(data, i * sizeof(twoIntsStruct)); - } - printStructLine(&data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c deleted file mode 100644 index 7e356db9..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c +++ /dev/null @@ -1,113 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: memcpy - * BadSink : Copy twoIntsStruct array to data using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01_bad() -{ - twoIntsStruct * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (twoIntsStruct *)malloc(50*sizeof(twoIntsStruct)); - if (data == NULL) {exit(-1);} - { - twoIntsStruct source[100]; - { - size_t i; - /* Initialize array */ - for (i = 0; i < 100; i++) - { - source[i].intOne = 0; - source[i].intTwo = 0; - } - } - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(twoIntsStruct)); - UNSAFE_BUFACCESS(data, 100 * sizeof(twoIntsStruct) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(twoIntsStruct) - 1); - printStructLine(&data[0]); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - twoIntsStruct * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (twoIntsStruct *)malloc(100*sizeof(twoIntsStruct)); - if (data == NULL) {exit(-1);} - { - twoIntsStruct source[100]; - { - size_t i; - /* Initialize array */ - for (i = 0; i < 100; i++) - { - source[i].intOne = 0; - source[i].intTwo = 0; - } - } - /* POTENTIAL FLAW: Possible buffer overflow if data < 100 */ - memcpy(data, source, 100*sizeof(twoIntsStruct)); - SAFE_BUFACCESS(data, 100 * sizeof(twoIntsStruct) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(twoIntsStruct) - 1); - - printStructLine(&data[0]); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c deleted file mode 100644 index bd3058cf..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c +++ /dev/null @@ -1,105 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: memmove - * BadSink : Copy string to data using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01_bad() -{ - wchar_t * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (wchar_t *)malloc(50*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - memmove(data, source, 100*sizeof(wchar_t)); - UNSAFE_BUFACCESS(data, 100 * sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(wchar_t) - 1); - - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (wchar_t *)malloc(100*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - memmove(data, source, 100*sizeof(wchar_t)); - SAFE_BUFACCESS(data, 100 * sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(wchar_t) - 1); - data[100-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c deleted file mode 100644 index b002b687..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c +++ /dev/null @@ -1,108 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE805.string.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: swprintf - * BadSink : Copy string to data using swprintf - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifdef _WIN32 -#define SNPRINTF _snwprintf -#else -#define SNPRINTF swprintf -#endif - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01_bad() -{ - wchar_t * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (wchar_t *)malloc(50*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - SNPRINTF(data, 100, L"%s", source); - UNSAFE_BUFACCESS(data, 100 * sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(wchar_t) - 1); - printWLine(data); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (wchar_t *)malloc(100*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - SNPRINTF(data, 100, L"%s", source); - SAFE_BUFACCESS(data, 100 * sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100 * sizeof(wchar_t) - 1); - printWLine(data); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c deleted file mode 100644 index a05af065..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c +++ /dev/null @@ -1,101 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE806.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: memmove - * BadSink : Copy data to string using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01_bad() -{ - char * data; - data = (char *)malloc(100*sizeof(char)); - if (data == NULL) {exit(-1);} - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - memset(data, 'A', 100-1); /* fill with 'A's */ - data[100-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - memmove(dest, data, strlen(data)*sizeof(char)); - UNSAFE_BUFACCESS(dest, strlen(data) * sizeof(char) - 1); - SAFE_BUFACCESS(data, strlen(data) * sizeof(char) - 1); - - dest[50-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - data = (char *)malloc(100*sizeof(char)); - if (data == NULL) {exit(-1);} - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - memset(data, 'A', 50-1); /* fill with 'A's */ - data[50-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - memmove(dest, data, strlen(data)*sizeof(char)); - SAFE_BUFACCESS(dest, strlen(data) * sizeof(char) - 1); - SAFE_BUFACCESS(data, strlen(data) * sizeof(char) - 1); - dest[50-1] = '\0'; /* Ensure the destination buffer is null terminated */ - printLine(data); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c deleted file mode 100644 index 79460051..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c +++ /dev/null @@ -1,102 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_CWE806.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: memmove - * BadSink : Copy data to string using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01_bad() -{ - wchar_t * data; - data = (wchar_t *)malloc(100*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - wmemset(data, L'A', 100-1); /* fill with L'A's */ - data[100-1] = L'\0'; /* null terminate */ - { - wchar_t dest[50] = L""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - memmove(dest, data, wcslen(data)*sizeof(wchar_t)); - UNSAFE_BUFACCESS(dest, wcslen(data)*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, wcslen(data)*sizeof(wchar_t) - 1); - - dest[50-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - data = (wchar_t *)malloc(100*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - wmemset(data, L'A', 50-1); /* fill with L'A's */ - data[50-1] = L'\0'; /* null terminate */ - { - wchar_t dest[50] = L""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - memmove(dest, data, wcslen(data)*sizeof(wchar_t)); - SAFE_BUFACCESS(dest, wcslen(data)*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, wcslen(data)*sizeof(wchar_t) - 1); - - dest[50-1] = L'\0'; /* Ensure the destination buffer is null terminated */ - printWLine(data); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c deleted file mode 100644 index bab65b7e..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c +++ /dev/null @@ -1,103 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_dest.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: cpy - * BadSink : Copy string to data using strcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01_bad() -{ - char * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (char *)malloc(50*sizeof(char)); - if (data == NULL) {exit(-1);} - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - strcpy(data, source); - UNSAFE_BUFACCESS(data, 100*sizeof(char) - 1); - SAFE_BUFACCESS(source, 100*sizeof(char) - 1); - printLine(data); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (char *)malloc(100*sizeof(char)); - if (data == NULL) {exit(-1);} - data[0] = '\0'; /* null terminate */ - { - char source[100]; - memset(source, 'C', 100-1); /* fill with 'C's */ - source[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - strcpy(data, source); - SAFE_BUFACCESS(data, 100*sizeof(char) - 1); - SAFE_BUFACCESS(source, 100*sizeof(char) - 1); - - printLine(data); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c deleted file mode 100644 index c9e42bb6..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c +++ /dev/null @@ -1,104 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_dest.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Allocate using malloc() and set data pointer to a small buffer - * GoodSource: Allocate using malloc() and set data pointer to a large buffer - * Sink: cpy - * BadSink : Copy string to data using wcscpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01_bad() -{ - wchar_t * data; - data = NULL; - /* FLAW: Allocate and point data to a small buffer that is smaller than the large buffer used in the sinks */ - data = (wchar_t *)malloc(50*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - wcscpy(data, source); - UNSAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - - printWLine(data); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - data = NULL; - /* FIX: Allocate and point data to a large buffer that is at least as large as the large buffer used in the sink */ - data = (wchar_t *)malloc(100*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - data[0] = L'\0'; /* null terminate */ - { - wchar_t source[100]; - wmemset(source, L'C', 100-1); /* fill with L'C's */ - source[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: Possible buffer overflow if source is larger than data */ - wcscpy(data, source); - SAFE_BUFACCESS(data, 100*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(source, 100*sizeof(wchar_t) - 1); - - printWLine(data); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c deleted file mode 100644 index 9f70aec3..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c +++ /dev/null @@ -1,99 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow__c_src.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * BadSource: Initialize data as a large string - * GoodSource: Initialize data as a small string - * Sink: cpy - * BadSink : Copy data to string using strcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01_bad() -{ - char * data; - data = (char *)malloc(100*sizeof(char)); - if (data == NULL) {exit(-1);} - /* FLAW: Initialize data as a large buffer that is larger than the small buffer used in the sink */ - memset(data, 'A', 100-1); /* fill with 'A's */ - data[100-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - strcpy(dest, data); - UNSAFE_BUFACCESS(dest, strlen(data)*sizeof(char) - 1); - SAFE_BUFACCESS(data, strlen(data)*sizeof(char) - 1); - - printLine(data); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - data = (char *)malloc(100*sizeof(char)); - if (data == NULL) {exit(-1);} - /* FIX: Initialize data as a small buffer that as small or smaller than the small buffer used in the sink */ - memset(data, 'A', 50-1); /* fill with 'A's */ - data[50-1] = '\0'; /* null terminate */ - { - char dest[50] = ""; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - strcpy(dest, data); - SAFE_BUFACCESS(dest, strlen(data)*sizeof(char) - 1); - SAFE_BUFACCESS(data, strlen(data)*sizeof(char) - 1); - printLine(data); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c b/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c deleted file mode 100644 index 2f32164f..00000000 --- a/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__realloc_01_bad() -{ - char * data; - data = NULL; - /* Allocate initial memory */ - data = (char *)malloc(100 * sizeof(char)); - if (data == NULL) {exit(-1);} - strcpy(data, "This is a long string that exceeds the reallocated buffer size."); - /* FLAW: Reallocate to a smaller buffer without checking */ - data = (char *)realloc(data, 50 * sizeof(char)); - if (data == NULL) {exit(-1);} - { - char dest[50] = ""; - size_t i; - /* POTENTIAL FLAW: Possible buffer overflow if data is larger than dest */ - for (i = 0; i < strlen(data); i++) - { - dest[i] = data[i]; - } - UNSAFE_BUFACCESS(dest, (strlen(data) - 1) * sizeof(char)); - dest[49] = '\0'; /* Ensure null termination */ - printLine(dest); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -static void goodG2B() -{ - char * data; - data = NULL; - /* Allocate initial memory */ - data = (char *)malloc(50 * sizeof(char)); - if (data == NULL) {exit(-1);} - strcpy(data, "Short string"); - /* FIX: Reallocate to a larger buffer if necessary */ - data = (char *)realloc(data, 100 * sizeof(char)); - if (data == NULL) {exit(-1);} - strcat(data, " with additional data that fits."); - { - char dest[100] = ""; - size_t i; - /* SAFE: Copy data to dest safely */ - for (i = 0; i < 99; i++) - { - dest[i] = data[i]; - SAFE_BUFACCESS(dest, i * sizeof(char)); - } - dest[99] = '\0'; /* Ensure null termination */ - printLine(dest); - free(data); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__realloc_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__realloc_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__realloc_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif \ No newline at end of file diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c deleted file mode 100644 index 8a201c2b..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c +++ /dev/null @@ -1,152 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__CWE129_fgets_01.c -Label Definition File: CWE126_Buffer_Overread__CWE129.label.xml -Template File: sources-sinks-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Overread - * BadSource: fgets Read data from the console using fgets() - * GoodSource: Larger than zero but less than 10 - * Sinks: - * GoodSink: Ensure the array index is valid - * BadSink : Improperly check the array index by not checking the upper bound - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#define CHAR_ARRAY_SIZE (3 * sizeof(data) + 2) - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__CWE129_fgets_01_bad() -{ - int data; - /* Initialize data */ - data = -1; - { - char inputBuffer[CHAR_ARRAY_SIZE] = ""; - /* POTENTIAL FLAW: Read data from the console using fgets() */ - if (fgets(inputBuffer, CHAR_ARRAY_SIZE, stdin) != NULL) - { - /* Convert to int */ - data = atoi(inputBuffer); - } - else - { - printLine("fgets() failed."); - } - } - { - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to access an index of the array that is above the upper bound - * This check does not check the upper bounds of the array index */ - if (data >= 0) - { - printIntLine(buffer[data]); - UNSAFE_BUFACCESS(buffer, data*sizeof(int)); - } - else - { - printLine("ERROR: Array index is negative"); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int data; - /* Initialize data */ - data = -1; - /* FIX: Use a value greater than 0, but less than 10 to avoid attempting to - * access an index of the array in the sink that is out-of-bounds */ - data = 7; - { - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to access an index of the array that is above the upper bound - * This check does not check the upper bounds of the array index */ - if (data >= 0) - { - printIntLine(buffer[data]); - SAFE_BUFACCESS(buffer, data*sizeof(int)); - } - else - { - printLine("ERROR: Array index is negative"); - } - } -} - -/* goodB2G uses the BadSource with the GoodSink */ -static void goodB2G() -{ - int data; - /* Initialize data */ - data = -1; - { - char inputBuffer[CHAR_ARRAY_SIZE] = ""; - /* POTENTIAL FLAW: Read data from the console using fgets() */ - if (fgets(inputBuffer, CHAR_ARRAY_SIZE, stdin) != NULL) - { - /* Convert to int */ - data = atoi(inputBuffer); - } - else - { - printLine("fgets() failed."); - } - } - { - int buffer[10] = { 0 }; - /* FIX: Properly validate the array index and prevent a buffer overread */ - if (data >= 0 && data < (10)) - { - printIntLine(buffer[data]); - } - else - { - printLine("ERROR: Array index is out-of-bounds"); - } - } -} - -void CWE126_Buffer_Overread__CWE129_fgets_01_good() -{ - goodG2B(); - goodB2G(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__CWE129_fgets_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__CWE129_fgets_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c deleted file mode 100644 index b0876d1b..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c +++ /dev/null @@ -1,128 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__CWE129_fscanf_01.c -Label Definition File: CWE126_Buffer_Overread__CWE129.label.xml -Template File: sources-sinks-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Overread - * BadSource: fscanf Read data from the console using fscanf() - * GoodSource: Larger than zero but less than 10 - * Sinks: - * GoodSink: Ensure the array index is valid - * BadSink : Improperly check the array index by not checking the upper bound - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__CWE129_fscanf_01_bad() -{ - int data; - /* Initialize data */ - data = -1; - /* POTENTIAL FLAW: Read data from the console using fscanf() */ - fscanf(stdin, "%d", &data); - { - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to access an index of the array that is above the upper bound - * This check does not check the upper bounds of the array index */ - if (data >= 0) - { - printIntLine(buffer[data]); - UNSAFE_BUFACCESS(buffer, data*sizeof(int)); - } - else - { - printLine("ERROR: Array index is negative"); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int data; - /* Initialize data */ - data = -1; - /* FIX: Use a value greater than 0, but less than 10 to avoid attempting to - * access an index of the array in the sink that is out-of-bounds */ - data = 7; - { - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to access an index of the array that is above the upper bound - * This check does not check the upper bounds of the array index */ - if (data >= 0) - { - printIntLine(buffer[data]); - SAFE_BUFACCESS(buffer, data*sizeof(int)); - } - else - { - printLine("ERROR: Array index is negative"); - } - } -} - -/* goodB2G uses the BadSource with the GoodSink */ -static void goodB2G() -{ - int data; - /* Initialize data */ - data = -1; - /* POTENTIAL FLAW: Read data from the console using fscanf() */ - fscanf(stdin, "%d", &data); - { - int buffer[10] = { 0 }; - /* FIX: Properly validate the array index and prevent a buffer overread */ - if (data >= 0 && data < (10)) - { - printIntLine(buffer[data]); - } - else - { - printLine("ERROR: Array index is out-of-bounds"); - } - } -} - -void CWE126_Buffer_Overread__CWE129_fscanf_01_good() -{ - goodG2B(); - goodB2G(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__CWE129_fscanf_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__CWE129_fscanf_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c deleted file mode 100644 index 2bde3e1a..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c +++ /dev/null @@ -1,284 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__CWE129_listen_socket_01.c -Label Definition File: CWE126_Buffer_Overread__CWE129.label.xml -Template File: sources-sinks-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Overread - * BadSource: listen_socket Read data using a listen socket (server side) - * GoodSource: Larger than zero but less than 10 - * Sinks: - * GoodSink: Ensure the array index is valid - * BadSink : Improperly check the array index by not checking the upper bound - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#ifdef _WIN32 -#include -#include -#include -#pragma comment(lib, "ws2_32") /* include ws2_32.lib when linking */ -#define CLOSE_SOCKET closesocket -#else -#include -#include -#include -#include -#include -#define INVALID_SOCKET -1 -#define SOCKET_ERROR -1 -#define CLOSE_SOCKET close -#define SOCKET int -#endif - -#define TCP_PORT 27015 -#define LISTEN_BACKLOG 5 -#define CHAR_ARRAY_SIZE (3 * sizeof(data) + 2) - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__CWE129_listen_socket_01_bad() -{ - int data; - /* Initialize data */ - data = -1; - { -#ifdef _WIN32 - WSADATA wsaData; - int wsaDataInit = 0; -#endif - int recvResult; - struct sockaddr_in service; - SOCKET listenSocket = INVALID_SOCKET; - SOCKET acceptSocket = INVALID_SOCKET; - char inputBuffer[CHAR_ARRAY_SIZE]; - do - { -#ifdef _WIN32 - if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR) - { - break; - } - wsaDataInit = 1; -#endif - /* POTENTIAL FLAW: Read data using a listen socket */ - listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (listenSocket == INVALID_SOCKET) - { - break; - } - memset(&service, 0, sizeof(service)); - service.sin_family = AF_INET; - service.sin_addr.s_addr = INADDR_ANY; - service.sin_port = htons(TCP_PORT); - if (bind(listenSocket, (struct sockaddr*)&service, sizeof(service)) == SOCKET_ERROR) - { - break; - } - if (listen(listenSocket, LISTEN_BACKLOG) == SOCKET_ERROR) - { - break; - } - acceptSocket = accept(listenSocket, NULL, NULL); - if (acceptSocket == SOCKET_ERROR) - { - break; - } - /* Abort on error or the connection was closed */ - recvResult = recv(acceptSocket, inputBuffer, CHAR_ARRAY_SIZE - 1, 0); - if (recvResult == SOCKET_ERROR || recvResult == 0) - { - break; - } - /* NUL-terminate the string */ - inputBuffer[recvResult] = '\0'; - /* Convert to int */ - data = atoi(inputBuffer); - } - while (0); - if (listenSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(listenSocket); - } - if (acceptSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(acceptSocket); - } -#ifdef _WIN32 - if (wsaDataInit) - { - WSACleanup(); - } -#endif - } - { - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to access an index of the array that is above the upper bound - * This check does not check the upper bounds of the array index */ - if (data >= 0) - { - printIntLine(buffer[data]); - UNSAFE_BUFACCESS(buffer, data*sizeof(int)); - } - else - { - printLine("ERROR: Array index is negative"); - } - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - int data; - /* Initialize data */ - data = -1; - /* FIX: Use a value greater than 0, but less than 10 to avoid attempting to - * access an index of the array in the sink that is out-of-bounds */ - data = 7; - { - int buffer[10] = { 0 }; - /* POTENTIAL FLAW: Attempt to access an index of the array that is above the upper bound - * This check does not check the upper bounds of the array index */ - if (data >= 0) - { - printIntLine(buffer[data]); - SAFE_BUFACCESS(buffer, data*sizeof(int)); - } - else - { - printLine("ERROR: Array index is negative"); - } - } -} - -/* goodB2G uses the BadSource with the GoodSink */ -static void goodB2G() -{ - int data; - /* Initialize data */ - data = -1; - { -#ifdef _WIN32 - WSADATA wsaData; - int wsaDataInit = 0; -#endif - int recvResult; - struct sockaddr_in service; - SOCKET listenSocket = INVALID_SOCKET; - SOCKET acceptSocket = INVALID_SOCKET; - char inputBuffer[CHAR_ARRAY_SIZE]; - do - { -#ifdef _WIN32 - if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR) - { - break; - } - wsaDataInit = 1; -#endif - /* POTENTIAL FLAW: Read data using a listen socket */ - listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (listenSocket == INVALID_SOCKET) - { - break; - } - memset(&service, 0, sizeof(service)); - service.sin_family = AF_INET; - service.sin_addr.s_addr = INADDR_ANY; - service.sin_port = htons(TCP_PORT); - if (bind(listenSocket, (struct sockaddr*)&service, sizeof(service)) == SOCKET_ERROR) - { - break; - } - if (listen(listenSocket, LISTEN_BACKLOG) == SOCKET_ERROR) - { - break; - } - acceptSocket = accept(listenSocket, NULL, NULL); - if (acceptSocket == SOCKET_ERROR) - { - break; - } - /* Abort on error or the connection was closed */ - recvResult = recv(acceptSocket, inputBuffer, CHAR_ARRAY_SIZE - 1, 0); - if (recvResult == SOCKET_ERROR || recvResult == 0) - { - break; - } - /* NUL-terminate the string */ - inputBuffer[recvResult] = '\0'; - /* Convert to int */ - data = atoi(inputBuffer); - } - while (0); - if (listenSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(listenSocket); - } - if (acceptSocket != INVALID_SOCKET) - { - CLOSE_SOCKET(acceptSocket); - } -#ifdef _WIN32 - if (wsaDataInit) - { - WSACleanup(); - } -#endif - } - { - int buffer[10] = { 0 }; - /* FIX: Properly validate the array index and prevent a buffer overread */ - if (data >= 0 && data < (10)) - { - printIntLine(buffer[data]); - } - else - { - printLine("ERROR: Array index is out-of-bounds"); - } - } -} - -void CWE126_Buffer_Overread__CWE129_listen_socket_01_good() -{ - goodG2B(); - goodB2G(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__CWE129_listen_socket_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__CWE129_listen_socket_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c deleted file mode 100644 index a8289b63..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c +++ /dev/null @@ -1,110 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__char_alloca_memcpy_01.c -Label Definition File: CWE126_Buffer_Overread.stack.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Set data pointer to a small buffer - * GoodSource: Set data pointer to a large buffer - * Sink: memcpy - * BadSink : Copy data to string using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__char_alloca_memcpy_01_bad() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA(50*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA(100*sizeof(char)); - memset(dataBadBuffer, 'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = '\0'; /* null terminate */ - memset(dataGoodBuffer, 'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = '\0'; /* null terminate */ - /* FLAW: Set data pointer to a small buffer */ - data = dataBadBuffer; - { - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: using memcpy with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, strlen(dest)*sizeof(char) - 1); - UNSAFE_BUFACCESS(data, strlen(dest)*sizeof(char) - 1); - memcpy(dest, data, strlen(dest)*sizeof(char)); - dest[100-1] = '\0'; - printLine(dest); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char * dataBadBuffer = (char *)ALLOCA(50*sizeof(char)); - char * dataGoodBuffer = (char *)ALLOCA(100*sizeof(char)); - memset(dataBadBuffer, 'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = '\0'; /* null terminate */ - memset(dataGoodBuffer, 'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = '\0'; /* null terminate */ - /* FIX: Set data pointer to a large buffer */ - data = dataGoodBuffer; - { - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: using memcpy with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, strlen(dest)*sizeof(char) - 1); - SAFE_BUFACCESS(data, strlen(dest)*sizeof(char) - 1); - memcpy(dest, data, strlen(dest)*sizeof(char)); - dest[100-1] = '\0'; - printLine(dest); - } -} - -void CWE126_Buffer_Overread__char_alloca_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__char_alloca_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__char_alloca_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c deleted file mode 100644 index d8465002..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c +++ /dev/null @@ -1,120 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__char_declare_loop_01.c -Label Definition File: CWE126_Buffer_Overread.stack.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Set data pointer to a small buffer - * GoodSource: Set data pointer to a large buffer - * Sink: loop - * BadSink : Copy data to string using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__char_declare_loop_01_bad() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - memset(dataBadBuffer, 'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = '\0'; /* null terminate */ - memset(dataGoodBuffer, 'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = '\0'; /* null terminate */ - /* FLAW: Set data pointer to a small buffer */ - data = dataBadBuffer; - { - size_t i, destLen; - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - destLen = strlen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - } - UNSAFE_BUFACCESS(data, destLen*sizeof(char) - 1); - dest[100-1] = '\0'; - printLine(dest); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - memset(dataBadBuffer, 'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = '\0'; /* null terminate */ - memset(dataGoodBuffer, 'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = '\0'; /* null terminate */ - /* FIX: Set data pointer to a large buffer */ - data = dataGoodBuffer; - { - size_t i, destLen; - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - destLen = strlen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - BOF_CHECK_GEP(data, destLen - 1, false); - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - SAFE_BUFACCESS(data, (i+1)*sizeof(char) - 1); - } - SAFE_BUFACCESS(data, destLen*sizeof(char) - 1); - dest[100-1] = '\0'; - printLine(dest); - } -} - -void CWE126_Buffer_Overread__char_declare_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__char_declare_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__char_declare_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c deleted file mode 100644 index 9e57d159..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c +++ /dev/null @@ -1,110 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__char_declare_memcpy_01.c -Label Definition File: CWE126_Buffer_Overread.stack.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Set data pointer to a small buffer - * GoodSource: Set data pointer to a large buffer - * Sink: memcpy - * BadSink : Copy data to string using memcpy - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__char_declare_memcpy_01_bad() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - memset(dataBadBuffer, 'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = '\0'; /* null terminate */ - memset(dataGoodBuffer, 'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = '\0'; /* null terminate */ - /* FLAW: Set data pointer to a small buffer */ - data = dataBadBuffer; - { - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: using memcpy with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, strlen(dest)*sizeof(char) - 1); - UNSAFE_BUFACCESS(data, strlen(dest)*sizeof(char) - 1); - memcpy(dest, data, strlen(dest)*sizeof(char)); - dest[100-1] = '\0'; - printLine(dest); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - char dataBadBuffer[50]; - char dataGoodBuffer[100]; - memset(dataBadBuffer, 'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = '\0'; /* null terminate */ - memset(dataGoodBuffer, 'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = '\0'; /* null terminate */ - /* FIX: Set data pointer to a large buffer */ - data = dataGoodBuffer; - { - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: using memcpy with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, strlen(dest)*sizeof(char) - 1); - SAFE_BUFACCESS(data, strlen(dest)*sizeof(char) - 1); - memcpy(dest, data, strlen(dest)*sizeof(char)); - dest[100-1] = '\0'; - printLine(dest); - } -} - -void CWE126_Buffer_Overread__char_declare_memcpy_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__char_declare_memcpy_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__char_declare_memcpy_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c deleted file mode 100644 index e94e5d0b..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c +++ /dev/null @@ -1,119 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__malloc_char_loop_01.c -Label Definition File: CWE126_Buffer_Overread__malloc.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Use a small buffer - * GoodSource: Use a large buffer - * Sink: loop - * BadSink : Copy data to string using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__malloc_char_loop_01_bad() -{ - char * data; - data = NULL; - /* FLAW: Use a small buffer */ - data = (char *)malloc(50*sizeof(char)); - if (data == NULL) {exit(-1);} - memset(data, 'A', 50-1); /* fill with 'A's */ - data[50-1] = '\0'; /* null terminate */ - { - size_t i, destLen; - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - destLen = strlen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - BOF_CHECK_GEP(data, destLen - 1, true); - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - } - UNSAFE_BUFACCESS(data, destLen * sizeof(char) - 1); - dest[100-1] = '\0'; - printLine(dest); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - data = NULL; - /* FIX: Use a large buffer */ - data = (char *)malloc(100*sizeof(char)); - if (data == NULL) {exit(-1);} - memset(data, 'A', 100-1); /* fill with 'A's */ - data[100-1] = '\0'; /* null terminate */ - { - size_t i, destLen; - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - destLen = strlen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - BOF_CHECK_GEP(data, destLen - 1, false); - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - SAFE_BUFACCESS(data, (i + 1) * sizeof(char) - 1); - } - SAFE_BUFACCESS(data, destLen * sizeof(char) - 1); - dest[100-1] = '\0'; - printLine(dest); - free(data); - } -} - -void CWE126_Buffer_Overread__malloc_char_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__malloc_char_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__malloc_char_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c deleted file mode 100644 index a2a9915a..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c +++ /dev/null @@ -1,108 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__malloc_char_memmove_01.c -Label Definition File: CWE126_Buffer_Overread__malloc.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Use a small buffer - * GoodSource: Use a large buffer - * Sink: memmove - * BadSink : Copy data to string using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__malloc_char_memmove_01_bad() -{ - char * data; - data = NULL; - /* FLAW: Use a small buffer */ - data = (char *)malloc(50*sizeof(char)); - if (data == NULL) {exit(-1);} - memset(data, 'A', 50-1); /* fill with 'A's */ - data[50-1] = '\0'; /* null terminate */ - { - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: using memmove with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, strlen(dest)*sizeof(char) - 1); - UNSAFE_BUFACCESS(data, strlen(dest)*sizeof(char) - 1); - memmove(dest, data, strlen(dest)*sizeof(char)); - dest[100-1] = '\0'; - printLine(dest); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - char * data; - data = NULL; - /* FIX: Use a large buffer */ - data = (char *)malloc(100*sizeof(char)); - if (data == NULL) {exit(-1);} - memset(data, 'A', 100-1); /* fill with 'A's */ - data[100-1] = '\0'; /* null terminate */ - { - char dest[100]; - memset(dest, 'C', 100-1); - dest[100-1] = '\0'; /* null terminate */ - /* POTENTIAL FLAW: using memmove with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, strlen(dest)*sizeof(char) - 1); - SAFE_BUFACCESS(dest, strlen(dest)*sizeof(char) - 1); - memmove(dest, data, strlen(dest)*sizeof(char)); - dest[100-1] = '\0'; - printLine(dest); - free(data); - } -} - -void CWE126_Buffer_Overread__malloc_char_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__malloc_char_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__malloc_char_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c deleted file mode 100644 index b97a88ff..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c +++ /dev/null @@ -1,117 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c -Label Definition File: CWE126_Buffer_Overread__malloc.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Use a small buffer - * GoodSource: Use a large buffer - * Sink: loop - * BadSink : Copy data to string using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__malloc_wchar_t_loop_01_bad() -{ - wchar_t * data; - data = NULL; - /* FLAW: Use a small buffer */ - data = (wchar_t *)malloc(50*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - wmemset(data, L'A', 50-1); /* fill with 'A's */ - data[50-1] = L'\0'; /* null terminate */ - { - size_t i, destLen; - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - destLen = wcslen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - } - UNSAFE_BUFACCESS(data, destLen * sizeof(wchar_t) - 1); - dest[100-1] = L'\0'; - printWLine(dest); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - data = NULL; - /* FIX: Use a large buffer */ - data = (wchar_t *)malloc(100*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - wmemset(data, L'A', 100-1); /* fill with 'A's */ - data[100-1] = L'\0'; /* null terminate */ - { - size_t i, destLen; - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - destLen = wcslen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - SAFE_BUFACCESS(dest, (i + 1) * sizeof(wchar_t) - 1); - } - SAFE_BUFACCESS(dest, destLen * sizeof(wchar_t) - 1); - dest[100-1] = L'\0'; - printWLine(dest); - free(data); - } -} - -void CWE126_Buffer_Overread__malloc_wchar_t_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__malloc_wchar_t_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__malloc_wchar_t_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c deleted file mode 100644 index 1387c217..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c +++ /dev/null @@ -1,108 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c -Label Definition File: CWE126_Buffer_Overread__malloc.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Use a small buffer - * GoodSource: Use a large buffer - * Sink: memmove - * BadSink : Copy data to string using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__malloc_wchar_t_memmove_01_bad() -{ - wchar_t * data; - data = NULL; - /* FLAW: Use a small buffer */ - data = (wchar_t *)malloc(50*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - wmemset(data, L'A', 50-1); /* fill with 'A's */ - data[50-1] = L'\0'; /* null terminate */ - { - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: using memmove with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, wcslen(dest)*sizeof(wchar_t) - 1); - UNSAFE_BUFACCESS(data, wcslen(dest)*sizeof(wchar_t) - 1); - memmove(dest, data, wcslen(dest)*sizeof(wchar_t)); - dest[100-1] = L'\0'; - printWLine(dest); - free(data); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - data = NULL; - /* FIX: Use a large buffer */ - data = (wchar_t *)malloc(100*sizeof(wchar_t)); - if (data == NULL) {exit(-1);} - wmemset(data, L'A', 100-1); /* fill with 'A's */ - data[100-1] = L'\0'; /* null terminate */ - { - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: using memmove with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, wcslen(dest)*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, wcslen(dest)*sizeof(wchar_t) - 1); - memmove(dest, data, wcslen(dest)*sizeof(wchar_t)); - dest[100-1] = L'\0'; - printWLine(dest); - free(data); - } -} - -void CWE126_Buffer_Overread__malloc_wchar_t_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__malloc_wchar_t_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__malloc_wchar_t_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c deleted file mode 100644 index d2815b70..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c +++ /dev/null @@ -1,120 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__wchar_t_declare_loop_01.c -Label Definition File: CWE126_Buffer_Overread.stack.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Set data pointer to a small buffer - * GoodSource: Set data pointer to a large buffer - * Sink: loop - * BadSink : Copy data to string using a loop - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__wchar_t_declare_loop_01_bad() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - wmemset(dataBadBuffer, L'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = L'\0'; /* null terminate */ - wmemset(dataGoodBuffer, L'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = L'\0'; /* null terminate */ - /* FLAW: Set data pointer to a small buffer */ - data = dataBadBuffer; - { - size_t i, destLen; - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - destLen = wcslen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - } - UNSAFE_BUFACCESS(data, destLen * sizeof(wchar_t) - 1); - dest[100-1] = L'\0'; - printWLine(dest); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - wmemset(dataBadBuffer, L'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = L'\0'; /* null terminate */ - wmemset(dataGoodBuffer, L'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = L'\0'; /* null terminate */ - /* FIX: Set data pointer to a large buffer */ - data = dataGoodBuffer; - { - size_t i, destLen; - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - destLen = wcslen(dest); - /* POTENTIAL FLAW: using length of the dest where data - * could be smaller than dest causing buffer overread */ - BOF_CHECK_GEP(data, (destLen - 1)*sizeof(wchar_t), false); - for (i = 0; i < destLen; i++) - { - dest[i] = data[i]; - SAFE_BUFACCESS(data, (i + 1) * sizeof(wchar_t) - 1); - } - SAFE_BUFACCESS(data, destLen * sizeof(wchar_t) - 1); - dest[100-1] = L'\0'; - printWLine(dest); - } -} - -void CWE126_Buffer_Overread__wchar_t_declare_loop_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__wchar_t_declare_loop_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__wchar_t_declare_loop_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c b/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c deleted file mode 100644 index 5e05c817..00000000 --- a/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c +++ /dev/null @@ -1,111 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c -Label Definition File: CWE126_Buffer_Overread.stack.label.xml -Template File: sources-sink-01.tmpl.c -*/ -/* - * @description - * CWE: 126 Buffer Over-read - * BadSource: Set data pointer to a small buffer - * GoodSource: Set data pointer to a large buffer - * Sink: memmove - * BadSink : Copy data to string using memmove - * Flow Variant: 01 Baseline - * - * */ - -#include "std_testcase.h" - -#include - -#ifndef OMITBAD - -void CWE126_Buffer_Overread__wchar_t_declare_memmove_01_bad() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - wmemset(dataBadBuffer, L'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = L'\0'; /* null terminate */ - wmemset(dataGoodBuffer, L'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = L'\0'; /* null terminate */ - /* FLAW: Set data pointer to a small buffer */ - data = dataBadBuffer; - { - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: using memmove with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, wcslen(dest)*sizeof(wchar_t) - 1); - UNSAFE_BUFACCESS(data, wcslen(dest)*sizeof(wchar_t) - 1); - memmove(dest, data, wcslen(dest)*sizeof(wchar_t)); - dest[100-1] = L'\0'; - printWLine(dest); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -/* goodG2B uses the GoodSource with the BadSink */ -static void goodG2B() -{ - wchar_t * data; - wchar_t dataBadBuffer[50]; - wchar_t dataGoodBuffer[100]; - wmemset(dataBadBuffer, L'A', 50-1); /* fill with 'A's */ - dataBadBuffer[50-1] = L'\0'; /* null terminate */ - wmemset(dataGoodBuffer, L'A', 100-1); /* fill with 'A's */ - dataGoodBuffer[100-1] = L'\0'; /* null terminate */ - /* FIX: Set data pointer to a large buffer */ - data = dataGoodBuffer; - { - wchar_t dest[100]; - wmemset(dest, L'C', 100-1); - dest[100-1] = L'\0'; /* null terminate */ - /* POTENTIAL FLAW: using memmove with the length of the dest where data - * could be smaller than dest causing buffer overread */ - SAFE_BUFACCESS(dest, wcslen(dest)*sizeof(wchar_t) - 1); - SAFE_BUFACCESS(data, wcslen(dest)*sizeof(wchar_t) - 1); - memmove(dest, data, wcslen(dest)*sizeof(wchar_t)); - - dest[100-1] = L'\0'; - printWLine(dest); - } -} - -void CWE126_Buffer_Overread__wchar_t_declare_memmove_01_good() -{ - goodG2B(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - * its own for testing or for building a binary to use in testing binary - * analysis tools. It is not used when compiling all the testcases as one - * application, which is how source code analysis tools are tested. - */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE126_Buffer_Overread__wchar_t_declare_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE126_Buffer_Overread__wchar_t_declare_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests/ExtAPI_strcat_01.c b/src/ae_overflow_tests/ExtAPI_strcat_01.c deleted file mode 100644 index e0350b8d..00000000 --- a/src/ae_overflow_tests/ExtAPI_strcat_01.c +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -extern void UNSAFE_BUFACCESS(void *buffer, int size); - -int main() { - char buffer[10]; - char *largeString = "worldworld"; - strcpy(buffer, "Hello"); - strcat(buffer, largeString); - UNSAFE_BUFACCESS(buffer, 5 + 10 + 1); // Hello 5, worldworld 10, null terminator 1 - return 0; -} diff --git a/src/ae_overflow_tests/ExtAPI_strcat_02.c b/src/ae_overflow_tests/ExtAPI_strcat_02.c deleted file mode 100644 index 63385e7f..00000000 --- a/src/ae_overflow_tests/ExtAPI_strcat_02.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -extern void UNSAFE_BUFACCESS(void *buffer, int size); -int main() { - char buffer[20] = ""; - char *strings[] = {"Hello", "World", "This", "Is", "Too", "Long"}; - int i; - for (i = 0; i < 6; i++) { - strcat(buffer, strings[i]); - } - UNSAFE_BUFACCESS(buffer, 23); - printf("Buffer: %s\n", buffer); - - return 0; -} diff --git a/src/ae_overflow_tests/ExtAPI_strcat_03.c b/src/ae_overflow_tests/ExtAPI_strcat_03.c deleted file mode 100644 index b6d9b5ad..00000000 --- a/src/ae_overflow_tests/ExtAPI_strcat_03.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -extern void UNSAFE_BUFACCESS(void *buffer, int size); - -int main() { - char buffer[10] = "Hi"; - char input[20]; - printf("Enter a string: "); - scanf("%19s", input); - strcat(buffer, input); - UNSAFE_BUFACCESS(buffer, strlen(buffer)); - printf("Buffer: %s\n", buffer); - return 0; -} diff --git a/src/ae_overflow_tests/ExtAPI_strcat_04.c b/src/ae_overflow_tests/ExtAPI_strcat_04.c deleted file mode 100644 index 6abd56e1..00000000 --- a/src/ae_overflow_tests/ExtAPI_strcat_04.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -extern void UNSAFE_BUFACCESS(void *buffer, int size); -int main() { - char buffer[15] = "Start"; - char *string1 = "12345"; - char *string2 = "67890"; - strcat(buffer, string1); - strcat(buffer, string2); - UNSAFE_BUFACCESS(buffer, 5 + strlen(string1) + strlen(string2)); - printf("Buffer: %s\n", buffer); - return 0; -} diff --git a/src/ae_overflow_tests/std_testcase.h b/src/ae_overflow_tests/std_testcase.h deleted file mode 100644 index a9e90155..00000000 --- a/src/ae_overflow_tests/std_testcase.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef _STD_TESTCASE_H -#define _STD_TESTCASE_H - -/* This file exists in order to: - * 1) Include lots of standardized headers in one place - * 2) To avoid #include-ing things in the middle of your code - * #include-ing in the middle of a C/C++ file is apt to cause compiler errors - * 3) To get good #define's in place - * - * In reality you need a complex interaction of scripts of build processes to do - * this correctly (i.e., autoconf) - */ - -#ifdef _WIN32 -/* Ensure the CRT does not disable the "insecure functions" - * Ensure not to generate warnings about ANSI C functions. - */ -#define _CRT_SECURE_NO_DEPRECATE 1 -#define _CRT_SECURE_NO_WARNING 1 - -/* We do not use _malloca as it sometimes allocates memory on the heap and we - * do not want this to happen in test cases that expect stack-allocated memory - * Also, _alloca_s cannot be used as it is deprecated and has been replaced - * with _malloca */ -#define ALLOCA _alloca - -/* disable warnings about use of POSIX names for functions like execl() - Visual Studio wants you to use the ISO C++ name, such as _execl() */ -#pragma warning(disable:4996) - -#else -/* Linux/GNU wants this macro, otherwise stdint.h and limits.h are mostly useless */ -# define __STDC_LIMIT_MACROS 1 - -#define ALLOCA alloca -#endif - -#include -#include -#include -#include -#include -#include -#include -#ifndef _WIN32 -/* SIZE_MAX, int64_t, etc. are in this file on Linux */ -# include -#endif -#include -#include -#include -#include -#ifdef _WIN32 -#include /* for open/close etc */ -#endif - -#ifdef __cplusplus -#include // for placement new - -/* classes used in some test cases as a custom type */ -class TwoIntsClass -{ - public: // Needed to access variables from label files - int intOne; - int intTwo; -}; - -class OneIntClass -{ - public: // Needed to access variables from label files - int intOne; -}; - -extern void SAFE_BUFACCESS(void* data, int size); -extern void UNSAFE_BUFACCESS(void* data, int size); - -#endif - -#ifndef __cplusplus -/* Define true and false, which are included in C++, but not in C */ -#define true 1 -#define false 0 - -#endif /* end ifndef __cplusplus */ - -/* rand only returns 15 bits, so we xor 3 calls together to get the full result (13 bits overflow, but that is okay) */ -// shifting signed values might overflow and be undefined -#define URAND31() (((unsigned)rand()<<30) ^ ((unsigned)rand()<<15) ^ rand()) -// choose to produce a positive or a negative number. Note: conditional only evaluates one URAND31 -#define RAND32() ((int)(rand() & 1 ? URAND31() : -URAND31() - 1)) - -/* rand only returns 15 bits, so we xor 5 calls together to get the full result (11 bits overflow, but that is okay) */ -// shifting signed values might overflow and be undefined -#define URAND63() (((uint64_t)rand()<<60) ^ ((uint64_t)rand()<<45) ^ ((uint64_t)rand()<<30) ^ ((uint64_t)rand()<<15) ^ rand()) -// choose to produce a positive or a negative number. Note: conditional only evaluates one URAND63 -#define RAND64() ((int64_t)(rand() & 1 ? URAND63() : -URAND63() - 1)) - -/* struct used in some test cases as a custom type */ -typedef struct _twoIntsStruct -{ - int intOne; - int intTwo; -} twoIntsStruct; - -#ifdef __cplusplus -extern "C" { -#endif - -/* The variables below are declared "const", so a tool should - be able to identify that reads of these will always return their - initialized values. */ -extern const int GLOBAL_CONST_TRUE; /* true */ -extern const int GLOBAL_CONST_FALSE; /* false */ -extern const int GLOBAL_CONST_FIVE; /* 5 */ - -/* The variables below are not defined as "const", but are never - assigned any other value, so a tool should be able to identify that - reads of these will always return their initialized values. */ -extern int globalTrue; /* true */ -extern int globalFalse; /* false */ -extern int globalFive; /* 5 */ - -#ifdef __cplusplus -} -#endif - -#include "std_testcase_io.h" - -#endif diff --git a/src/ae_overflow_tests/std_testcase_io.h b/src/ae_overflow_tests/std_testcase_io.h deleted file mode 100644 index f31640e3..00000000 --- a/src/ae_overflow_tests/std_testcase_io.h +++ /dev/null @@ -1,62 +0,0 @@ -/* header file to define functions in io.c. Not named io.h - because that name is already taken by a system header on - Windows */ - -#ifndef _STD_TESTCASE_IO_H -#define _STD_TESTCASE_IO_H - -#include "std_testcase.h" /* needed for the twoint struct */ - -#ifdef __cplusplus -extern "C" { -#endif - -void printLine(const char * line); - -void printWLine(const wchar_t * line); - -void printIntLine (int intNumber); - -void printShortLine (short shortNumber); - -void printFloatLine (float floatNumber); - -void printLongLine(long longNumber); - -void printLongLongLine(int64_t longLongIntNumber); - -void printSizeTLine(size_t sizeTNumber); - -void printHexCharLine(char charHex); - -void printWcharLine(wchar_t wideChar); - -void printUnsignedLine(unsigned unsignedNumber); - -void printHexUnsignedCharLine(unsigned char unsignedCharacter); - -void printDoubleLine(double doubleNumber); - -void printStructLine(const twoIntsStruct * structTwoIntsStruct); - -void printBytesLine(const unsigned char * bytes, size_t numBytes); - -size_t decodeHexChars(unsigned char * bytes, size_t numBytes, const char * hex); - -size_t decodeHexWChars(unsigned char * bytes, size_t numBytes, const wchar_t * hex); - -int globalReturnsTrue(); - -int globalReturnsFalse(); - -int globalReturnsTrueOrFalse(); - -/* Define some global variables that will get argc and argv */ -extern int globalArgc; -extern char** globalArgv; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/ae_overflow_tests_fail/CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01.c b/src/ae_overflow_tests_fail/CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01.c deleted file mode 100644 index a0fb4599..00000000 --- a/src/ae_overflow_tests_fail/CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01.c +++ /dev/null @@ -1,104 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow.label.xml -Template File: point-flaw-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * Sinks: type_overrun_memmove - * GoodSink: Perform the memmove() and prevent overwriting part of the structure - * BadSink : Overwrite part of the structure by incorrectly using the sizeof(struct) in memmove() - * Flow Variant: 01 Baseline - * - * */ - -#include "../ae_overflow_tests/std_testcase.h" - -#ifndef _WIN32 -#include -#endif - -#define SRC_STR "0123456789abcdef0123456789abcde" - -typedef struct _charVoid -{ - char charFirst[16]; - void * voidSecond; - void * voidThird; -} charVoid; - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01_bad() -{ - { - charVoid * structCharVoid = (charVoid *)malloc(sizeof(charVoid)); - if (structCharVoid == NULL) {exit(-1);} - structCharVoid->voidSecond = (void *)SRC_STR; - /* Print the initial block pointed to by structCharVoid->voidSecond */ - printLine((char *)structCharVoid->voidSecond); - /* FLAW: Use the sizeof(*structCharVoid) which will overwrite the pointer y */ - memmove(structCharVoid->charFirst, SRC_STR, sizeof(*structCharVoid)); - UNSAFE_BUFACCESS(structCharVoid->charFirst, sizeof(*structCharVoid) - 1); - SAFE_BUFACCESS(SRC_STR, sizeof(*structCharVoid) - 1); - structCharVoid->charFirst[(sizeof(structCharVoid->charFirst)/sizeof(char))-1] = '\0'; /* null terminate the string */ - printLine((char *)structCharVoid->charFirst); - printLine((char *)structCharVoid->voidSecond); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -static void good1() -{ - { - charVoid * structCharVoid = (charVoid *)malloc(sizeof(charVoid)); - if (structCharVoid == NULL) {exit(-1);} - structCharVoid->voidSecond = (void *)SRC_STR; - /* Print the initial block pointed to by structCharVoid->voidSecond */ - printLine((char *)structCharVoid->voidSecond); - /* FIX: Use the sizeof(structCharVoid->charFirst) to avoid overwriting the pointer y */ - memmove(structCharVoid->charFirst, SRC_STR, sizeof(structCharVoid->charFirst)); - SAFE_BUFACCESS(structCharVoid->charFirst, sizeof(structCharVoid->charFirst) - 1); - SAFE_BUFACCESS(SRC_STR, sizeof(structCharVoid->charFirst) - 1); - structCharVoid->charFirst[(sizeof(structCharVoid->charFirst)/sizeof(char))-1] = '\0'; /* null terminate the string */ - printLine((char *)structCharVoid->charFirst); - printLine((char *)structCharVoid->voidSecond); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01_good() -{ - good1(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__char_type_overrun_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/ae_overflow_tests_fail/CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01.c b/src/ae_overflow_tests_fail/CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01.c deleted file mode 100644 index 0dd2ef97..00000000 --- a/src/ae_overflow_tests_fail/CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01.c +++ /dev/null @@ -1,104 +0,0 @@ -/* TEMPLATE GENERATED TESTCASE FILE -Filename: CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01.c -Label Definition File: CWE122_Heap_Based_Buffer_Overflow.label.xml -Template File: point-flaw-01.tmpl.c -*/ -/* - * @description - * CWE: 122 Heap Based Buffer Overflow - * Sinks: type_overrun_memmove - * GoodSink: Perform the memmove() and prevent overwriting part of the structure - * BadSink : Overwrite part of the structure by incorrectly using the sizeof(struct) in memmove() - * Flow Variant: 01 Baseline - * - * */ - -#include "../ae_overflow_tests/std_testcase.h" - -#ifndef _WIN32 -#include -#endif - -#define SRC_STR L"0123456789abcdef0123456789abcde" - -typedef struct _charVoid -{ - wchar_t charFirst[16]; - void * voidSecond; - void * voidThird; -} charVoid; - -#ifndef OMITBAD - -void CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01_bad() -{ - { - charVoid * structCharVoid = (charVoid *)malloc(sizeof(charVoid)); - if (structCharVoid == NULL) {exit(-1);} - structCharVoid->voidSecond = (void *)SRC_STR; - /* Print the initial block pointed to by structCharVoid->voidSecond */ - printWLine((wchar_t *)structCharVoid->voidSecond); - /* FLAW: Use the sizeof(*structCharVoid) which will overwrite the pointer y */ - memmove(structCharVoid->charFirst, SRC_STR, sizeof(*structCharVoid)); - UNSAFE_BUFACCESS(structCharVoid->charFirst, sizeof(*structCharVoid) - 1); - SAFE_BUFACCESS(SRC_STR, sizeof(*structCharVoid) - 1); - structCharVoid->charFirst[(sizeof(structCharVoid->charFirst)/sizeof(wchar_t))-1] = L'\0'; /* null terminate the string */ - printWLine((wchar_t *)structCharVoid->charFirst); - printWLine((wchar_t *)structCharVoid->voidSecond); - } -} - -#endif /* OMITBAD */ - -#ifndef OMITGOOD - -static void good1() -{ - { - charVoid * structCharVoid = (charVoid *)malloc(sizeof(charVoid)); - if (structCharVoid == NULL) {exit(-1);} - structCharVoid->voidSecond = (void *)SRC_STR; - /* Print the initial block pointed to by structCharVoid->voidSecond */ - printWLine((wchar_t *)structCharVoid->voidSecond); - /* FIX: Use the sizeof(structCharVoid->charFirst) to avoid overwriting the pointer y */ - memmove(structCharVoid->charFirst, SRC_STR, sizeof(structCharVoid->charFirst)); - SAFE_BUFACCESS(structCharVoid->charFirst, sizeof(structCharVoid->charFirst) - 1); - SAFE_BUFACCESS(SRC_STR, sizeof(structCharVoid->charFirst) - 1); - structCharVoid->charFirst[(sizeof(structCharVoid->charFirst)/sizeof(wchar_t))-1] = L'\0'; /* null terminate the string */ - printWLine((wchar_t *)structCharVoid->charFirst); - printWLine((wchar_t *)structCharVoid->voidSecond); - } -} - -void CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01_good() -{ - good1(); -} - -#endif /* OMITGOOD */ - -/* Below is the main(). It is only used when building this testcase on - its own for testing or for building a binary to use in testing binary - analysis tools. It is not used when compiling all the testcases as one - application, which is how source code analysis tools are tested. */ - -#ifdef INCLUDEMAIN - -int main(int argc, char * argv[]) -{ - /* seed randomness */ - srand( (unsigned)time(NULL) ); -#ifndef OMITGOOD - printLine("Calling good()..."); - CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01_good(); - printLine("Finished good()"); -#endif /* OMITGOOD */ -#ifndef OMITBAD - printLine("Calling bad()..."); - CWE122_Heap_Based_Buffer_Overflow__wchar_t_type_overrun_memmove_01_bad(); - printLine("Finished bad()"); -#endif /* OMITBAD */ - return 0; -} - -#endif diff --git a/src/basic_c_tests/CI-funptr.c b/src/basic_c_tests/CI-funptr.c deleted file mode 100644 index ef0581f6..00000000 --- a/src/basic_c_tests/CI-funptr.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Alias due to function pointer resolution. - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -void f(int *m, int *n) -{ - MAYALIAS(m, n); -} - -typedef void (*fp)(int*m, int*n); - -int main() -{ - int a,b,c,d; - int *pa, *pb; - fp p; - pa = &a, pb = &b; - f(pa, pb); - p = f; - pb = &a; - (*p)(pa, pb); - return 0; -} - diff --git a/src/basic_c_tests/CI-global.c b/src/basic_c_tests/CI-global.c deleted file mode 100644 index 53e78ac0..00000000 --- a/src/basic_c_tests/CI-global.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Context-insensitive. - * Author: Sen Ye - * Date: 10/10/2013 - */ - -#include "aliascheck.h" - -int global; -int *p_global; - -void foo() { - p_global = &global; -} - -int main() { - int *p_local; - p_local = &global; - foo(); - MAYALIAS(p_local, p_global); - return 0; -} diff --git a/src/basic_c_tests/CI-local.c b/src/basic_c_tests/CI-local.c deleted file mode 100644 index c29d7007..00000000 --- a/src/basic_c_tests/CI-local.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Alias due to context-insensitive - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -void foo(int *m, int *n) -{ - MAYALIAS(m,n); -} - -int main() -{ - int *p, *q; - int a,b; - if (a) { - p = &a; - q = &b; - foo(p,q); - } - else { - p = &b; - q = &a; - foo(p,q); - } - return 0; -} diff --git a/src/basic_c_tests/array-constIdx.c b/src/basic_c_tests/array-constIdx.c deleted file mode 100644 index 798e3c75..00000000 --- a/src/basic_c_tests/array-constIdx.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Alias with array - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct MyStruct { - int * f1; - int * f2; -}; - -int main() { - struct MyStruct s[2]; - int a,b; - s[0].f1 = &a; - s[1].f1 = &b; - - // Different fields of different elements in a - // certain array are treated as different objects. - NOALIAS(s[0].f1, s[1].f2); - MAYALIAS(s[0].f1, s[1].f1); - - return 0; -} diff --git a/src/basic_c_tests/array-varIdx.c b/src/basic_c_tests/array-varIdx.c deleted file mode 100644 index c07b7f13..00000000 --- a/src/basic_c_tests/array-varIdx.c +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Alias with array - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct MyStruct { - int * f1; - int * f2; -}; - -int main() { - struct MyStruct s[2]; - int a,b; - s[0].f1 = &a; - s[1].f1 = &b; - - // Different fields of different elements in a - // certain array are treated as different objects. - NOALIAS(s[a].f1, s[b].f2); - - return 0; -} diff --git a/src/basic_c_tests/array-varIdx2.c b/src/basic_c_tests/array-varIdx2.c deleted file mode 100644 index 38d65759..00000000 --- a/src/basic_c_tests/array-varIdx2.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Alias with array - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct MyStruct { - int * f1; - int * f2; -}; - -int main() { - struct MyStruct s[2]; - int a,b; - s[0].f1 = &a; - s[1].f1 = &b; - - // Different fields of different elements in a - // certain array are treated as different objects. - NOALIAS(s[a].f1, s[b].f2); - MAYALIAS(s[a].f1, s[b].f1); - - return 0; -} diff --git a/src/basic_c_tests/arraycopy1.c b/src/basic_c_tests/arraycopy1.c deleted file mode 100644 index dc7cdd90..00000000 --- a/src/basic_c_tests/arraycopy1.c +++ /dev/null @@ -1,8 +0,0 @@ -extern void MAYALIAS(void*,void*); -int main() { - int a, b; - int* source[2] = {&a, &b}; - int* x = source[1]; - MAYALIAS(&a,x); - return 0; -} diff --git a/src/basic_c_tests/branch-call.c b/src/basic_c_tests/branch-call.c deleted file mode 100644 index bb5297e0..00000000 --- a/src/basic_c_tests/branch-call.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Alias due to lack of context-sensitivity. - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -void foo(int *m, int *n) -{ - MAYALIAS(m,n); - int x, y; - x = *n; - y = *m; - *m = x; - *n = y; -} - -int main() -{ - int *p, *q; - int a, b, c; - if (c) { - p = &a; - q = &b; - foo(p,q); - } - else { - p = &b; - q = &c; - foo(p,q); - } - return 0; -} diff --git a/src/basic_c_tests/branch-intra.c b/src/basic_c_tests/branch-intra.c deleted file mode 100644 index 6253bc77..00000000 --- a/src/basic_c_tests/branch-intra.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Alias due to lack of path-sensitivity. - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -int main() -{ - int *p, *q; - int a, b, c; - if (c) { - p = &a; - q = &b; - } - else { - p = &b; - q = &c; - } - MAYALIAS(p,q); - return 0; -} diff --git a/src/basic_c_tests/byteoffset1.c b/src/basic_c_tests/byteoffset1.c deleted file mode 100644 index 3d937487..00000000 --- a/src/basic_c_tests/byteoffset1.c +++ /dev/null @@ -1,34 +0,0 @@ - -/// Test case from https://github.com/SVF-tools/SVF/issues/524 -/// Compile this c file using `clang -S -emit-llvm -O3 byteoffset1.c` - -__attribute__((noinline)) -void MAYALIAS(void* p, void* q){ - printf("%c%c\n", p, q); -} - -typedef struct StructA -{ - int foo; - int (*f)(void); -} StructA; - -__attribute__((noinline)) -int FuncA() { - return 1; -} - -__attribute__((noinline)) -int CallF(StructA *structA) { - int ret = structA->f(); - MAYALIAS(structA->f, &FuncA); - return ret; -} - -int main() { - StructA *structA = malloc(sizeof(StructA)); - structA->f = FuncA; - - int ret = CallF(structA); - return ret; -} \ No newline at end of file diff --git a/src/basic_c_tests/constraint-cycle-copy.c b/src/basic_c_tests/constraint-cycle-copy.c deleted file mode 100644 index 69e91b3d..00000000 --- a/src/basic_c_tests/constraint-cycle-copy.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Cycle - * Author: Sen Ye - * Date: 11/10/2013 - */ -#include "aliascheck.h" - -int main() { - int **x1, **y1, **z1; - int *x2, *y2, *z2, *y2_; - int x3, y3, z3, y3_; - x2 = &x3, y2 = &y3, z2 = &z3; - x1 = &x2, y1 = &y2, z1 = &z2; - // if the following branch is commented out, - // the first alias check will fail while - // the second one is OK. - if (y3_) { - y1 = &y2_; - y2_ = &y3_; - } - *x1 = *y1; - *y1 = *z1; - *z1 = *x1; - // there should be a cycle from - // y2 -> x2 -> z2 -> y2 - MAYALIAS(x2, y2); - MAYALIAS(z2, x2); - return 0; -} diff --git a/src/basic_c_tests/constraint-cycle-field.c b/src/basic_c_tests/constraint-cycle-field.c deleted file mode 100644 index 929b9466..00000000 --- a/src/basic_c_tests/constraint-cycle-field.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Field cycle. - * Author: Sen Ye - * Date: 10/10/2013 - */ - -#include -#include "aliascheck.h" - -struct MyStruct { - int * f1; - struct MyStruct * next; -}; - -int main() { - struct MyStruct * p = (struct MyStruct *) malloc (sizeof(struct MyStruct)); - int num = 10; - while (num) { - p->next = (struct MyStruct *) malloc (sizeof(struct MyStruct)); - p->next->f1 = (int *) malloc (sizeof(int)); - p = p->next; - } - struct MyStruct *q = p; - MAYALIAS(q->next, p->next->next); - MAYALIAS(q->f1, p->next->f1); - return 0; -} - diff --git a/src/basic_c_tests/constraint-cycle-pwc.c b/src/basic_c_tests/constraint-cycle-pwc.c deleted file mode 100644 index f64a8f25..00000000 --- a/src/basic_c_tests/constraint-cycle-pwc.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * PWC cycle. - * Author: Sen Ye - * Date: 30/01/2014 - * Description: 181.mcf/mcfutil.c, flow_cost - */ -#include - -typedef struct arc -{ - struct arc *nextout, *nextin; - long ident; -} arc_t; - - -typedef struct network -{ - arc_t *arcs, *stop_arcs; - arc_t *dummy_arcs, *stop_dummy; -} network_t; - -int main() -{ - network_t *net; - arc_t *arc; - void *stop; - int condition; - - stop = (void *)net->stop_arcs; - for( arc = net->arcs; arc != (arc_t *)stop; arc++ ) { - if( arc->ident ) { - if( condition ) - printf("hello world\n"); - } - } - return 0; -} diff --git a/src/basic_c_tests/field-ptr-arith-constIdx.c b/src/basic_c_tests/field-ptr-arith-constIdx.c deleted file mode 100644 index 38a27a5e..00000000 --- a/src/basic_c_tests/field-ptr-arith-constIdx.c +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Pointer arithmetic - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct s { - int* f1; - int* f2; -}; - -int main() -{ - int **q, **p; - int a,b; - struct s s1; - s1.f1 = &a; - s1.f2 = &b; - q = &(s1.f1); - p = q+1; - EXPECTEDFAIL_MAYALIAS(*p,&b); - return 0; -} diff --git a/src/basic_c_tests/field-ptr-arith-varIdx.c b/src/basic_c_tests/field-ptr-arith-varIdx.c deleted file mode 100644 index 40ad3387..00000000 --- a/src/basic_c_tests/field-ptr-arith-varIdx.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Pointer arithmetic - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct s { - int* f1; - int* f2; -}; - -int main() -{ - int **q, **p; - int a,b; - struct s s1; - s1.f1 = &a; - s1.f2 = &b; - q = &(s1.f1); - // b is not a constant, p would point to all - // the fields of q's points-to targets - p = q+b; - MAYALIAS(*p,&b); - return 0; -} diff --git a/src/basic_c_tests/funptr-global.c b/src/basic_c_tests/funptr-global.c deleted file mode 100644 index 6b3368b3..00000000 --- a/src/basic_c_tests/funptr-global.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * functionpointer1.c - * Test function pointer with field initialization of globals - * - * Created on: 01/09/2015 - * Author: Yulei Sui - */ -#include "aliascheck.h" - -typedef int PRSize; -typedef unsigned int PRUint32; -typedef unsigned int PRUintn; -typedef int PRIntn; - -struct PLHashAllocOps { - void *(*allocTable)(void *pool , PRSize size ) ; -}; -typedef struct PLHashAllocOps PLHashAllocOps; - -static void *DefaultAllocTable(void *pool , PRSize size ) -{ void *tmp ; - - { - tmp = malloc((unsigned int )size); - return (tmp); -} -} - -PLHashAllocOps defaultHashAllocOps = {& DefaultAllocTable}; -void PL_NewHashTable(PRUint32 n , void *allocPriv ) -{ - void *tmp___0 ; - void *tmp___1 ; - - PLHashAllocOps const * allocOps = (PLHashAllocOps const *)(& defaultHashAllocOps); - tmp___0 = (*(allocOps->allocTable))(allocPriv, (int )sizeof(int)); - tmp___1 = (*(allocOps->allocTable))(allocPriv, (int )sizeof(int)); - MAYALIAS(tmp___0,tmp___1); - -} - -int main(){return 0;} - diff --git a/src/basic_c_tests/funptr-nested-call.c b/src/basic_c_tests/funptr-nested-call.c deleted file mode 100644 index afb09c76..00000000 --- a/src/basic_c_tests/funptr-nested-call.c +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -void f() { printf("f\n"); } -void g() { printf("g\n"); } -void (*p)(); - -void fake_fun (void (*a)()) { - p = a; - p(); -} - -void real_fun (void (*a)()) { - p = a; - p(); -} - -void (*fptr)(void (*p)()); - -void set(void (*src)()) { - fptr = src; -} - -int main(int argc, char **argv) -{ - set(&fake_fun); - set(&real_fun); - - fptr(&f); - - fptr(&g); - - return 0; -} diff --git a/src/basic_c_tests/funptr-simple.c b/src/basic_c_tests/funptr-simple.c deleted file mode 100644 index 88d30490..00000000 --- a/src/basic_c_tests/funptr-simple.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Function pointer. - * Author: Sen Ye - * Date: 10/10/2013 - */ -#include "aliascheck.h" - -void f(int *p, int *q) { - // if function pointer solved correctly, - // p and q will alias due to CS1 - MAYALIAS(p,q); -} - -void (*fptr)(int*,int*); - -int main() { - int x, y; - int *m, *n; - if (x) { - m = &x, n = &x; - fptr = f; - fptr(m,n); // CS1 - } - else { - m = &x; n = &y; - f(m,n); // CS2 - } - return 0; -} diff --git a/src/basic_c_tests/funptr-struct.c b/src/basic_c_tests/funptr-struct.c deleted file mode 100644 index 0323c313..00000000 --- a/src/basic_c_tests/funptr-struct.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include "aliascheck.h" -int g; -static int my_sn_write(int* p) { - printf("Executing my_sn_write\n"); - MAYALIAS(&g,p); - return 0; -} - -struct MYFILE { - int (*pt) (int* p); -}; - -void my_vfprintf(struct MYFILE *pts) { - printf("Executing bar\n"); - int *p = &g; - pts->pt(p); -} - -int my_vsnprintf() { - struct MYFILE pts = { .pt = my_sn_write }; - my_vfprintf(&pts); - return 0; -} - -int main() { - my_vsnprintf(); - return 0; -} - diff --git a/src/basic_c_tests/global-array.c b/src/basic_c_tests/global-array.c deleted file mode 100644 index 4d732a97..00000000 --- a/src/basic_c_tests/global-array.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Global variables test. - * Author: Sen Ye - * Date: 07/05/2014 - */ -#include "aliascheck.h" - -typedef unsigned char *POINTER; - -struct MyStruct { - int* f1; - unsigned char f2[64]; -}; - -struct MyStruct context; - -static unsigned char padding[64] = { - 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static void memcpy(POINTER output, POINTER input, unsigned long len) -{ - unsigned long i; - for (i=0; if2[index], (POINTER)input, length); -} - -int main() -{ - int l; - update(&context, padding, l); - return 0; -} diff --git a/src/basic_c_tests/global-call-noparam.c b/src/basic_c_tests/global-call-noparam.c deleted file mode 100644 index 21ea1c54..00000000 --- a/src/basic_c_tests/global-call-noparam.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Global variables test. - * Author: Sen Ye - * Date: 03/05/2014 - */ -#include "aliascheck.h" - -int *p = NULL; -int *q = NULL; -int c; - -void foo() { - MAYALIAS(p, q); -} - -void bar() { - q = &c; -} - -int main() { - int a, b; - p = &a; - q = p; - p = &c; -} diff --git a/src/basic_c_tests/global-call-struct.c b/src/basic_c_tests/global-call-struct.c deleted file mode 100644 index bfd9343b..00000000 --- a/src/basic_c_tests/global-call-struct.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Global variables test. - * Author: Sen Ye - * Date: 07/05/2014 - */ -#include "aliascheck.h" - -struct MyStruct { - char f0[20]; - int f1; - int* f2; -}; - -int x, y; -struct MyStruct global = {"abcdefg", 20, &x}; - -void foo(int** pp, int** qq) { - *pp = &x; - *qq = &y; -} - -void bar(int** pp, int** qq) { - *pp = &x; - *qq = &x; -} - -int main() { - int *p, *q; - int **pp, **qq; - pp = &p; - qq = &q; - bar(pp,qq); - MAYALIAS(p, q); - MAYALIAS(global.f2, *qq); -} diff --git a/src/basic_c_tests/global-call-twoparms.c b/src/basic_c_tests/global-call-twoparms.c deleted file mode 100644 index c080f496..00000000 --- a/src/basic_c_tests/global-call-twoparms.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Global variables test. - * Author: Sen Ye - * Date: 07/05/2014 - */ -#include "aliascheck.h" - -struct MyStruct { - int f1; - void (*fp)(int**, int**); -}; - -struct MyStruct global; -int x, y; - -void foo(int** pp, int** qq) { - *pp = &x; - *qq = &y; -} - -void bar(int** pp, int** qq) { - *pp = &x; - *qq = &x; -} - -void init() { - global.fp = foo; -} - -void init2() { - global.fp = bar; -} - -void run(int** pp, int**qq) { - (*global.fp)(pp, qq); -} - -int main() { - int *p, *q; - int **pp, **qq; - pp = &p; - qq = &q; - init(); - run(pp, qq); - // They are alias due to the wrongly solved - // target, bar(), at indirect call site in - // run(). - MAYALIAS(*pp, *qq); -} diff --git a/src/basic_c_tests/global-const-struct.c b/src/basic_c_tests/global-const-struct.c deleted file mode 100644 index 6d568a7a..00000000 --- a/src/basic_c_tests/global-const-struct.c +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include "aliascheck.h" -int g; -static int my_sn_write(int* p) { - printf("Executing my_sn_write\n"); - MAYALIAS(&g,p); - return 0; -} - -struct MYFILE { - int (*pt) (int* p); -}; - -struct MyStruct { - const struct MYFILE *myfile; -}; - -const struct MYFILE pts = { .pt = my_sn_write }; -const struct MyStruct ms = { .myfile = &pts }; - -void my_vfprintf(const struct MyStruct *ms) { - printf("Executing bar\n"); - int *p = &g; - ms->myfile->pt(p); -} - -int main() { - my_vfprintf(&ms); - return 0; -} - diff --git a/src/basic_c_tests/global-funptr.c b/src/basic_c_tests/global-funptr.c deleted file mode 100644 index 13a527f2..00000000 --- a/src/basic_c_tests/global-funptr.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Global variables with function pointer initialisation. - * Author: Sen Ye - * Date: 07/05/2014 - */ -#include "aliascheck.h" - -int x, y; -int* p; - -void foo() { - p = &y; -} - -struct MyStruct { - void (*fp)(); - int* f1; -}; - -struct MyStruct context = { foo, &x }; - -int main() -{ - (*context.fp)(); - int* q = p; - MUSTALIAS(q, &y); - return 0; -} diff --git a/src/basic_c_tests/global-initializer.c b/src/basic_c_tests/global-initializer.c deleted file mode 100644 index 701e5043..00000000 --- a/src/basic_c_tests/global-initializer.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Global variable - * Author: Sen Ye - * Date: 13/10/2013 - * Description: initialise global variables when declared - * and check alias in main function. - */ -#include "aliascheck.h" - -int x; -int *p, *q; -int **pp = &p; -int **qq = &q; - -void foo() { - p = &x; -} - -void bar() { - q = &x; -} - -int main() { - MAYALIAS(*pp, *qq); - foo(); - bar(); - return 0; -} diff --git a/src/basic_c_tests/global-nested-calls.c b/src/basic_c_tests/global-nested-calls.c deleted file mode 100644 index 16fafbee..00000000 --- a/src/basic_c_tests/global-nested-calls.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Global variable - * Author: Sen Ye - * Date: 13/10/2013 - * Description: Initialise global variables in callee and check alias - * in caller. - */ -#include "aliascheck.h" - -int **pp, **qq; -int *p, *q; -int x; - -void foo() { - pp = &p; - p = &x; -} - -void bar() { - qq = &q; - q = &x; -} - -int main() { - MAYALIAS(*pp, *qq); - foo(); - bar(); - return 0; -} diff --git a/src/basic_c_tests/global-simple.c b/src/basic_c_tests/global-simple.c deleted file mode 100644 index 848f755f..00000000 --- a/src/basic_c_tests/global-simple.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Global variables test. - * Author: Sen Ye - * Date: 03/05/2014 - */ -#include "aliascheck.h" - -int a_int = 10; -int* p_int = &a_int; -int** pp_int = &p_int; - -int main() { - int b_int = a_int; - int* q_int = p_int; - int** qq_int = pp_int; - MUSTALIAS(*qq_int, q_int); - MUSTALIAS(q_int, &a_int); - return 0; -} diff --git a/src/basic_c_tests/heap-indirect.c b/src/basic_c_tests/heap-indirect.c deleted file mode 100644 index a9983fd6..00000000 --- a/src/basic_c_tests/heap-indirect.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Heap - * Author: Sen Ye - * Date: 12/10/2013 - * Description: heap objects are identified according to their - * allocation sites. - */ -#include "aliascheck.h" - -// return two malloc object -void malloc_two(int **p, int **q) { - *p = (int*) malloc(sizeof(int)); - *q = (int*) malloc(sizeof(int)); -} - -int main() { - int **o1 = malloc(100); - int **o2 = malloc(100); - malloc_two(o1, o2); - NOALIAS(*o1, *o2); - return 0; -} diff --git a/src/basic_c_tests/heap-linkedlist.c b/src/basic_c_tests/heap-linkedlist.c deleted file mode 100644 index 531cb0fb..00000000 --- a/src/basic_c_tests/heap-linkedlist.c +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Heap - * Author: Sen Ye - * Date: 15/10/2013 - * Description: heap objects are identified according to their - * allocation sites. - */ -#include "aliascheck.h" - -struct Node { - int *data; - struct Node *next; -}; - -// return two malloc object -void malloc_list(struct Node *p, int num) { - int *p_data1=NULL, *p_data2=NULL; - struct Node *p_next = NULL; - p->data = NULL; - while (num!=0) { - p->data = (int *) malloc(sizeof(int)); - p_data1 = p->data; - p_next = (struct Node*) malloc(sizeof(struct Node)); - p->next = p_next; - p_data2 = p->data; - num--; - } - MAYALIAS(p_data1, p_data2); - NOALIAS(p_next, p_data1); -} - -int main() { - struct Node* head = (struct Node*) malloc(sizeof(struct Node)); - int num = 4; - malloc_list(head, num); - NOALIAS(head->next->data, head->next->next); - return 0; -} diff --git a/src/basic_c_tests/heap-wrapper.c b/src/basic_c_tests/heap-wrapper.c deleted file mode 100644 index f0bc6bbf..00000000 --- a/src/basic_c_tests/heap-wrapper.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Heap - * Author: Sen Ye - * Date: 12/10/2013 - * Description: heap objects are identified according to their - * allocation sites. - */ -#include "aliascheck.h" - -// return one malloc object -int * my_alloc() { - int * p = (int *) malloc(sizeof(int)); - return p; -} - -int main() { - int * o1 = my_alloc(); - int * o2 = my_alloc(); - MAYALIAS(o1, o2); - return 0; -} diff --git a/src/basic_c_tests/int2pointer.c b/src/basic_c_tests/int2pointer.c deleted file mode 100644 index 0ab35914..00000000 --- a/src/basic_c_tests/int2pointer.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Alias due to casting between - * integer and pointer. - * Author: Sen Ye - * Date: 06/09/2013 - */ - -#include "aliascheck.h" - -struct MyStruct { - int f1; - int f2; -}; - -int main() { - struct MyStruct ms; - int *p, *q; - p = &(ms.f1); - // cast pointer to integer - int addr = (int)p; - // cast integer to pointer and - // q would point to blackhole - q = (int*)addr + 1; - EXPECTEDFAIL_MAYALIAS(p, q); - return 0; -} diff --git a/src/basic_c_tests/mesa.c b/src/basic_c_tests/mesa.c deleted file mode 100644 index 3a7397a3..00000000 --- a/src/basic_c_tests/mesa.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Testcases from 177.mesa. - * Author: Sen Ye - * Date: 12/05/2014 - */ -#include -#include - -void gl_Accum(int* x, unsigned y, float z) -{} - -struct gl_api_table { - void (*Accum)(int*, unsigned, float); -}; - - -void check_pointers(struct gl_api_table* table) -{ - void **entry; - int numentries = sizeof( struct gl_api_table ) / sizeof(void*); - int i; - - entry = (void **) table; - - for (i=0;iAccum = gl_Accum; -} - -int main() -{ - struct gl_api_table* table = (struct gl_api_table*)calloc(1, sizeof(struct gl_api_table)); - init_exec_pointers( table ); - check_pointers( table ); - return 0; -} diff --git a/src/basic_c_tests/ptr-dereference1.c b/src/basic_c_tests/ptr-dereference1.c deleted file mode 100644 index 3034e122..00000000 --- a/src/basic_c_tests/ptr-dereference1.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Simple alias check - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -int main() -{ - int a,b,*c,*d; - c = &a; - d = &a; - MUSTALIAS(c,d); - c = &b; - // In LLVM, every declared variable is address-taken - // accessed via pointers through loads/stores - // c here is loaded from the same memory on LLVM's partial SSA form - MAYALIAS(c,d); - NOALIAS(&b,d); - return 0; -} diff --git a/src/basic_c_tests/ptr-dereference2.c b/src/basic_c_tests/ptr-dereference2.c deleted file mode 100644 index 0eded2dc..00000000 --- a/src/basic_c_tests/ptr-dereference2.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "aliascheck.h" - -int main(){ - - int **a, *b, *x ,c; - c = 10; - a = &b; - b = &c; - x = *a; - int y = *x; - MUSTALIAS(x,&c); - MUSTALIAS(x,b); - return 0; -} diff --git a/src/basic_c_tests/ptr-dereference3.c b/src/basic_c_tests/ptr-dereference3.c deleted file mode 100644 index b28b3837..00000000 --- a/src/basic_c_tests/ptr-dereference3.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "aliascheck.h" -void foo(int q){ - int i = 10; - int k = i; - -} -int main(){ - -int *s,*r,*x,**y,t,z,k; - s = &t; - r = &z; - y = &r; - s = r; - MUSTALIAS(s,&z); - x = *y; - MUSTALIAS(x,r); - foo(k); -return 0; -} diff --git a/src/basic_c_tests/spec-equake.c b/src/basic_c_tests/spec-equake.c deleted file mode 100644 index 9e193f29..00000000 --- a/src/basic_c_tests/spec-equake.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Quake benchmark - * Loukas Kallivokas and David O'Hallaron - * Carnegie Mellon University, November, 1997 - * http://www.cs.umd.edu/~hollings/cs714/f15/quake.c - */ -#include -#include -#include -#include -#include "aliascheck.h" -#define AMAX_NAME 128 - -#ifndef PI -# define PI 3.141592653589793238 -#endif - -/*--------------------------------------------------------------------------*/ - -double ***disp, ***K; -double **v; -int *ARCHmatrixindex, *Acol; - - -int main(int argc, char **argv) -{ - int i, j, k, disptplus, pp; - int Anext, Alast, col; - double sum0, sum1, sum2, sum3; - - - disp = (double ***) malloc( 3*sizeof(double**)); - for(disptplus = 0; disptplus < 3; disptplus++){ - disp[disptplus] = (double **) malloc( 5000*sizeof(double*)); - for(i = 0; i < 5000; i++) - disp[disptplus][i] = (double *) malloc( 4*sizeof(double)); - } - if(disp[2][4999] == NULL) - {printf("null pointer 2!\n"); return 0;} - - K = (double ***) malloc( 3*sizeof(double**)); - for(disptplus = 0; disptplus < 3; disptplus++){ - K[disptplus] = (double **) malloc( 5000*sizeof(double*)); - for(i = 0; i < 5000; i++) - K[disptplus][i] = (double *) malloc( 4*sizeof(double)); - } - if(K[2][4999] == NULL) - {printf("null pointer 2!\n"); return 0;} - - v = (double **) malloc( 5000*sizeof(double*)); - for(i = 0; i < 5000; i++) - v[i] = (double *) malloc( 4*sizeof(double)); - if(v[4999] == NULL) - {printf("null pointer 2!\n"); return 0;} - - ARCHmatrixindex = (int *) malloc( 5001*sizeof(int)); - if(ARCHmatrixindex == NULL) - {printf("null pointer 2!\n"); return 0;} - - Acol = (int *) malloc( 4*sizeof(int)); - if(Acol == NULL) - {printf("null pointer 2!\n"); return 0;} - - for(disptplus = 0; disptplus < 3; disptplus++) - for (i = 0; i < 5000; i++) - for (j = 0; j < 4; j++){ - disp[disptplus][i][j] = 0.0; - K[disptplus][i][j] = 1.1*i + j; - } - - for (i = 0; i < 5000; i++) - for (j = 0; j < 4; j++) - v[i][j] = 1.1*i + j; - - for(i = 0; i < 5001; i=i+3){ - ARCHmatrixindex[i] = 0; - ARCHmatrixindex[i+1] = 1; - ARCHmatrixindex[i+2] = 2; - } - - for(i = 0; i < 4; i++){ - Acol[i] = 300*i; - } - - -for(pp = 0; pp < 100000; pp++){ - for (i = 0; i < 5000; i++) { - - Anext = ARCHmatrixindex[i]; - Alast = ARCHmatrixindex[i + 1]; - - - while (Anext < Alast) { - col = Acol[Anext]; - - - disp[1][col][0] += K[Anext][0][0]*v[i][0] + K[Anext][1][0]*v[i][1] + K[Anext][2][0]*v[i][2]; - disp[1][col][1] += K[Anext][0][1]*v[i][0] + K[Anext][1][1]*v[i][1] + K[Anext][2][1]*v[i][2]; - disp[1][col][2] += K[Anext][0][2]*v[i][0] + K[Anext][1][2]*v[i][1] + K[Anext][2][2]*v[i][2]; - disp[1][col][3] += K[Anext][0][3]*v[i][0] + K[Anext][1][3]*v[i][1] + K[Anext][2][3]*v[i][2]; - NOALIAS(disp,K); - NOALIAS(disp,v); - NOALIAS(disp[1],K[Anext]); - NOALIAS(disp[1],v[i]); - NOALIAS(disp[1][col],v[i]); - Anext++; - } - - - } -} - - double rst = disp[1][4999][2]; - - for(disptplus = 0; disptplus < 3; disptplus++){ - for(i = 0; i < 5000; i++) - free(disp[disptplus][i]); - free(disp[disptplus]); - } - free(disp); - - for(disptplus = 0; disptplus < 3; disptplus++){ - for(i = 0; i < 5000; i++) - free(K[disptplus][i]); - free(K[disptplus]); - } - free(K); - - for(i = 0; i < 5000; i++) - free(v[i]); - free(v); - - free(ARCHmatrixindex); - free(Acol); - - - - if(rst > 5.5) - return 0; - else - return 1; - -} -/* --------------------------------------------------------------------------*/ - - - - diff --git a/src/basic_c_tests/spec-gap.c b/src/basic_c_tests/spec-gap.c deleted file mode 100644 index 762fd186..00000000 --- a/src/basic_c_tests/spec-gap.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Testcases from 254.gap. - * Author: Sen Ye - * Date: 12/05/2014 - */ -#include -#include "aliascheck.h" - -/// Note that `SyGetmem` is summarized lib function (with side-effect ExtAPI::EFT_ALLOC) in ExtAPI.cpp, we will use SVF's summmary instead of this user defined function -char * SyGetmem ( long size ); - -typedef struct TypHeader { - struct TypHeader * * ptr; -} * TypHandle; - -TypHandle HdFree; -TypHandle FreeHandle; -TypHandle* FirstBag; - -void IntComm () {} - -TypHandle NewBag() { - long needed; - TypHandle *d, *s, *e; - TypHandle h; - - d = ((TypHandle*)((HdFree)->ptr)) + needed / (sizeof(TypHandle)) - 1; - s = ((TypHandle*)((HdFree)->ptr)) - 1; - e = (FirstBag-1); - while ( e <= s ) *d-- = *s--; - MAYALIAS(*s, &IntComm); - - for (h=HdFree; h < (TypHandle)(FirstBag-1); ++h) - h->ptr += needed / (sizeof(TypHandle)); - - h->ptr = (TypHandle*)FreeHandle; - FreeHandle = h; - - return FreeHandle; -} - -void InstIntFunc(void (*func)()) { - TypHandle hdDef = NewBag(); - *(void(**)())((TypHandle*)((hdDef)->ptr)) = func; -} - -void InitGasman() { - long SyMemory; - HdFree = (TypHandle)SyGetmem( SyMemory ); - FreeHandle = (TypHandle)((TypHandle*)((FreeHandle)->ptr)); -} - -int main() { - InitGasman(); - InstIntFunc(IntComm); - return 0; -} diff --git a/src/basic_c_tests/spec-mesa.c b/src/basic_c_tests/spec-mesa.c deleted file mode 100644 index c1347521..00000000 --- a/src/basic_c_tests/spec-mesa.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Heap and structures like 177.mesa - * Author: Sen Ye - * Date: 09/09/2013 - */ -#include "aliascheck.h" - -void begin(int *p, int *q) { - NOALIAS(p,q); -} - -void end(int *p, int *q) { - MAYALIAS(p,q); // should be NOALIAS under context-sensitive -} - -void render(int *p, int *q) { - MAYALIAS(p,q); -} - -struct api_table { - void (*Begin)(int *, int *); - void (*End)(int *, int *); - void (*Render)(int *, int *); -}; - -struct context { - struct api_table API; - struct api_table Exec; -}; - -struct mesa_context { - struct context * ctx; -}; - -void init_exec_pointers(struct api_table * table) { - table->Begin = begin; - table->End = end; - table->Render = render; -} - -void init_api_function(struct context * ctx) { - init_exec_pointers(&ctx->Exec); -} - -struct context * create_context() { - // Create heap objects here - struct context * ctx = (struct context*)malloc(sizeof(struct context)); - init_api_function(ctx); - // If field-sensitive, following statement would create another two heap - // objects - ctx->API = ctx->Exec; - return ctx; -} - -struct context * CC; - -void change_context(struct context * ctx) { - CC = ctx; -} - -void make_current(struct mesa_context * ctx) { - change_context(ctx->ctx); -} - -void draw(int *p, int *q, int *r) { - (*CC->API.Begin)(p, q); - if (p) - q = r; - if (*CC->API.Render) { - (*CC->API.Render)(q, r); - (*CC->API.End)(p, r); - } - else - (*CC->API.End)(q, p); -} - -void delete_context(struct context * ctx) { - free (ctx); -} - -int main() { - int x,y,z; - struct mesa_context * mesa = (struct mesa_context*)malloc(sizeof(struct mesa_context)); - mesa->ctx = create_context(); - make_current(mesa); - draw(&x, &y, &z); - delete_context(mesa->ctx); - free(mesa); - return 0; -} diff --git a/src/basic_c_tests/spec-parser.c b/src/basic_c_tests/spec-parser.c deleted file mode 100644 index 2971e37f..00000000 --- a/src/basic_c_tests/spec-parser.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Aliases resulted by heap model in 197.parser. - * Author: Sen Ye - * Date: 09/05/2014 - */ -#include "aliascheck.h" -#include - -typedef struct X_node_struct X_node; -struct X_node_struct { - int* string; - X_node *next; -}; - -typedef struct Word_struct Word; -struct Word_struct { - int* string; - X_node * x; -}; - -typedef struct clause_struct Clause; -struct clause_struct { - Clause * next; -}; - -/* Only one heap object O is allocated by xalloc() and - * it will used in build_clause() and special_string(). - */ -void * xalloc(int size) { - return (void *) malloc(1000); -} - -Word sentence[250]; - -void build_clause() { - Clause *c=NULL, *c1, *c2; - - c1 = (Clause*) xalloc(sizeof (Clause)); - while(c1 != NULL) { - c2 = c1->next; /* c2 = pts(c1) */ - c1->next = c; /* pts(c1) = c */ - c = c1; /* c = c1 */ - c1 = c2; /* c1 = c2 */ - } - NOALIAS(sentence[0].string, c1); -} - -void special_string(int i) { - X_node * e; - /* The unique heap object O will points-to object of - sentence's first field after following code. */ - sentence[i].x = (X_node *) xalloc(sizeof(X_node)); - for (e = sentence[i].x; e != NULL; e = e->next) { - e->string = sentence[i].string; - } -} - -int main() { - build_clause(); - special_string(10); - return 0; -} diff --git a/src/basic_c_tests/spec-vortex.c b/src/basic_c_tests/spec-vortex.c deleted file mode 100644 index 896e4c31..00000000 --- a/src/basic_c_tests/spec-vortex.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Aliases resulted by context-insensitive and heap model in 255.vortex. - * Author: Sen Ye - * Date: 12/05/2014 - */ -#include -#include "aliascheck.h" - -typedef void *AddrType; -typedef AddrType addrtype; - -typedef struct Ory -{ - addrtype *ChunkAddr; -} OryType; - -OryType *Theory = NULL; - -typedef struct Rectangle -{ - void (*draw) (int* p, float* q); -} Rectangle; - -void Rectangle_draw(int* p, float* q) {} -addrtype Void_ExtendCore(long* p){} - -void CoreMoreCore(addrtype *Region) -{ - long AllocCore1 = 0; - *Region = (addrtype)Void_ExtendCore(&AllocCore1); -} - -void MemNewOry() -{ - addrtype *ChunkAddrPtr = NULL; - addrtype ChunkBlk = (addrtype)calloc(1,sizeof(addrtype)); - - CoreMoreCore((addrtype*)(&Theory)); - - if ((Theory->ChunkAddr = (addrtype*)ChunkBlk) != NULL) - { - ChunkAddrPtr = Theory->ChunkAddr; - *ChunkAddrPtr = (addrtype)ChunkAddrPtr; - } -} - -void MemGetAddr(unsigned Chunk, unsigned index, addrtype *Addr) -{ - *Addr = *(((addrtype*)((Theory->ChunkAddr[Chunk])))+index); -} - -void Object_GetImage(addrtype *This) -{ - unsigned chunk, index; - MemGetAddr(chunk, index, This); -} - -void Rectangle_new0() -{ - Rectangle* Image = NULL; - Object_GetImage((addrtype*)&Image); - Image->draw = Rectangle_draw; -} - -void PartLib_Create(int **PrimalObj) -{ - Object_GetImage((addrtype *)PrimalObj); -} - -int* PartLib01 = NULL; - -int main() -{ - PartLib_Create(&PartLib01); - NOALIAS(PartLib01, &Rectangle_draw); - return 0; -} diff --git a/src/basic_c_tests/struct-array.c b/src/basic_c_tests/struct-array.c deleted file mode 100644 index f48629c2..00000000 --- a/src/basic_c_tests/struct-array.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Struct with array. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct ArrayStruct { - int f1; - char f2; - int f3[100]; - int f4; -}; - -int main() { - struct ArrayStruct* p; - struct ArrayStruct s; - int* q; - - p = &s; - q = &s.f3[40]; - MAYALIAS(&p->f3[10], q); - MAYALIAS(&p->f3[20], &p->f3[30]); - MAYALIAS(&s.f3[0], &s.f3[99]); - NOALIAS(&p->f3[0], &s.f4); - - return 0; -} diff --git a/src/basic_c_tests/struct-assignment-direct.c b/src/basic_c_tests/struct-assignment-direct.c deleted file mode 100644 index 019e8e01..00000000 --- a/src/basic_c_tests/struct-assignment-direct.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Alias due to struct assignment - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct s{ - int *a; - int b; -}; - -int main() -{ - struct s s1, s2; - struct s * p1; - int x, y; - s1.a = &x; - s1.b = y; - s2 = s1; - MUSTALIAS(s2.a, s1.a); - return 0; -} diff --git a/src/basic_c_tests/struct-assignment-indirect.c b/src/basic_c_tests/struct-assignment-indirect.c deleted file mode 100644 index 055dfebf..00000000 --- a/src/basic_c_tests/struct-assignment-indirect.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Alias due to struct assignment - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct s{ - int *a; - int *b; -}; - -int main() -{ - struct s s1, s2; - struct s * p1; - int x, y; - s1.a = &x; - s1.b = &y; - s2 = s1; - p1 = &s1; - MUSTALIAS(p1->a, s2.a); - MUSTALIAS(p1->b, s2.b); - return 0; -} diff --git a/src/basic_c_tests/struct-assignment-nested.c b/src/basic_c_tests/struct-assignment-nested.c deleted file mode 100644 index c96849d9..00000000 --- a/src/basic_c_tests/struct-assignment-nested.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Struct assignment. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct InnerArrayStruct { - int* in1[10]; - int* in2[20]; - char in3; -}; - -struct MidArrayStruct { - char mid1[10]; - struct InnerArrayStruct mid2[5]; -}; - -struct ArrayStruct { - char out2; - struct MidArrayStruct out3; - int* out4; -}; - -int main() { - struct ArrayStruct* p; - struct ArrayStruct s1, s2; - int x, y; - - s1.out4 = &x; - p = &s1; - p->out3.mid2[3].in1[3] = &y; - - s2 = s1; - - MUSTALIAS(s2.out4, &x); - MAYALIAS(s2.out3.mid2[1].in1[1], &y); - MAYALIAS(s2.out3.mid2[3].in1[20], &y); - - return 0; -} diff --git a/src/basic_c_tests/struct-field-multi-dereference.c b/src/basic_c_tests/struct-field-multi-dereference.c deleted file mode 100644 index 25217ad9..00000000 --- a/src/basic_c_tests/struct-field-multi-dereference.c +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Alias due to struct. - * Author: Sen Ye - * Date: 10/10/2013 - */ - -#include "aliascheck.h" - -struct MyStruct { - int * f1; - struct MyStruct *f2; -}; - -int main() { - struct MyStruct *p, *q; - struct MyStruct ms1, ms2; - int x; - p = &ms1; - q = &ms1; - ms1.f2 = &ms2; - p->f2->f1 = &x; - MAYALIAS(q->f2->f1, &x); - return 0; -} diff --git a/src/basic_c_tests/struct-idx-inbound.c b/src/basic_c_tests/struct-idx-inbound.c deleted file mode 100644 index c906e760..00000000 --- a/src/basic_c_tests/struct-idx-inbound.c +++ /dev/null @@ -1,19 +0,0 @@ -extern void NOALIAS(void*,void*); - -struct S {int f0; int f1; int f2;}; - -int main() -{ - struct S s; - void *a, *b, *c, *d; - - a = &s; - b = &((struct S*) a)->f1; - c = &((struct S*) b)->f1; - d = &((struct S*) a)->f1; - - NOALIAS(c,d); - - return 0; -} - diff --git a/src/basic_c_tests/struct-idx-overflow.c b/src/basic_c_tests/struct-idx-overflow.c deleted file mode 100644 index a6811f42..00000000 --- a/src/basic_c_tests/struct-idx-overflow.c +++ /dev/null @@ -1,19 +0,0 @@ -extern void NOALIAS(void*,void*); - -struct S {int f0; int f1; int f2;}; - -int main() -{ - struct S s; - void *a, *b, *c, *d; - - a = &s; - b = &((struct S*) a)->f2; - c = &((struct S*) b)->f2; - d = &((struct S*) a)->f1; - - NOALIAS(c,d); - - return 0; -} - diff --git a/src/basic_c_tests/struct-incompab-typecast-nested.c b/src/basic_c_tests/struct-incompab-typecast-nested.c deleted file mode 100644 index c983c666..00000000 --- a/src/basic_c_tests/struct-incompab-typecast-nested.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Struct casting. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct InnerStruct { - char in1; - int* in2; -}; - -struct SrcStruct { - int* f1[10]; - char f2[10]; - struct InnerStruct f3[5]; - char f4; -}; - -struct DstStruct { - int* f1[10]; - char f2[20]; - struct InnerStruct f3[5]; -}; - -int main() { - struct DstStruct* pdst; - struct SrcStruct* psrc; - struct SrcStruct s; - int x, y, z; - - psrc = &s; - psrc->f1[3] = &x; - psrc->f3[2].in2 = &y; - - pdst = psrc; - - MAYALIAS(pdst->f1[9], &x); - MAYALIAS(pdst->f3[3].in2, &y); - NOALIAS(psrc->f1[2], &z); - - pdst->f3[1].in2 = &z; - MAYALIAS(psrc->f3[1].in2, &z); - - return 0; -} diff --git a/src/basic_c_tests/struct-incompab-typecast.c b/src/basic_c_tests/struct-incompab-typecast.c deleted file mode 100644 index 6437ac3e..00000000 --- a/src/basic_c_tests/struct-incompab-typecast.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Struct casting. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct SrcStruct { - int* f1; - int* f2; - char f3; -}; - -struct DstStruct { - char f1; - int* f2; - int* f3; -}; - -int main() { - struct DstStruct* pdst; - struct SrcStruct* psrc; - struct SrcStruct s; - int x, y, z; - - psrc = &s; - psrc->f1 = &x; - psrc->f2 = &y; - - pdst = (struct DstStruct*)psrc; - - EXPECTEDFAIL_MAYALIAS(pdst->f2, &x); - MAYALIAS(pdst->f2, &y); - - pdst->f3 = &z; - EXPECTEDFAIL_MAYALIAS(psrc->f2, &z); - - return 0; -} diff --git a/src/basic_c_tests/struct-instance-return.c b/src/basic_c_tests/struct-instance-return.c deleted file mode 100644 index 974ff738..00000000 --- a/src/basic_c_tests/struct-instance-return.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Return a struct instance from function. - * Author: Sen Ye - * Date: 07/05/2014 - */ -#include "aliascheck.h" - -struct MyStruct { - int* f1; - char f2; -}; - -int x, y; - -struct MyStruct foo() { - struct MyStruct m; - m.f1 = &x; - return m; -} - -int main() { - struct MyStruct m; - m = foo(); - EXPECTEDFAIL_MAYALIAS(m.f1, &x); /// This alias holds because m points to black hole object. - NOALIAS(m.f1, &y); - return 0; -} diff --git a/src/basic_c_tests/struct-nested-1-layer.c b/src/basic_c_tests/struct-nested-1-layer.c deleted file mode 100644 index 8f348c7a..00000000 --- a/src/basic_c_tests/struct-nested-1-layer.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Nested structs - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct MyStruct2 { - int * f3; - int * f4; -}; - -struct MyStruct1 { - int *f1; - struct MyStruct2 f2; -}; - -int main() -{ - struct MyStruct1 ms; - struct MyStruct1 *pms1; - struct MyStruct2 *pms2; - int a, b, c; - ms.f1 = &c; - ms.f2.f3 = &a; - ms.f2.f4 = &b; - pms1 = &ms; - pms2 = &ms.f2; - NOALIAS(pms2->f4, pms1->f2.f3); - MUSTALIAS(pms2->f3, pms1->f2.f3); - return 0; -} diff --git a/src/basic_c_tests/struct-nested-2-layers.c b/src/basic_c_tests/struct-nested-2-layers.c deleted file mode 100644 index 12251f45..00000000 --- a/src/basic_c_tests/struct-nested-2-layers.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Struct with nested structs. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct InnerStruct { - int in1; - char in2; -}; - -struct MidStruct { - int mid1; - struct InnerStruct mid2; - char mid3; -}; - -struct OuterStruct { - struct MidStruct out1; - char out2; - struct InnerStruct out3; - int out4; -}; - -int main() { - struct OuterStruct* pout; - struct MidStruct* pmid; - struct MidStruct* ptmp; - struct InnerStruct* itmp; - struct InnerStruct* pin; - struct OuterStruct s; - - pout = &s; - pmid = &s.out1; - ptmp = &pout->out1; - MUSTALIAS(ptmp, pmid); - MUSTALIAS(&(ptmp->mid2.in1), &(pmid->mid2.in1)); - MUSTALIAS(&(ptmp->mid2.in2), &(pmid->mid2.in2)); - - pin = &s.out1.mid2; - itmp = &pout->out1.mid2; - MUSTALIAS(itmp, pin); - MUSTALIAS(&(itmp->in1), &(pin->in1)); - MUSTALIAS(&(itmp->in2), &(pin->in2)); - - NOALIAS(&pout->out3, pin); - - return 0; -} diff --git a/src/basic_c_tests/struct-nested-array1.c b/src/basic_c_tests/struct-nested-array1.c deleted file mode 100644 index 79d2faa1..00000000 --- a/src/basic_c_tests/struct-nested-array1.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Struct with array of structs. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct InnerArrayStruct { - int f1[100]; -}; - -struct ArrayStruct { - int f1; - char f2; - struct InnerArrayStruct f3; - int f4; -}; - -int main() { - struct ArrayStruct* p; - struct ArrayStruct s; - int* q; - - p = &s; - q = &s.f3.f1[40]; - MAYALIAS(&p->f3.f1[10], q); - MAYALIAS(&p->f3.f1[20], &p->f3.f1[30]); - NOALIAS(&p->f3.f1[0], &s.f4); - - return 0; -} diff --git a/src/basic_c_tests/struct-nested-array2.c b/src/basic_c_tests/struct-nested-array2.c deleted file mode 100644 index 6daaad38..00000000 --- a/src/basic_c_tests/struct-nested-array2.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Struct with array of structs and pointers. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct InnerArrayStruct { - int* in1[10]; - char in2; - double in3; -}; - -struct MidArrayStruct { - char mid1; - struct InnerArrayStruct mid2[5]; - double mid3[20]; -}; - -struct ArrayStruct { - int out1; - char out2; - struct MidArrayStruct out3; - int* out4; -}; - -int main() { - struct ArrayStruct* p; - struct ArrayStruct s; - int x, y; - - s.out4 = &x; - p = &s; - p->out3.mid2[2].in1[2] = s.out4; - p->out3.mid2[3].in1[3] = &y; - - MAYALIAS(p->out3.mid2[1].in1[1], &x); - MAYALIAS(s.out3.mid2[3].in1[0], &y); - - return 0; -} diff --git a/src/basic_c_tests/struct-nested-array3.c b/src/basic_c_tests/struct-nested-array3.c deleted file mode 100644 index 49663138..00000000 --- a/src/basic_c_tests/struct-nested-array3.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Struct with array of structs. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct InnerArrayStruct { - int in1[10]; - char in2; - double in3; -}; - -struct MidArrayStruct { - char mid1; - struct InnerArrayStruct mid2[5]; - double mid3[20]; -}; - -struct ArrayStruct { - int out1; - char out2; - struct MidArrayStruct out3; - int out4; -}; - -int main() { - struct ArrayStruct* p; - struct ArrayStruct s; - - p = &s; - - MUSTALIAS(&p->out4, &s.out4); - - // array index out of bound - MAYALIAS(&p->out3.mid2[10].in1[10], &s.out3.mid2[4000]); - MAYALIAS(&p->out3.mid2[20], &p->out3.mid2[30]); - NOALIAS(&p->out3.mid2[3].in3, &s.out3.mid3[2]); - NOALIAS(&p->out3.mid2[0], &s.out4); - - return 0; -} diff --git a/src/basic_c_tests/struct-onefld.c b/src/basic_c_tests/struct-onefld.c deleted file mode 100644 index 28a5df57..00000000 --- a/src/basic_c_tests/struct-onefld.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Struct with one field. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct IntStruct { - int f1; -}; - -struct CharStruct { - char f1; -}; - -int main() { - struct IntStruct* pint1, *pint2; - struct IntStruct s; - pint1 = &s; - pint2 = &s; - MUSTALIAS(&pint1->f1, &pint2->f1); - MUSTALIAS(&pint1->f1, &s.f1); - - struct CharStruct* qint1, *qint2; - struct CharStruct t; - qint1 = &t; - qint2 = &t; - MUSTALIAS(&qint1->f1, &qint2->f1); - MUSTALIAS(&qint1->f1, &t.f1); - - return 0; -} diff --git a/src/basic_c_tests/struct-simple.c b/src/basic_c_tests/struct-simple.c deleted file mode 100644 index 99fb0c98..00000000 --- a/src/basic_c_tests/struct-simple.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Alias due to struct assignment - * Author: Sen Ye - * Date: 06/09/2013 - */ -#include "aliascheck.h" - -struct s{ - int *a; - int b; -}; - -int main() -{ - struct s s1, s2; - int x, y; - s1.a = &x; - s2.a = s1.a; - MUSTALIAS(s2.a, &x); - return 0; -} diff --git a/src/basic_c_tests/struct-twoflds.c b/src/basic_c_tests/struct-twoflds.c deleted file mode 100644 index 9b5cb721..00000000 --- a/src/basic_c_tests/struct-twoflds.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Struct with multiple fields. - * Author: Sen Ye - * Date: 28/04/2014 - */ -#include "aliascheck.h" - -struct IntChar { - int f1; - char f2; -}; - -struct CharInt { - char f1; - int f2; -}; - -int main() { - struct IntChar* pint1, *pint2; - struct IntChar s; - pint1 = &s; - pint2 = &s; - MUSTALIAS(&pint1->f1, &pint2->f1); - MUSTALIAS(&pint1->f2, &pint2->f2); - NOALIAS(&pint1->f1, &pint2->f2); - - struct CharInt* qint1, *qint2; - struct CharInt t; - qint1 = &t; - qint2 = &t; - MUSTALIAS(&qint1->f1, &qint2->f1); - MUSTALIAS(&qint1->f2, &qint2->f2); - NOALIAS(&qint1->f1, &qint2->f2); - - return 0; -} diff --git a/src/basic_c_tests/structcopy1.c b/src/basic_c_tests/structcopy1.c deleted file mode 100644 index 6b468061..00000000 --- a/src/basic_c_tests/structcopy1.c +++ /dev/null @@ -1,17 +0,0 @@ -extern MAYALIAS(void*,void*); -struct innerStruct{ -int m; -int* n; -}; -struct myStruct{ -float a; -struct innerStruct b; -}; - -int main(){ - struct myStruct x; - x.b.n = malloc(10); - struct myStruct y; - memcpy(&y,&x,sizeof(struct myStruct)); - MAYALIAS(x.b.n,y.b.n); -} diff --git a/src/basic_cpp_tests/abstract.cpp b/src/basic_cpp_tests/abstract.cpp deleted file mode 100644 index 2fe8a2f4..00000000 --- a/src/basic_cpp_tests/abstract.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "aliascheck.h" - -int global_obj_f; -int *global_ptr_f = &global_obj_f; - -int global_obj_g; -int *global_ptr_g = &global_obj_g; - -class A { - public: - virtual void f(int *i) = 0; - virtual void g(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - } -}; - -class B: public A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - } - virtual void g(int *i) { - NOALIAS(global_ptr_f, i); - MUSTALIAS(global_ptr_g, i); - } -}; - -int main() -{ - int *ptr_f = &global_obj_f; - int *ptr_g = &global_obj_g; - - A *a = new B; - a->f(ptr_f); - a->g(ptr_g); - - return 0; -} \ No newline at end of file diff --git a/src/basic_cpp_tests/array-1.cpp b/src/basic_cpp_tests/array-1.cpp deleted file mode 100644 index 312812bf..00000000 --- a/src/basic_cpp_tests/array-1.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - array aarray; - A *a0 = new A; - A *a1 = new A; - - aarray[0] = a1; - aarray[1] = a1; - - const A *aptr = aarray[0]; - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/array-2.cpp b/src/basic_cpp_tests/array-2.cpp deleted file mode 100644 index bc30e3cd..00000000 --- a/src/basic_cpp_tests/array-2.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - array aarray; - A *a0 = new A; - A *a1 = new A; - - aarray[0] = a1; - aarray[1] = a1; - - const A *aptr = aarray.front(); - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/array-3.cpp b/src/basic_cpp_tests/array-3.cpp deleted file mode 100644 index 3dbc3099..00000000 --- a/src/basic_cpp_tests/array-3.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - array aarray; - A *a0 = new A; - A *a1 = new A; - - aarray[0] = a1; - aarray[1] = a1; - - const A *aptr = aarray.back(); - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/clean.sh b/src/basic_cpp_tests/clean.sh deleted file mode 100644 index 548f302d..00000000 --- a/src/basic_cpp_tests/clean.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -for i in `find . -name '*.ll'` -do - echo delete $i - rm -rf $i -done -for i in `find . -name '*.wpa'` -do - echo delete $i - rm -rf $i -done diff --git a/src/basic_cpp_tests/constructor-1.cpp b/src/basic_cpp_tests/constructor-1.cpp deleted file mode 100644 index 6799800d..00000000 --- a/src/basic_cpp_tests/constructor-1.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - A(int *i) { f(i); } - virtual void f(int *i) { MUSTALIAS(global_ptr, i); } -}; - -class B: public A { - public: - B(int *i): A(i) { f(i); } - virtual void f(int *i) { MUSTALIAS(global_ptr, i); } -}; - -int main(void) -{ - int *i = &global_obj; - - B b(i); - - return 0; -} diff --git a/src/basic_cpp_tests/constructor-2.cpp b/src/basic_cpp_tests/constructor-2.cpp deleted file mode 100644 index da7e761c..00000000 --- a/src/basic_cpp_tests/constructor-2.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A; - -void g(A *p, int *i); - -class A { - public: - A(int *i) { g(this, i); } - virtual void f(int *i) { MUSTALIAS(global_ptr, i); } -}; - -class B: public A { - public: - B(int *i): A(i) { g(this, i); } - virtual void f(int *i) { MUSTALIAS(global_ptr, i); } -}; - -void g(A *p, int *i) { - p->f(i); -} - -int main(int argc, char **argv) -{ - int *i = &global_obj; - - B b(i); - - return 0; -} diff --git a/src/basic_cpp_tests/deque-1.cpp b/src/basic_cpp_tests/deque-1.cpp deleted file mode 100644 index 51ee9014..00000000 --- a/src/basic_cpp_tests/deque-1.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - deque adeque; - A a; - adeque.push_back(&a); - - const A *aptr = adeque.front(); - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/deque-2.cpp b/src/basic_cpp_tests/deque-2.cpp deleted file mode 100644 index 14f19179..00000000 --- a/src/basic_cpp_tests/deque-2.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - deque adeque; - A a; - adeque.push_back(&a); - - deque::iterator it = adeque.begin(); - const A *aptr = *it; - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/deque-3.cpp b/src/basic_cpp_tests/deque-3.cpp deleted file mode 100644 index 12564717..00000000 --- a/src/basic_cpp_tests/deque-3.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - deque adeque; - A a; - adeque.push_back(a); - - const A *aptr = &adeque.front(); - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/deque-4.cpp b/src/basic_cpp_tests/deque-4.cpp deleted file mode 100644 index 2d05155b..00000000 --- a/src/basic_cpp_tests/deque-4.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - deque adeque; - A a; - adeque.push_back(a); - - deque::iterator it = adeque.begin(); - const A *aptr = &*it; - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/destructor-1.cpp b/src/basic_cpp_tests/destructor-1.cpp deleted file mode 100644 index 90467029..00000000 --- a/src/basic_cpp_tests/destructor-1.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - A(int *i): aptr(i) {} - virtual ~A() { f(); } - virtual void f() { MUSTALIAS(global_ptr, aptr); } - private: - int *aptr; -}; - -class B: public A { - public: - B(int *i): A(i), bptr(i) {} - virtual ~B() { f(); } - virtual void f() { MUSTALIAS(global_ptr, bptr); } - private: - int *bptr; -}; - -int main(void) -{ - int *i = &global_obj; - - B *b = new B(i); - - delete b; - - return 0; -} diff --git a/src/basic_cpp_tests/destructor-2.cpp b/src/basic_cpp_tests/destructor-2.cpp deleted file mode 100644 index edc58f3e..00000000 --- a/src/basic_cpp_tests/destructor-2.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A; - -void g(A *p); - -class A { - public: - A(int *i): aptr(i) {} - virtual ~A() { g(this); } - virtual void f() { MUSTALIAS(global_ptr, aptr); } - private: - int *aptr; -}; - -class B: public A { - public: - B(int *i): A(i), bptr(i) {} - virtual ~B() { g(this); } - virtual void f() { MUSTALIAS(global_ptr, bptr); } - private: - int *bptr; -}; - -void g(A *p) { - p->f(); -} - -int main(void) -{ - int *i = &global_obj; - - B *b = new B(i); - - delete b; - - return 0; -} diff --git a/src/basic_cpp_tests/diamond-inheritance.cpp b/src/basic_cpp_tests/diamond-inheritance.cpp deleted file mode 100644 index 84ac3bb8..00000000 --- a/src/basic_cpp_tests/diamond-inheritance.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "aliascheck.h" - -int global_obj_b; -int *global_ptr_b = &global_obj_b; - -int global_obj_c; -int *global_ptr_c = &global_obj_c; - -class A { - public: - virtual void f(int *i) { - NOALIAS(global_ptr_b, i); - NOALIAS(global_ptr_c, i); - } -}; - -class B: public A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_b, i); - MUSTALIAS(global_ptr_c, i); - } -}; - -class C: public A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_b, i); - MUSTALIAS(global_ptr_c, i); - } -}; - -class D: public B, public C { -}; - -int main() -{ - int *ptr_b = &global_obj_b; - int *ptr_c = &global_obj_c; - - D d; - ////// if D has not implemented its own f(), this will cause an error - //d.f(); - - /////// error - //A *a = &d; - //a->f(); - - B *b = &d; - b->f(ptr_b); - - C *c = &d; - c->f(ptr_c); - - return 0; -} diff --git a/src/basic_cpp_tests/dynamic_cast-1.cpp b/src/basic_cpp_tests/dynamic_cast-1.cpp deleted file mode 100644 index 4a5b4311..00000000 --- a/src/basic_cpp_tests/dynamic_cast-1.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) { - NOALIAS(global_ptr, i); - } -}; - -class B: public A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - A *pa = new B; - - if (B *pb = dynamic_cast(pa)) { - pb->f(ptr); - } - - return 0; -} diff --git a/src/basic_cpp_tests/forward_list-1.cpp b/src/basic_cpp_tests/forward_list-1.cpp deleted file mode 100644 index 4daf57a6..00000000 --- a/src/basic_cpp_tests/forward_list-1.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - forward_list alist; - A *a = new A; - - alist.push_front(a); - - const A *aptr = alist.front(); - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/forward_list-2.cpp b/src/basic_cpp_tests/forward_list-2.cpp deleted file mode 100644 index b79077bb..00000000 --- a/src/basic_cpp_tests/forward_list-2.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - forward_list alist; - A *a = new A; - - alist.push_front(a); - - forward_list::iterator it = alist.begin(); - const A *aptr = *it; - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/forward_list-3.cpp b/src/basic_cpp_tests/forward_list-3.cpp deleted file mode 100644 index 9337c6f9..00000000 --- a/src/basic_cpp_tests/forward_list-3.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - forward_list alist; - A a; - - alist.push_front(a); - - const A *aptr = &alist.front(); - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/forward_list-4.cpp b/src/basic_cpp_tests/forward_list-4.cpp deleted file mode 100644 index b98b3eff..00000000 --- a/src/basic_cpp_tests/forward_list-4.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - forward_list alist; - A a; - - alist.push_front(a); - - forward_list::iterator it = alist.begin(); - const A *aptr = &*it; - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/func-ptr-in-class.cpp b/src/basic_cpp_tests/func-ptr-in-class.cpp deleted file mode 100644 index 56fc2b23..00000000 --- a/src/basic_cpp_tests/func-ptr-in-class.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "aliascheck.h" - -int global_obj_f; -int *global_ptr_f = &global_obj_f; - -int global_obj_g; -int *global_ptr_g = &global_obj_g; - -int global_obj_f_v; -int *global_ptr_f_v = &global_obj_f_v; - -int global_obj_g_v; -int *global_ptr_g_v = &global_obj_g_v; - -void f(int *i) { - MUSTALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_f_v, i); - NOALIAS(global_ptr_g_v, i); -} - -void g(int *i) { - NOALIAS(global_ptr_f, i); - MUSTALIAS(global_ptr_g, i); - NOALIAS(global_ptr_f_v, i); - NOALIAS(global_ptr_g_v, i); -} - -class A { - public: - virtual void f(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - MUSTALIAS(global_ptr_f_v, i); - NOALIAS(global_ptr_g_v, i); - } - virtual void g(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_f_v, i); - MUSTALIAS(global_ptr_g_v, i); - } - void (*pf)(int *i); - void (*pg)(int *i); -}; - -int main(void) -{ - int *ptr_f = &global_obj_f; - int *ptr_g = &global_obj_g; - int *ptr_f_v = &global_obj_f_v; - int *ptr_g_v = &global_obj_g_v; - - A *a = new A; - a->pf = &f; - a->pg = &g; - - a->pf(ptr_f); - a->pg(ptr_g); - - a->f(ptr_f_v); - a->g(ptr_g_v); - - return 0; -} diff --git a/src/basic_cpp_tests/global-obj-in-array.cpp b/src/basic_cpp_tests/global-obj-in-array.cpp deleted file mode 100644 index 8bea09f2..00000000 --- a/src/basic_cpp_tests/global-obj-in-array.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include "aliascheck.h" - -using namespace std; - -int globalObj = 10; -int *globalPtr = &globalObj; - -class A { - public: - A(int d): data(d) {} - - virtual void f(int *p) const { - cout << "data: " << data << "\n"; - MUSTALIAS(p, globalPtr); - } - - private: - int data; -}; - -struct TableEntry { - int num; - const A *p; -}; - -A a1(1); -A a2(2); -A a3(3); - -TableEntry theTable[] = { - {1, &a1}, - {2, &a2}, - {3, &a3}, - {0, 0} -}; - -int main(int argc, char **argv) -{ - - for (TableEntry *theEntry = theTable; theEntry->num != 0; ++theEntry) { - const A *p = theEntry->p; - p->f(globalPtr); - } - - return 0; -} diff --git a/src/basic_cpp_tests/list-1.cpp b/src/basic_cpp_tests/list-1.cpp deleted file mode 100644 index ecfb7cfd..00000000 --- a/src/basic_cpp_tests/list-1.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - list alist; - A a; - alist.push_back(&a); - - list::const_iterator it = alist.begin(); - const A *aptr = *it; - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/list-2.cpp b/src/basic_cpp_tests/list-2.cpp deleted file mode 100644 index 0091c21d..00000000 --- a/src/basic_cpp_tests/list-2.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "aliascheck.h" -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - list alist; - A a; - alist.push_back(&a); - - const A *aptr = alist.front(); - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/map-1.cpp b/src/basic_cpp_tests/map-1.cpp deleted file mode 100644 index a8f4ec71..00000000 --- a/src/basic_cpp_tests/map-1.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - map amap; - A a; - amap.insert(pair(0, a)); - - map::const_iterator it = amap.begin(); - const A *aptr = &(it->second); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/map-2.cpp b/src/basic_cpp_tests/map-2.cpp deleted file mode 100644 index 029400e4..00000000 --- a/src/basic_cpp_tests/map-2.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - map amap; - A a; - amap.insert(pair(0, &a)); - - map::const_iterator it = amap.begin(); - const A *aptr = it->second; - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/member-variable.cpp b/src/basic_cpp_tests/member-variable.cpp deleted file mode 100644 index f1ec57dd..00000000 --- a/src/basic_cpp_tests/member-variable.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "aliascheck.h" - -int global_obj_a; -int *global_ptr_a = &global_obj_a; - -int global_obj_b; -int *global_ptr_b = &global_obj_b; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_a, i); - NOALIAS(global_ptr_b, i); - } -}; - -class B { - public: - B(A *a): _a(a) {} - virtual void f(int *i) { - NOALIAS(global_ptr_a, i); - MUSTALIAS(global_ptr_b, i); - } - A *_a; -}; - -int main(int argc, char **argv) -{ - int *i = &global_obj_a; - int *j = &global_obj_b; - - A *a = new A; - B *b = new B(a); - - b->f(j); - - b->_a->f(i); - - return 0; -} diff --git a/src/basic_cpp_tests/namespace.cpp b/src/basic_cpp_tests/namespace.cpp deleted file mode 100644 index e25bdd44..00000000 --- a/src/basic_cpp_tests/namespace.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "aliascheck.h" - -int global_obj_f; -int *global_ptr_f = &global_obj_f; - -int global_obj_g; -int *global_ptr_g = &global_obj_g; - -namespace n -{ -class A -{ -public: - virtual void f(int* i) = 0; - virtual void g(int* i) = 0; -}; - -class B : public A -{ -public: - virtual void f(int* i) - { - MUSTALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - } - virtual void g(int* i) - { - NOALIAS(global_ptr_f, i); - MUSTALIAS(global_ptr_g, i); - } -}; -} // namespace n - -int main() -{ - int *ptr_f = &global_obj_f; - int *ptr_g = &global_obj_g; - - n::B *b = new n::B; - b->f(ptr_f); - b->g(ptr_g); - - return 0; -} \ No newline at end of file diff --git a/src/basic_cpp_tests/pwc.cpp b/src/basic_cpp_tests/pwc.cpp deleted file mode 100644 index 30f47aed..00000000 --- a/src/basic_cpp_tests/pwc.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "aliascheck.h" - -#define LEN 100 - -int global_obj_f; -int *global_ptr_f = &global_obj_f; - -int global_obj_g; -int *global_ptr_g = &global_obj_g; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - } - virtual void g(int *i) { - NOALIAS(global_ptr_f, i); - MUSTALIAS(global_ptr_g, i); - } - double *f1; - int *f2; - int *f3; -}; - -int main(int argc, char** argv) -{ - int *ptr_f = &global_obj_f; - int *ptr_g = &global_obj_g; - - A a_array[LEN]; - A *pa; - - pa = a_array; - for (int i = 0; i < LEN/2; ++i) - pa += 1; - - //NOALIAS(&(pa->f2), &(pa->f3)); - - pa->f(ptr_f); - pa->g(ptr_g); - - return 0; -} diff --git a/src/basic_cpp_tests/queue-1.cpp b/src/basic_cpp_tests/queue-1.cpp deleted file mode 100644 index f2853e48..00000000 --- a/src/basic_cpp_tests/queue-1.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - queue aqueue; - A a; - aqueue.push(a); - - const A *aptr = &(aqueue.front()); - aqueue.pop(); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/queue-2.cpp b/src/basic_cpp_tests/queue-2.cpp deleted file mode 100644 index a6f77d41..00000000 --- a/src/basic_cpp_tests/queue-2.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - queue aqueue; - A *a = new A; - aqueue.push(a); - - const A *aptr = aqueue.front(); - aqueue.pop(); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/run-all-tests-mac.sh b/src/basic_cpp_tests/run-all-tests-mac.sh deleted file mode 100644 index 9596c67c..00000000 --- a/src/basic_cpp_tests/run-all-tests-mac.sh +++ /dev/null @@ -1,17 +0,0 @@ -FLAGS="-Xclang -disable-O0-optnone -g -c -emit-llvm" -FLAGS="${FLAGS} -I../ -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1" -FLAGS="${FLAGS} -std=c++11" -#FLAGS="-g ${FLAGS}" - -FILES=`ls *.cpp` - -find . -name "*.ll" -exec rm {} \; -find . -name "*.wpa" -exec rm {} \; -for file in ${FILES} -do - file=${file%.*} - echo ${file} - $CLANGCPP ${FLAGS} -o ${file}.ll ${file}.cpp - $LLVMOPT -mem2reg -S -o ${file}.mem2reg.ll ${file}.ll - wpa -ander -stat=false ${file}.mem2reg.ll -done diff --git a/src/basic_cpp_tests/run-all-tests-ubuntu.sh b/src/basic_cpp_tests/run-all-tests-ubuntu.sh deleted file mode 100644 index ec6152cc..00000000 --- a/src/basic_cpp_tests/run-all-tests-ubuntu.sh +++ /dev/null @@ -1,17 +0,0 @@ -FLAGS="-Xclang -disable-O0-optnone -g -c -emit-llvm" -FLAGS="${FLAGS} -I../" -FLAGS="${FLAGS} -std=c++11 -stdlib=libc++" -#FLAGS="-g ${FLAGS}" - -FILES=`ls *.cpp` - -find . -name "*.ll" -exec rm {} \; -find . -name "*.wpa" -exec rm {} \; -for file in ${FILES} -do - file=${file%.*} - echo ${file} - $CLANGCPP ${FLAGS} -o ${file}.ll ${file}.cpp - $LLVMOPT -mem2reg -S -o ${file}.mem2reg.ll ${file}.ll - wpa -ander -stat=false ${file}.mem2reg.ll -done diff --git a/src/basic_cpp_tests/run-single-test.sh b/src/basic_cpp_tests/run-single-test.sh deleted file mode 100644 index 3ab032b1..00000000 --- a/src/basic_cpp_tests/run-single-test.sh +++ /dev/null @@ -1,12 +0,0 @@ -FLAGS="-Xclang -disable-O0-optnone -g -c -emit-llvm" -FLAGS="${FLAGS} -I../" -FLAGS="${FLAGS} -std=c++11" -#FLAGS="-g ${FLAGS}" - -file="array-1" - - -$CLANGCPP ${FLAGS} -o ${file}.ll ${file}.cpp -$LLVMOPT -mem2reg -S -o ${file}.mem2reg.ll ${file}.ll -wpa -ander -stat=false ${file}.mem2reg.ll - diff --git a/src/basic_cpp_tests/set-1.cpp b/src/basic_cpp_tests/set-1.cpp deleted file mode 100644 index 58ce4e83..00000000 --- a/src/basic_cpp_tests/set-1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - A(int i): data(i) {} - - int getData() const { - return data; - } - - bool operator == (const A &a) const { - return data == a.getData(); - } - - bool operator != (const A &a) const { - return data != a.getData(); - } - - bool operator < (const A &a) const { - return data < a.getData(); - } - - bool operator > (const A &a) const { - return data > a.getData(); - } - - /// virtual function - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } - - private: - int data; -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - set aset; - A a(0); - aset.insert(a); - - set::const_iterator it = aset.begin(); - const A *aptr = &(*it); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/set-2.cpp b/src/basic_cpp_tests/set-2.cpp deleted file mode 100644 index 16a27b7e..00000000 --- a/src/basic_cpp_tests/set-2.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - set aset; - A a; - aset.insert(&a); - - set::const_iterator it = aset.begin(); - const A *aptr = *it; - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/single-inheritance-1.cpp b/src/basic_cpp_tests/single-inheritance-1.cpp deleted file mode 100644 index 33282bde..00000000 --- a/src/basic_cpp_tests/single-inheritance-1.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) { - // The following may alias also holds - // if we use flow-insensitive Andersen's analysis - // since the vtable vtableptrA stored in the object - // is not strongly updated to be vtableptrB - //MUSTALIAS(global_ptr, i); - } -}; - -class B: public A { - virtual void f(int *i) { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - A *pb = new B; - pb->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/single-inheritance-2.cpp b/src/basic_cpp_tests/single-inheritance-2.cpp deleted file mode 100644 index db15818b..00000000 --- a/src/basic_cpp_tests/single-inheritance-2.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "aliascheck.h" - -int global_obj_a; -int *global_ptr_a = &global_obj_a; - -int global_obj_b; -int *global_ptr_b = &global_obj_b; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_a, i); - NOALIAS(global_ptr_b, i); - } -}; - -class B: public A { - public: - virtual void f(int *i) { - NOALIAS(global_ptr_a, i); - MUSTALIAS(global_ptr_b, i); - } -}; - -int main(int argc, char **argv) -{ - int *i = &global_obj_a; - A *pa = new A; - pa->f(i); - - - int *j = &global_obj_b; - B *pb = new B; - pb->f(j); - - return 0; -} diff --git a/src/basic_cpp_tests/single-inheritance-3.cpp b/src/basic_cpp_tests/single-inheritance-3.cpp deleted file mode 100644 index cc6ce9d2..00000000 --- a/src/basic_cpp_tests/single-inheritance-3.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "aliascheck.h" - -int global_int_obj; -int *global_int_ptr = &global_int_obj; - - -float global_float_obj; -float *global_float_ptr = &global_float_obj; - - -class A { - public: - virtual void f(int *i) { - NOALIAS(global_int_ptr, i); - NOALIAS(global_float_ptr, i); - } - virtual void g(float *j) { - NOALIAS(global_int_ptr, j); - NOALIAS(global_float_ptr, j); - } -}; - -class B: public A { - public: - virtual void f(int *i) { - MUSTALIAS(global_int_ptr, i); - NOALIAS(global_float_ptr, i); - } - virtual void g(float *j) { - NOALIAS(global_int_ptr, j); - MUSTALIAS(global_float_ptr, j); - } -}; - -int main(int argc, char **argv) -{ - int *i = &global_int_obj; - float *j = &global_float_obj; - - A *p = new B; - - p->f(i); - p->g(j); - - return 0; -} diff --git a/src/basic_cpp_tests/single-inheritance-4.cpp b/src/basic_cpp_tests/single-inheritance-4.cpp deleted file mode 100644 index 6f44ca01..00000000 --- a/src/basic_cpp_tests/single-inheritance-4.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) { - NOALIAS(global_ptr, i); - } -}; - -class B: public A { - virtual void f(int *i) { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - A *pb = new B; - pb->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/stack-1.cpp b/src/basic_cpp_tests/stack-1.cpp deleted file mode 100644 index 41bad9e1..00000000 --- a/src/basic_cpp_tests/stack-1.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - stack astack; - A a; - astack.push(a); - - const A *aptr = &(astack.top()); - astack.pop(); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/stack-2.cpp b/src/basic_cpp_tests/stack-2.cpp deleted file mode 100644 index 6bb591b3..00000000 --- a/src/basic_cpp_tests/stack-2.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - stack astack; - A a; - astack.push(&a); - - const A *aptr = astack.top(); - astack.pop(); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/unordered_map-1.cpp b/src/basic_cpp_tests/unordered_map-1.cpp deleted file mode 100644 index 3411dc7d..00000000 --- a/src/basic_cpp_tests/unordered_map-1.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - unordered_map amap; - A a; - amap[0] = a; - - unordered_map::const_iterator it = amap.begin(); - const A *aptr = &(it->second); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/unordered_map-2.cpp b/src/basic_cpp_tests/unordered_map-2.cpp deleted file mode 100644 index 2cd048dd..00000000 --- a/src/basic_cpp_tests/unordered_map-2.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - unordered_map amap; - A a; - amap[0] = &a; - - unordered_map::const_iterator it = amap.begin(); - const A *aptr = it->second; - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/unordered_set-1.cpp b/src/basic_cpp_tests/unordered_set-1.cpp deleted file mode 100644 index 860814f1..00000000 --- a/src/basic_cpp_tests/unordered_set-1.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - unordered_set aset; - A *a = new A; - - aset.insert(a); - - unordered_set::iterator it = aset.begin(); - const A *aptr = *it; - - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/variant-gep.cpp b/src/basic_cpp_tests/variant-gep.cpp deleted file mode 100644 index b005af52..00000000 --- a/src/basic_cpp_tests/variant-gep.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - FIObjPN: - - memobj pointed by ptr is a FIObjPN, which represents a struct Data object. - (1) - wpa -fspta -dump-consG -detect-tc -svf-main -stat=false -print-all-pts ./cast.opt - (2) - wpa -nander -dump-consG -detect-tc -svf-main -stat=false -print-all-pts ./cast.opt - */ - -struct Point{ - int x; - int y; -}; -struct D3Point:public Point{ - int z; -}; -struct Data{ - int d; - int a; - int t; - Point p; - -}; - - -int main(int argc, char * argv[]){ - Data *dt = new Data[16]; - - Point * ptr = &dt[argc].p; - D3Point * c = static_cast(ptr); - - ptr = &dt[3].p; - c = static_cast(ptr); -} - - diff --git a/src/basic_cpp_tests/vector-1.cpp b/src/basic_cpp_tests/vector-1.cpp deleted file mode 100644 index 3b3ae5c7..00000000 --- a/src/basic_cpp_tests/vector-1.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - vector vec; - A a; - vec.push_back(a); - - const A *aptr = &(vec[0]); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/vector-2.cpp b/src/basic_cpp_tests/vector-2.cpp deleted file mode 100644 index 707d0e54..00000000 --- a/src/basic_cpp_tests/vector-2.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - vector vec; - A *a = new A; - vec.push_back(a); - - const A *aptr = vec[0]; - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/vector-3.cpp b/src/basic_cpp_tests/vector-3.cpp deleted file mode 100644 index ed8bcf92..00000000 --- a/src/basic_cpp_tests/vector-3.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - vector vec; - A a; - vec.push_back(a); - - vector::const_iterator it = vec.begin(); - const A *aptr = &(*it); - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/vector-4.cpp b/src/basic_cpp_tests/vector-4.cpp deleted file mode 100644 index 3453ee6e..00000000 --- a/src/basic_cpp_tests/vector-4.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -#include -#include - -using namespace std; - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) const { - MUSTALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - vector vec; - A a; - vec.push_back(&a); - - vector::const_iterator it = vec.begin(); - const A *aptr = *it; - aptr->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/virtual-call-simple.cpp b/src/basic_cpp_tests/virtual-call-simple.cpp deleted file mode 100644 index eee1d5e8..00000000 --- a/src/basic_cpp_tests/virtual-call-simple.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include -class K{ -public: -virtual char* fater(){ - return "fd"; -} -}; - -class F: public K{ -public: -char* foo(char** q){ - char* t = *q; - return t; -} -char *getinput(){ -return "fdaf"; -} -}; - -int main(){ - K* k = new F(); - F f; - char * a; - char **q = &a; - char* p = f.getinput(); - k->fater(); - *q = p; - char* r = f.foo(q); - printf("%s\n",r); - } diff --git a/src/basic_cpp_tests/virtual-diamond-inheritance-2.cpp b/src/basic_cpp_tests/virtual-diamond-inheritance-2.cpp deleted file mode 100644 index 308fe469..00000000 --- a/src/basic_cpp_tests/virtual-diamond-inheritance-2.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include "aliascheck.h" - -/* - * inheritance relation: - * - * +-------- B <---+ - * | virtual | - * A <---+ +--- D - * | virtual | - * +-------- C <---+ - * - */ - -int global_obj_f1; -int *global_ptr_f1 = &global_obj_f1; -int global_obj_f2; -int *global_ptr_f2 = &global_obj_f2; - -int global_obj_g1; -int *global_ptr_g1 = &global_obj_g1; -int global_obj_g2; -int *global_ptr_g2 = &global_obj_g2; - -int global_obj_h1; -int *global_ptr_h1 = &global_obj_h1; -int global_obj_h2; -int *global_ptr_h2 = &global_obj_h2; - -int global_obj_l1; -int *global_ptr_l1 = &global_obj_l1; -int global_obj_l2; -int *global_ptr_l2 = &global_obj_l2; - -class A { - public: - virtual void f1(int *i) { MUSTALIAS(global_ptr_f1, i); } - virtual void f2(int *i) { MUSTALIAS(global_ptr_f2, i); } -}; - -class B: public virtual A { - public: - virtual void g1(int *i) { MUSTALIAS(global_ptr_g1, i); } - virtual void g2(int *i) { MUSTALIAS(global_ptr_g2, i); } -}; - -class C: public virtual A { - public: - virtual void h1(int *i) { MUSTALIAS(global_ptr_h1, i); } - virtual void h2(int *i) { MUSTALIAS(global_ptr_h2, i); } -}; - -class D: public B, public C { - public: - virtual void l1(int *i) { MUSTALIAS(global_ptr_l1, i); } - virtual void l2(int *i) { MUSTALIAS(global_ptr_l2, i); } -}; - - -int main(int argc, char **argv) -{ - int *ptr_f1 = &global_obj_f1; - int *ptr_f2 = &global_obj_f2; - int *ptr_g1 = &global_obj_g1; - int *ptr_g2 = &global_obj_g2; - int *ptr_h1 = &global_obj_h1; - int *ptr_h2 = &global_obj_h2; - int *ptr_l1 = &global_obj_l1; - int *ptr_l2 = &global_obj_l2; - - A *pa; - B *pb; - C *pc; - D *pd; - - D d; - - pa = &d; - pa->f1(ptr_f1); - pa->f2(ptr_f2); - - pb = &d; - pb->g1(ptr_g1); - pb->g2(ptr_g2); - - pc = &d; - pc->h1(ptr_h1); - pc->h2(ptr_h2); - - pd = &d; - pd->l1(ptr_l1); - pd->l2(ptr_l2); - - return 0; -} diff --git a/src/basic_cpp_tests/virtual-inheritance-1.cpp b/src/basic_cpp_tests/virtual-inheritance-1.cpp deleted file mode 100644 index c6ee28f9..00000000 --- a/src/basic_cpp_tests/virtual-inheritance-1.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr, i); - } -}; - -class B: virtual public A { -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - A *pb = new B; - pb->f(ptr); - - return 0; -} diff --git a/src/basic_cpp_tests/virtual-inheritance-2.cpp b/src/basic_cpp_tests/virtual-inheritance-2.cpp deleted file mode 100644 index cdb14dba..00000000 --- a/src/basic_cpp_tests/virtual-inheritance-2.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "aliascheck.h" - -int global_obj_a; -int *global_ptr_a = &global_obj_a; - -int global_obj_b; -int *global_ptr_b = &global_obj_b; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_a, i); - NOALIAS(global_ptr_b, i); - } -}; - -class B: virtual public A { - public: - virtual void f(int *i) { - NOALIAS(global_ptr_a, i); - MUSTALIAS(global_ptr_b, i); - } -}; - -int main(int argc, char **argv) -{ - int *i = &global_obj_a; - A *pa = new A; - pa->f(i); - - - int *j = &global_obj_b; - B *pb = new B; - pb->f(j); - - return 0; -} diff --git a/src/basic_cpp_tests/virtual-inheritance-3.cpp b/src/basic_cpp_tests/virtual-inheritance-3.cpp deleted file mode 100644 index d136efb2..00000000 --- a/src/basic_cpp_tests/virtual-inheritance-3.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "aliascheck.h" - -int global_int_obj; -int *global_int_ptr = &global_int_obj; - - -float global_float_obj; -float *global_float_ptr = &global_float_obj; - - -class A { - public: - virtual void f(int *i) { - NOALIAS(global_int_ptr, i); - NOALIAS(global_float_ptr, i); - } - virtual void g(float *j) { - NOALIAS(global_int_ptr, j); - NOALIAS(global_float_ptr, j); - } -}; - -class B: virtual public A { - public: - virtual void f(int *i) { - MUSTALIAS(global_int_ptr, i); - NOALIAS(global_float_ptr, i); - } - virtual void g(float *j) { - NOALIAS(global_int_ptr, j); - MUSTALIAS(global_float_ptr, j); - } -}; - -int main(int argc, char **argv) -{ - int *i = &global_int_obj; - float *j = &global_float_obj; - - A *p = new B; - - p->f(i); - p->g(j); - - return 0; -} diff --git a/src/cpp_types/broken.cpp b/src/cpp_types/broken.cpp deleted file mode 100644 index 5d20b7ca..00000000 --- a/src/cpp_types/broken.cpp +++ /dev/null @@ -1,22 +0,0 @@ -void checkType(void* clz, char* ty){} - -class A { - public: - A(){} -}; - -class B : public A { - public: - B(){} -}; - -class C : public B { - public: - C(){} -}; - -int main(void) { - A *a = new A(); - checkType(a,"A"); -} - diff --git a/src/cs_tests/cs0.c b/src/cs_tests/cs0.c deleted file mode 100644 index b1d5870c..00000000 --- a/src/cs_tests/cs0.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "aliascheck.h" -int* foo(int* x){ - return x; -} - -int main(){ - - int *x,*y,*p,*q,a,b; - p = &a; - q = &b; - x = foo(p); - y = foo(q); - MUSTALIAS(x,p); - MUSTALIAS(y,q); - NOALIAS(x,q); - NOALIAS(y,p); - -} diff --git a/src/cs_tests/cs1.c b/src/cs_tests/cs1.c deleted file mode 100644 index 899b2f51..00000000 --- a/src/cs_tests/cs1.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "aliascheck.h" -void foo(int **x, int **y){ - - x = y; -} - -int main(){ - - int *a, *b; - int a1, b1; - a = &a1; - b = &b1; - foo(a,b); - NOALIAS(a,b); -} diff --git a/src/cs_tests/cs10.c b/src/cs_tests/cs10.c deleted file mode 100644 index cf108fc1..00000000 --- a/src/cs_tests/cs10.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "aliascheck.h" -int obj, t,s; -void foo(int**, int**); -main(){ - int **x, **y; - int *a, *b, *c, *d,*e; - x=&a; y =&b; - foo(x,y); - MUSTALIAS(b,&obj); - *b = 5; - c=&s; - //a=c; - if(t) { x =&c; y =&e;} - else { x= &d; y = &d;} - foo(x,y); - MAYALIAS(e,d); - MAYALIAS(e,&obj); - *e = 10; - -} - -void foo(int **p, int **q){ - *q = &obj; -} diff --git a/src/cs_tests/cs11.c b/src/cs_tests/cs11.c deleted file mode 100644 index a90d3657..00000000 --- a/src/cs_tests/cs11.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "aliascheck.h" -void foo(int**a, int*b){ - - *a = b; - -} - - -void main(){ - - int *p,q,*x,y; - foo(&p,&q); - MUSTALIAS(p,&q); - foo(&x,&y); - MUSTALIAS(x,&y); - NOALIAS(x,&q); - NOALIAS(p,&y); - - *p = 100; - -} diff --git a/src/cs_tests/cs12.c b/src/cs_tests/cs12.c deleted file mode 100644 index f9a71f3a..00000000 --- a/src/cs_tests/cs12.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "aliascheck.h" -int obj; -void foo(int**, int**); -main(){ - int **x, **y; - int *a, *b, *c, *d,*e; - x=&a; y =&b; - foo(x,y); - MUSTALIAS(a,&obj); - x = &c; - foo(x,y); - MUSTALIAS(c,&obj); - -} - -void foo(int **p, int **q){ - *p = &obj; -} diff --git a/src/cs_tests/cs13.c b/src/cs_tests/cs13.c deleted file mode 100644 index d9021b7c..00000000 --- a/src/cs_tests/cs13.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "aliascheck.h" -void foo(int*); -int ss = 20; -int main(){ - int *a,*b,obj,t; - a=&obj; - foo(a); - *a=200; - b=&t; - foo(b); - NOALIAS(a,&ss); - NOALIAS(b,&ss); -} - -void foo(int* x){ - static int* k =&ss; - printf("%d\n", *k); - *k=200; - k=x; - *x= 100; -} diff --git a/src/cs_tests/cs14.c b/src/cs_tests/cs14.c deleted file mode 100644 index 67cede86..00000000 --- a/src/cs_tests/cs14.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "aliascheck.h" -void foo(int*,int*); -main(){ - int*x, *y; - int a,b, c; - if(c)x=&a; - else x=&b; - MAYALIAS(x,&a); - MAYALIAS(x,&b); - foo(x,y); - x = &c; - foo(x,y); - MUSTALIAS(x,&c); - NOALIAS(x,&a); - NOALIAS(x,&b); - -} - -void foo(int *p,int*q){ - *p = 100; -} diff --git a/src/cs_tests/cs15.c b/src/cs_tests/cs15.c deleted file mode 100644 index 34a77398..00000000 --- a/src/cs_tests/cs15.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "aliascheck.h" - -void foo(int **w,int**x,int **y, int *z){ - int *t; - *y = z; - t = *x; - *w = t; - -} - -void bar(int **p1,int**p2,int **p3, int *p4){ - foo(p1,p2,p3,p4); -} - -int main(){ - - int **a,**b,**c,*d,*a1,*b1,*c1,d1; - a = &a1; - b = &b1; - c = &b1; - d = &d1; - bar(a,b,c,d); - MUSTALIAS(a1,&d1); - MUSTALIAS(b1,a1); -// foo(a,b,c,d); -// foo(b,a,c,d); -} diff --git a/src/cs_tests/cs16.c b/src/cs_tests/cs16.c deleted file mode 100644 index ace5bb1a..00000000 --- a/src/cs_tests/cs16.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "aliascheck.h" -int *alloc( int size){ - - return malloc(1); - -} - -void foo(int **p){ - - *p = alloc(1); - //*p = alloc(); - -} - -void main(){ - - int *a,*b,*c; - foo(&a); - foo(&b); - foo(&c); - NOALIAS(a,b); - NOALIAS(b,c); - NOALIAS(a,c); - -} diff --git a/src/cs_tests/cs17.c b/src/cs_tests/cs17.c deleted file mode 100644 index 8c059065..00000000 --- a/src/cs_tests/cs17.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "aliascheck.h" -void bar(int**k, int**s){ - - *k = *s; - -} - -void foo(int**x,int**y,int**z){ - int t; - *y = &t; - *z = *x; -} - -int main(){ - int *p1,*q1,*r1,*a1,*b1,*c1,q2,a2; - int **p = &p1; - int **q = &q1; - q1 = &q2; - int **r = &r1; - int **a = &a1; - a1 = &a2; - int **b = &b1; - int **c = &c1; - bar(&p,&q); - MUSTALIAS(p,q); - NOALIAS(p,&p1); - foo(p,q,r); - MUSTALIAS(q1,r1); - foo(a,b,c); - MUSTALIAS(a1,c1); - NOALIAS(q1,c1); - NOALIAS(a1,r1); - -} diff --git a/src/cs_tests/cs18.c b/src/cs_tests/cs18.c deleted file mode 100644 index 56ccc823..00000000 --- a/src/cs_tests/cs18.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "aliascheck.h" -int obj,b; -void bar(int **s){ - *s = &b; -} - -void foo(int **p){ - *p = &obj; - bar(p); -} -main(){ - int **x; - int *a, *c; - x=&a; - foo(x); - MUSTALIAS(a,&b); - NOALIAS(a,&obj); - x = &c; - foo(x); - MUSTALIAS(c,&b); - NOALIAS(c,&obj); - -} - diff --git a/src/cs_tests/cs19.c b/src/cs_tests/cs19.c deleted file mode 100644 index c8c235fc..00000000 --- a/src/cs_tests/cs19.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "aliascheck.h" -int g; -int* obj = &g; -void Zulu(int**p, int *q); - -void Xray(){ - - int **x,*b,*w,d; - x = &b; - w = &d; - Zulu(x,w); - NOALIAS(b,w); - MUSTALIAS(b,&g); -} - - -void Zulu(int**p,int *q){ - - *p = q; - *p = obj; -} - -void main(){ - - Xray(); - -} diff --git a/src/cs_tests/cs2.c b/src/cs_tests/cs2.c deleted file mode 100644 index 7a806625..00000000 --- a/src/cs_tests/cs2.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "aliascheck.h" -int obj; -void foo(int **p, int **q, int **r){ - - - *r = *p; - *q = &obj; - -} - - -void main(){ - - int **a,**b,**c,**d,**e,**f,*x,*y,*z,*w,*k,x1,y1,z1,w1,k1; - x = &x1; - y = &y1; - z = &z1; - w = &w1; - k = &k1; - - a = &x; - b = &y; - c = &z; - if(a){ - - d = &w; - e = &w; - f = &k; - } - foo(a,b,c); - MUSTALIAS(x,z); - MUSTALIAS(y,&obj); - foo(d,e,f); - NOALIAS(w,k); - MAYALIAS(w,&obj); - NOALIAS(x,w); - NOALIAS(z,k); - MAYALIAS(y,w); - -} diff --git a/src/cs_tests/cs20.c b/src/cs_tests/cs20.c deleted file mode 100644 index 90221ae2..00000000 --- a/src/cs_tests/cs20.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "aliascheck.h" -int *obj; -int **x,*b,*w,d; -int **z, *a,*y,c; -void Zulu(int**p, int *q); - -void Xray(){ - x = &b; - w = &d; - Zulu(x,w); - MUSTALIAS(b,&d); - NOALIAS(b,&c); -} - -void Yank(){ - z = &a; - y = &c; - Zulu(z,y); - MUSTALIAS(a,&c); - NOALIAS(a,&d); -} - -void Zulu(int**p,int *q){ - *q = 100; - *p = q; - -} - -void main(){ - - Xray(); - Yank(); - -} diff --git a/src/cs_tests/cs21.c b/src/cs_tests/cs21.c deleted file mode 100644 index aa97de70..00000000 --- a/src/cs_tests/cs21.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "aliascheck.h" -int a; -int *foo(int *x){ - int*z = x; - int* y; - if(x) - y = foo(z); - else - y = x; - - MAYALIAS(y,&a); - return y; - -} - -int main(){ - int*p; - p = &a; - - foo(p); - -} diff --git a/src/cs_tests/cs3.c b/src/cs_tests/cs3.c deleted file mode 100644 index 4156c11f..00000000 --- a/src/cs_tests/cs3.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "aliascheck.h" -void foo(int **p, int **q, int **r,int *s){ - - *r = *p; - *q = s; - -} - - -void main(){ - - int **a,**b,**c,**d,**e,**f,*x,*y,*z,*w,*g,*k,x1,y1,z1,w1,k1,g1; - x = &x1; - y = &y1; - z = &z1; - w = &w1; - g = &g1; - k = &k1; - - a = &x; - b = &y; - c = &z; - - foo(a,b,c,k); - MUSTALIAS(x,z); - MUSTALIAS(y,&k1); - d = &w; - e = &w; - f = &g; - foo(d,e,f,k); - NOALIAS(w,g); - MUSTALIAS(w,&k1); - NOALIAS(x,w); - NOALIAS(z,g); - MUSTALIAS(w,y); - -} diff --git a/src/cs_tests/cs4.c b/src/cs_tests/cs4.c deleted file mode 100644 index 66b99942..00000000 --- a/src/cs_tests/cs4.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "aliascheck.h" -void foo(int **x,int**y,int **z, int *w){ - int *t; - *y = w; - t = *x; - *z = t; - -} - -int main(){ - - int *a,*b,*c,d,*p,*q,r,a1; - a = &a1; - foo(&a,&b,&c,&d); - MUSTALIAS(b,&d); - MUSTALIAS(c,&a1); - foo(&p,&p,&q,&r); - MUSTALIAS(p,&r); - MUSTALIAS(p,q); - NOALIAS(b,p); - NOALIAS(c,p); -} diff --git a/src/cs_tests/cs5.c b/src/cs_tests/cs5.c deleted file mode 100644 index 2049cc15..00000000 --- a/src/cs_tests/cs5.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "aliascheck.h" -int** g; - -void foo(int **p, int *q){ - g = p; - *g = q; - -} - -int main(){ - int **a,*b,*a1,b1; - a = &a1; - b = &b1; - foo(a,b); - MUSTALIAS(a1,b); -} diff --git a/src/cs_tests/cs6.c b/src/cs_tests/cs6.c deleted file mode 100644 index dd308b00..00000000 --- a/src/cs_tests/cs6.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "aliascheck.h" -int** g; - -void foo(int **p, int *q){ - g = q; - *p = g; -} - -int main(){ - int **a,*b,*a1,b1; - a = &a1; - b = &b1; - foo(a,b); - MUSTALIAS(a1,b); -} diff --git a/src/cs_tests/cs7.c b/src/cs_tests/cs7.c deleted file mode 100644 index bb7f7d30..00000000 --- a/src/cs_tests/cs7.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "aliascheck.h" -void foo(int **p, int **q){ - - *q = *p; - -} - - -void main(){ - - int **a,**b,**c,**d,**e,**f,*x,*y,*z,*w,*k,x1,y1,z1,w1,k1; - x = &x1; - y = &y1; - w = &w1; - k = &k1; - - a = &x; - b = &y; - c = &w; - d = &k; - - foo(a,b); - MUSTALIAS(x,y); - foo(c,d); - MUSTALIAS(w,k); - NOALIAS(x,k); - NOALIAS(y,w); - -} diff --git a/src/cs_tests/cs8.c b/src/cs_tests/cs8.c deleted file mode 100644 index 5bd1b77f..00000000 --- a/src/cs_tests/cs8.c +++ /dev/null @@ -1,28 +0,0 @@ -#include "aliascheck.h" -int obj1,obj2; -void foo(int **p, int **q){ - - *p = &obj1; - *q = &obj2; - -} - -int main(){ - - int **a,**b,*x,*y,*z; - if(a){ - a = &x; - b = &y; - } - else{ - a = &z; - b = &z; - } - foo(a,b); - MAYALIAS(x,&obj1); - MAYALIAS(z,&obj1); - MAYALIAS(y,&obj2); - MAYALIAS(z,&obj2); - NOALIAS(x,&obj2); - -} diff --git a/src/cs_tests/cs9.c b/src/cs_tests/cs9.c deleted file mode 100644 index cd7782c5..00000000 --- a/src/cs_tests/cs9.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "aliascheck.h" -int obj, t,s; -int *k =&s; -void foo(int**, int**); -main(){ - int **x, **y; - int *a, *b, *c, *d,*e; - a = &t; - x=&a; y =&b; - foo(x,y); - NOALIAS(a,b); - MUSTALIAS(b,&obj); - *b = 5; - c=&t; - c=&s; - a=c; - MUSTALIAS(a,c); - if(t) {c=&obj; x =&c; y =&e;} - else { x= &d; y = &d;} - e = &t; - foo(x,y); - MAYALIAS(c,d); - MAYALIAS(d,&obj); - MAYALIAS(a,c); - NOALIAS(a,d); - MAYALIAS(c,d); - *e = 10; - -} - -void foo(int **p, int **q){ - *p = *q; - *q = &obj; -} diff --git a/src/cs_tests/funcpoiner.c b/src/cs_tests/funcpoiner.c deleted file mode 100644 index e899b047..00000000 --- a/src/cs_tests/funcpoiner.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "aliascheck.h" -void f(int** a, int *b) -{ - *a = b; -} - -typedef void (*fp)(int**,int*); - -void main() -{ - int **x,*y,*z; - int *m,*n,m1,n1; - m = &m1; - n = &n1; - fp p = &f; - x = &y; - (*p)(x,m); /* these are equivalent */ - MUSTALIAS(y,m); - NOALIAS(y,n); - x = &z; - p(x,n); - MUSTALIAS(z,n); - NOALIAS(z,m); -} - diff --git a/src/cs_tests/recur0.c b/src/cs_tests/recur0.c deleted file mode 100644 index 8bb3ff5f..00000000 --- a/src/cs_tests/recur0.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "aliascheck.h" -int *x, y, z; - -void f() { - if(z > 5) return; - z++; - if (1) { - x = &y; - MUSTALIAS(x,&y); - f(); - x = &z; - MUSTALIAS(x,&z); - NOALIAS(x,&y); - f(); - } -} - - -int main() -{ - f(); - return 0; -} diff --git a/src/cs_tests/recur10.c b/src/cs_tests/recur10.c deleted file mode 100644 index effb8ebe..00000000 --- a/src/cs_tests/recur10.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "aliascheck.h" -int **p,*x, y, z; - -void f() { - p = &x; - if (z) { - *p = &y; - MUSTALIAS(x,&y); - f(); - *p = &z; - MAYALIAS(x,&z); - NOALIAS(x,&y); - f(); - } -} - - -int main() -{ - f(); - return 0; -} diff --git a/src/cs_tests/recur2.c b/src/cs_tests/recur2.c deleted file mode 100644 index d21db47a..00000000 --- a/src/cs_tests/recur2.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "aliascheck.h" -int* x,y; -void f(int *m){ - MUSTALIAS(m,&y); - int *n; - if(y==1){ - n=&y; - - f(n); - } -} - -int main(){ - x=&y; - f(x); -} diff --git a/src/cs_tests/recur3.c b/src/cs_tests/recur3.c deleted file mode 100644 index 8fd45c36..00000000 --- a/src/cs_tests/recur3.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "aliascheck.h" -int x, *y, z; -void f(int **m); -void main(){ - - int **a = &y; - - f(a); - - -} - -void f(int **m){ - if(x){ - *m = &x; - MUSTALIAS(y,&x); - NOALIAS(y,&z); - f(m); - } - else{ - *m = &z; - MUSTALIAS(y,&z); - NOALIAS(y,&x); - } - -} diff --git a/src/cs_tests/recur4.c b/src/cs_tests/recur4.c deleted file mode 100644 index eed9ff24..00000000 --- a/src/cs_tests/recur4.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "aliascheck.h" -int **x, *y; -int z; -void f(int **p); -void main(){ - x = &y; - f(x); -} - - -void f(int **p){ - int k; - y = &k; - if (z){ - *p = &z; - MUSTALIAS(y,&z); - NOALIAS(y,&k); - - f(p); - } - /// y will not alias to &z as the value flow - /// of y after it is updated at "*p=&z" will - /// flow into f(p) again and then be updated - /// by the first statement "y=&k". - NOALIAS(y,&z); - MAYALIAS(y,&k); - -} - diff --git a/src/cs_tests/recur5.c b/src/cs_tests/recur5.c deleted file mode 100644 index be676c28..00000000 --- a/src/cs_tests/recur5.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "aliascheck.h" -int* x, x1; -void f(int **m){ -int **n,*y,*k,z,r; - n = &y; - y = &z; - if(z==1){ - *n=&r; - MUSTALIAS(y,&r); - EXPECTEDFAIL_NOALIAS(y,&z); - k = *n; - MUSTALIAS(k,&r); - EXPECTEDFAIL_NOALIAS(k,&z); - f(n); - } -} - -int main(){ - x=&x1; - f(x); -} diff --git a/src/cs_tests/recur6.c b/src/cs_tests/recur6.c deleted file mode 100644 index 0781393d..00000000 --- a/src/cs_tests/recur6.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "aliascheck.h" -int *x,y,z; - -void f(); - -int main(){ - f(); - *x=100; -} - -void f(){ - - if(z){ - x=&y; - f(); - x=&z; - f(); - MUSTALIAS(x,&z); - EXPECTEDFAIL_NOALIAS(x,&y); - } - MAYALIAS(x,&z); - MAYALIAS(x,&y); -} diff --git a/src/cs_tests/recur7.c b/src/cs_tests/recur7.c deleted file mode 100644 index 5f4b3d59..00000000 --- a/src/cs_tests/recur7.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "aliascheck.h" -int bar(int *q){ - *q = 100; - foo(q); -} - -int foo(int *a){ - *a = 10; - if(*a!=100) - bar(a); -} - - - - -int main(){ - int* a,b,c; - b=0; - a = &b; - foo(a); - a = &c; - foo(a); -} diff --git a/src/cs_tests/recur8.c b/src/cs_tests/recur8.c deleted file mode 100644 index dc2be6ef..00000000 --- a/src/cs_tests/recur8.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -int z1,z2; -void foo(int **p); -void bar(int **a){ - if(z1>5) return; - z1++; - int *c, b; - *a = &b; - c = *a; - MUSTALIAS(c,&b); - MAYALIAS(c,&z1); // it should be no-alias if strong updates are enabled - MAYALIAS(c,&z2); - foo(a); -} - - -void foo(int** p){ - - p = malloc(10); - *p = &z2; - bar(p); -} - -int main(){ - - int **x, *y; - x = &y; - y = &z1; - foo(x); -} diff --git a/src/cs_tests/recur9.c b/src/cs_tests/recur9.c deleted file mode 100644 index 26d2432c..00000000 --- a/src/cs_tests/recur9.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "aliascheck.h" -int z; -void foo(int **a); -void bar(int **q){ - int** a = malloc(10); - foo(a); -} - -void foo(int **a){ - if(z>5) return; - z++; - *a = &z; - bar(a); -} - - - - -int main(){ - int** a,*b,*c,b1,c1; - b = &b1; - a = &b; - foo(a); - MAYALIAS(b,&z); - EXPECTEDFAIL_NOALIAS(b,&b1); - a = &c; - foo(a); - MAYALIAS(c,&z); - NOALIAS(c,&c1); -} diff --git a/src/failed_tests/multi-inheritance-1.cpp b/src/failed_tests/multi-inheritance-1.cpp deleted file mode 100644 index cea3467f..00000000 --- a/src/failed_tests/multi-inheritance-1.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "aliascheck.h" - -int global_obj_a; -int *global_ptr_a = &global_obj_a; - -int global_obj_b; -int *global_ptr_b = &global_obj_b; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_a, i); - NOALIAS(global_ptr_b, i); - } -}; - -class B { - public: - virtual void g(int *j) { - NOALIAS(global_ptr_a, j); - MUSTALIAS(global_ptr_b, j); - } -}; - -class C: public A, public B { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_a, i); - NOALIAS(global_ptr_b, i); - } - virtual void g(int *j) { - NOALIAS(global_ptr_a, j); - MUSTALIAS(global_ptr_b, j); - } -}; - - -int main(int argc, char **argv) -{ - int *i = &global_obj_a; - int *j = &global_obj_b; - - A *pa; - B *pb; - C c; - - pa = &c; - pa->f(i); - - pb = &c; - pb->g(j); - - return 0; -} diff --git a/src/failed_tests/multi-inheritance-2.cpp b/src/failed_tests/multi-inheritance-2.cpp deleted file mode 100644 index c7a096ab..00000000 --- a/src/failed_tests/multi-inheritance-2.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "aliascheck.h" - -int global_obj_f1; -int *global_ptr_f1 = &global_obj_f1; - -int global_obj_f2; -int *global_ptr_f2 = &global_obj_f2; - -int global_obj_g1; -int *global_ptr_g1 = &global_obj_g1; - -int global_obj_g2; -int *global_ptr_g2 = &global_obj_g2; - -class A { - public: - virtual void f1(int *i) { - MUSTALIAS(global_ptr_f1, i); - NOALIAS(global_ptr_f2, i); - NOALIAS(global_ptr_g1, i); - NOALIAS(global_ptr_g2, i); - } - virtual void g1(int *i) { - NOALIAS(global_ptr_f1, i); - NOALIAS(global_ptr_f2, i); - MUSTALIAS(global_ptr_g1, i); - NOALIAS(global_ptr_g2, i); - } -}; - -class B { - public: - virtual void f2(int *i) { - NOALIAS(global_ptr_f1, i); - MUSTALIAS(global_ptr_f2, i); - NOALIAS(global_ptr_g1, i); - NOALIAS(global_ptr_g2, i); - } - virtual void g2(int *i) { - NOALIAS(global_ptr_f1, i); - NOALIAS(global_ptr_f2, i); - NOALIAS(global_ptr_g1, i); - MUSTALIAS(global_ptr_g2, i); - } -}; - -class C: public A, public B { - public: - virtual void f1(int *i) { - MUSTALIAS(global_ptr_f1, i); - NOALIAS(global_ptr_f2, i); - NOALIAS(global_ptr_g1, i); - NOALIAS(global_ptr_g2, i); - } - virtual void g1(int *i) { - NOALIAS(global_ptr_f1, i); - NOALIAS(global_ptr_f2, i); - MUSTALIAS(global_ptr_g1, i); - NOALIAS(global_ptr_g2, i); - } - virtual void f2(int *i) { - NOALIAS(global_ptr_f1, i); - MUSTALIAS(global_ptr_f2, i); - NOALIAS(global_ptr_g1, i); - NOALIAS(global_ptr_g2, i); - } - virtual void g2(int *i) { - NOALIAS(global_ptr_f1, i); - NOALIAS(global_ptr_f2, i); - NOALIAS(global_ptr_g1, i); - MUSTALIAS(global_ptr_g2, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr_f1 = &global_obj_f1; - int *ptr_f2 = &global_obj_f2; - int *ptr_g1 = &global_obj_g1; - int *ptr_g2 = &global_obj_g2; - - A *pa; - B *pb; - C c; - - pa = &c; - pa->f1(ptr_f1); - pa->g1(ptr_g1); - - pb = &c; - pb->f2(ptr_f2); - pb->g2(ptr_g2); - - return 0; -} diff --git a/src/failed_tests/multi-inheritance-3.cpp b/src/failed_tests/multi-inheritance-3.cpp deleted file mode 100644 index ca057b0f..00000000 --- a/src/failed_tests/multi-inheritance-3.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "aliascheck.h" - -int global_obj_f; -int *global_ptr_f = &global_obj_f; - -int global_obj_g; -int *global_ptr_g = &global_obj_g; - -int global_obj_h; -int *global_ptr_h = &global_obj_h; - -int global_obj_l; -int *global_ptr_l = &global_obj_l; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - } -}; - -class B { - public: - virtual void g(int *i) { - NOALIAS(global_ptr_f, i); - MUSTALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - } -}; - -class C { - public: - virtual void h(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - MUSTALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - } -}; - -class D: public A, public B, public C { - public: - virtual void l(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - MUSTALIAS(global_ptr_l, i); - } -}; - - -int main(int argc, char **argv) -{ - int *ptr_f = &global_obj_f; - int *ptr_g = &global_obj_g; - int *ptr_h = &global_obj_h; - int *ptr_l = &global_obj_l; - - D d; - - A *pa = &d; - pa->f(ptr_f); - - B *pb = &d; - pb->g(ptr_g); - - C *pc = &d; - pc->h(ptr_h); - - D *pd = &d; - pd->l(ptr_l); - - return 0; -} diff --git a/src/failed_tests/single-inheritance-5.cpp b/src/failed_tests/single-inheritance-5.cpp deleted file mode 100644 index f8f78a2e..00000000 --- a/src/failed_tests/single-inheritance-5.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "aliascheck.h" - -int global_obj; -int *global_ptr = &global_obj; - -class A { - public: - virtual void f(int *i) { - MAYALIAS(global_ptr, i); - } -}; - -class B: public A { - virtual void f(int *i) { - MUSTALIAS(global_ptr, i); - } -}; - -class C: public A { - virtual void f(int *i) { - NOALIAS(global_ptr, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr = &global_obj; - - A *pb; - if(ptr) - pb = new C; - else - pb = new B; - pb->f(ptr); - - return 0; -} diff --git a/src/failed_tests/test-linklist2.c b/src/failed_tests/test-linklist2.c deleted file mode 100644 index ee44acbf..00000000 --- a/src/failed_tests/test-linklist2.c +++ /dev/null @@ -1,43 +0,0 @@ -extern void * malloc(unsigned); -extern void free (void *); - -struct list { - int flag; - struct list * next; - struct list * prev; -}; - -struct list * construct (unsigned idx) { - struct list * head; - unsigned i = 0; - head = malloc(sizeof(struct list)); - head->next = 0; - head->prev = 0; - head->flag = -1; - for (i =0; iflag = idx; - cur->next = head; - cur->prev = 0; - head->prev = cur; - head = cur; - } - return head; -} - -struct list * randomwalk (struct list * head) { - struct list * cur = head; - - for (;cur->flag != 0; ) { - cur = & (cur->next); - } - return cur; -} - -void main () { - struct list * head; - struct list * head1; - head = construct (10); - - head1 = randomwalk (head); -} diff --git a/src/failed_tests/test-recursion1.c b/src/failed_tests/test-recursion1.c deleted file mode 100644 index bbc1741b..00000000 --- a/src/failed_tests/test-recursion1.c +++ /dev/null @@ -1,25 +0,0 @@ -extern void * malloc(unsigned); - - -typedef struct{ - int t1; - int t2; - int * b; - int * a; -} basestruct; - -void f(basestruct * a) { - int * t = a->b; - basestruct * t1 = &(a->b); - f(t1); - - a->b = a; -} - -int main(){ - basestruct t; - f(&t); -} - - - diff --git a/src/failed_tests/vdiamond-multi-inher.cpp b/src/failed_tests/vdiamond-multi-inher.cpp deleted file mode 100644 index 3adc12ce..00000000 --- a/src/failed_tests/vdiamond-multi-inher.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "aliascheck.h" - -/* - * inheritance relation: - * - * +-------- B <---+ - * | virtual | - * A <---+ | - * | virtual | - * +-------- C <---+--- E - * | - * D <---+ - * - */ - -int global_obj_f; -int *global_ptr_f = &global_obj_f; - -int global_obj_g; -int *global_ptr_g = &global_obj_g; - -int global_obj_h; -int *global_ptr_h = &global_obj_h; - -int global_obj_l; -int *global_ptr_l = &global_obj_l; - -int global_obj_m; -int *global_ptr_m = &global_obj_m; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - NOALIAS(global_ptr_m, i); - } -}; - -class B: public virtual A { - public: - virtual void g(int *i) { - NOALIAS(global_ptr_f, i); - MUSTALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - NOALIAS(global_ptr_m, i); - } -}; - -class C: public virtual A { - public: - virtual void h(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - MUSTALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - NOALIAS(global_ptr_m, i); - } -}; - -class D { - public: - virtual void l(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - MUSTALIAS(global_ptr_l, i); - NOALIAS(global_ptr_m, i); - } -}; - -class E: public B, public C, public D { - public: - virtual void m(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - MUSTALIAS(global_ptr_m, i); - } -}; - -int main(int argc, char **argv) -{ - int *ptr_f = &global_obj_f; - int *ptr_g = &global_obj_g; - int *ptr_h = &global_obj_h; - int *ptr_l = &global_obj_l; - int *ptr_m = &global_obj_m; - - A *pa; - B *pb; - C *pc; - D *pd; - E *pe; - - E e; - - pa = &e; - pa->f(ptr_f); - - pb = &e; - pb->g(ptr_g); - - pc = &e; - pc->h(ptr_h); - - pd = &e; - pd->l(ptr_l); - - pe = &e; - pe->m(ptr_m); - - return 0; -} diff --git a/src/failed_tests/vector-field-sensitivity.cpp b/src/failed_tests/vector-field-sensitivity.cpp deleted file mode 100644 index 4d22f2cb..00000000 --- a/src/failed_tests/vector-field-sensitivity.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Simple alias check - * Author: dye - * Date: 07/12/2016 - */ -#include "aliascheck.h" -#include - -using namespace std; - -class C { -public: - int f1; - int f2; -}; - -vector g; - - -int main(int argc, char *argv[]) { - - C c_; - g.push_back(c_); - C &c = g[0]; - - NOALIAS(&c_.f1, &c_.f2); - NOALIAS(&c.f1, &c.f2); - - return 0; -} diff --git a/src/failed_tests/virtual-diamond-inheritance-1.cpp b/src/failed_tests/virtual-diamond-inheritance-1.cpp deleted file mode 100644 index 98740cfe..00000000 --- a/src/failed_tests/virtual-diamond-inheritance-1.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include "aliascheck.h" - -/* - * inheritance relation: - * - * +-------- B <---+ - * | virtual | - * A <---+ +--- D - * | virtual | - * +-------- C <---+ - * - */ - -int global_obj_f; -int *global_ptr_f = &global_obj_f; - -int global_obj_g; -int *global_ptr_g = &global_obj_g; - -int global_obj_h; -int *global_ptr_h = &global_obj_h; - -int global_obj_l; -int *global_ptr_l = &global_obj_l; - -class A { - public: - virtual void f(int *i) { - MUSTALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - } -}; - -class B: public virtual A { - public: - virtual void g(int *i) { - NOALIAS(global_ptr_f, i); - MUSTALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - } -}; - -class C: public virtual A { - public: - virtual void h(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - MUSTALIAS(global_ptr_h, i); - NOALIAS(global_ptr_l, i); - } -}; - -class D: public B, public C { - public: - virtual void l(int *i) { - NOALIAS(global_ptr_f, i); - NOALIAS(global_ptr_g, i); - NOALIAS(global_ptr_h, i); - MUSTALIAS(global_ptr_l, i); - } -}; - - -int main(int argc, char **argv) -{ - int *ptr_f = &global_obj_f; - int *ptr_g = &global_obj_g; - int *ptr_h = &global_obj_h; - int *ptr_l = &global_obj_l; - - A *pa; - B *pb; - C *pc; - D *pd; - - D d; - - pa = &d; - pa->f(ptr_f); - - pb = &d; - pb->g(ptr_g); - - pc = &d; - pc->h(ptr_h); - - pd = &d; - pd->l(ptr_l); - - return 0; -} diff --git a/src/graphtxt/11graph.txt b/src/graphtxt/11graph.txt deleted file mode 100644 index b5efc85f..00000000 --- a/src/graphtxt/11graph.txt +++ /dev/null @@ -1,23 +0,0 @@ -1 o -2 o -3 v -4 v -5 v -6 v -7 v -8 v -9 o -10 o -11 v -12 v -1 addr 3 -2 addr 4 -3 call 5 1 -4 call 5 2 -5 store 6 -7 call 6 1 -8 call 6 2 -9 addr 7 -10 addr 8 -7 load 11 -8 load 12 diff --git a/src/graphtxt/1graph.txt b/src/graphtxt/1graph.txt deleted file mode 100644 index 36081441..00000000 --- a/src/graphtxt/1graph.txt +++ /dev/null @@ -1,7 +0,0 @@ -1 o -2 v -3 v -4 v -1 addr 2 -2 load 3 -4 store 2 diff --git a/src/graphtxt/2graph.txt b/src/graphtxt/2graph.txt deleted file mode 100644 index f4b925a6..00000000 --- a/src/graphtxt/2graph.txt +++ /dev/null @@ -1,11 +0,0 @@ -1 o -2 v -3 v -4 v -5 v -6 v -1 addr 2 -2 copy 3 -2 copy 4 -3 load 5 -6 store 4 diff --git a/src/graphtxt/3graph.txt b/src/graphtxt/3graph.txt deleted file mode 100644 index 874697ed..00000000 --- a/src/graphtxt/3graph.txt +++ /dev/null @@ -1,11 +0,0 @@ -1 o -2 v -3 v -4 v -5 v -6 v -1 addr 2 -2 store 3 -3 load 4 -4 copy 5 -5 copy 6 diff --git a/src/graphtxt/4graph.txt b/src/graphtxt/4graph.txt deleted file mode 100644 index 6f010512..00000000 --- a/src/graphtxt/4graph.txt +++ /dev/null @@ -1,17 +0,0 @@ -1 o -2 v -3 o -4 v -5 v -6 o -7 v -8 v -9 v -1 addr 2 -3 addr 4 -2 store 4 -4 load 5 -4 load 9 -5 store 7 -6 addr 7 -7 load 8 diff --git a/src/graphtxt/5graph.txt b/src/graphtxt/5graph.txt deleted file mode 100644 index 109b136c..00000000 --- a/src/graphtxt/5graph.txt +++ /dev/null @@ -1,11 +0,0 @@ -1 o -2 v -3 v -4 v -5 o -6 v -1 addr 2 -2 gep 3 3 -3 store 4 -5 addr 4 -4 load 6 diff --git a/src/graphtxt/pt.sh b/src/graphtxt/pt.sh deleted file mode 100644 index 9aab1920..00000000 --- a/src/graphtxt/pt.sh +++ /dev/null @@ -1 +0,0 @@ -wpa -ander -dump-pag -print-pts -graph-txt=$1 case.bc diff --git a/src/graphtxt/run.sh b/src/graphtxt/run.sh deleted file mode 100644 index ad200b9f..00000000 --- a/src/graphtxt/run.sh +++ /dev/null @@ -1 +0,0 @@ -wpa -ander -print-pts -debug-only=general -dump-pag -graph-txt=$1 sca1.bc diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_2d_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_2d_0-0.c.bc index a5cee6ba..3cc2d88d 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_2d_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_2d_0-0.c.bc @@ -68,7 +68,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_2d_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "6093cd55e9bebab7f8de76c792a9a4f1") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -77,7 +77,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_array_2d_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "6093cd55e9bebab7f8de76c792a9a4f1") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_func_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_func_0-0.c.bc index c94e657f..7a8d3f67 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_func_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_func_0-0.c.bc @@ -68,7 +68,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 6) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_func_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "931965762cc5728ef8697a45cf5814db") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -78,7 +78,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "getValue", scope: !2, file: !2, line: 9, type: !19, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) !19 = !DISubroutineType(types: !20) !20 = !{!21, !22, !21} diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_func_3-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_func_3-0.c.bc index eafa852c..0d60d5fb 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_func_3-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_func_3-0.c.bc @@ -57,7 +57,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_func_3-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7e88dc7fc363863357b6ffe230ee5709") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -66,7 +66,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "getValue", scope: !11, file: !11, line: 13, type: !12, scopeLine: 13, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !24) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_array_func_3-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7e88dc7fc363863357b6ffe230ee5709") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_func_4-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_func_4-0.c.bc index 46d4487e..dcdf00a8 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_func_4-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_func_4-0.c.bc @@ -55,7 +55,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_func_4-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "dca9f3c4fae3f559eadec869e3ac5175") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -64,7 +64,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "getValue", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_array_func_4-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "dca9f3c4fae3f559eadec869e3ac5175") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_func_6-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_func_6-0.c.bc index aaeb5b3e..0ab5e52d 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_func_6-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_func_6-0.c.bc @@ -60,7 +60,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_func_6-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "559afc4e865cd2d6c44c804462f6bf58") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -69,7 +69,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "getValue", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_array_func_6-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "559afc4e865cd2d6c44c804462f6bf58") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_int_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_int_0-0.c.bc index 5bff9506..a366d5e9 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_int_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_int_0-0.c.bc @@ -44,7 +44,7 @@ attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_int_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "45f4e1082d285c28768620199f572748") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -53,7 +53,7 @@ attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_array_int_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "45f4e1082d285c28768620199f572748") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_struct_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_struct_0-0.c.bc index be34b380..060079a2 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_struct_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_struct_0-0.c.bc @@ -50,7 +50,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_struct_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "78e446f45362b8103119869dd85fd930") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -59,7 +59,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 13, type: !12, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_array_struct_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "78e446f45362b8103119869dd85fd930") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_array_varIdx_1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_array_varIdx_1-0.c.bc index 343c21ef..7f4a393f 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_array_varIdx_1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_array_varIdx_1-0.c.bc @@ -40,7 +40,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_array_varIdx_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "299e929d7faf82f2aa27760f4941e817") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -49,7 +49,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 2, type: !12, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_array_varIdx_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "299e929d7faf82f2aa27760f4941e817") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_arraycopy1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_arraycopy1-0.c.bc index cadab58c..abee7925 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_arraycopy1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_arraycopy1-0.c.bc @@ -43,7 +43,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_arraycopy1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "de146ffa0f16e9b76e273bb7984edb78") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -52,7 +52,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 1, type: !12, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_arraycopy1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "de146ffa0f16e9b76e273bb7984edb78") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_arraycopy2-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_arraycopy2-0.c.bc index cb38e7d5..fc4bf0c1 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_arraycopy2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_arraycopy2-0.c.bc @@ -43,7 +43,7 @@ attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_arraycopy2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ce0ff7cf64f892094a392595652a06c3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -52,7 +52,7 @@ attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 2, type: !12, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_arraycopy2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ce0ff7cf64f892094a392595652a06c3") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_arraycopy3-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_arraycopy3-0.c.bc index 8f8ec64b..165758e0 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_arraycopy3-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_arraycopy3-0.c.bc @@ -28,7 +28,7 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "a", scope: !2, file: !5, line: 2, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_arraycopy3-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d42dc4407b84c9902d263bd262b2eaa6") !4 = !{!0} !5 = !DIFile(filename: "src/ae_assert_tests/BASIC_arraycopy3-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d42dc4407b84c9902d263bd262b2eaa6") @@ -43,7 +43,7 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 3, type: !19, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !21) !19 = !DISubroutineType(types: !20) !20 = !{!7} diff --git a/test_cases_bc/ae_assert_tests/BASIC_assign_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_assign_0-0.c.bc index ae08b800..a60dac3e 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_assign_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_assign_0-0.c.bc @@ -34,7 +34,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_assign_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b61922e837e3495d927321f151e29a1a") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -43,7 +43,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 7, type: !12, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_assign_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b61922e837e3495d927321f151e29a1a") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_assign_1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_assign_1-0.c.bc index 06f0076c..f91920ef 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_assign_1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_assign_1-0.c.bc @@ -34,7 +34,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_assign_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "6da5e4fd89618c8cc0ffbfc1b831ead6") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -43,7 +43,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 3, type: !12, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_assign_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "6da5e4fd89618c8cc0ffbfc1b831ead6") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_assign_2-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_assign_2-0.c.bc index 02367690..e477e384 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_assign_2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_assign_2-0.c.bc @@ -35,7 +35,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_assign_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "482bb2fab30b68b22410520f4ead374a") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -44,7 +44,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 3, type: !12, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_assign_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "482bb2fab30b68b22410520f4ead374a") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_assign_3-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_assign_3-0.c.bc index 3e0a7d0e..94513059 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_assign_3-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_assign_3-0.c.bc @@ -35,7 +35,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_assign_3-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "db1d772ac126bf2e073fc6f7a1d8a087") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -44,7 +44,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 3, type: !12, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_assign_3-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "db1d772ac126bf2e073fc6f7a1d8a087") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_bi_add_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_bi_add_0-0.c.bc index 3129e4ac..f3f02cf5 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_bi_add_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_bi_add_0-0.c.bc @@ -33,7 +33,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_bi_add_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ba3a137e34dff2cf3dc4ab865d75572c") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -42,7 +42,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_bi_add_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ba3a137e34dff2cf3dc4ab865d75572c") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_bi_add_1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_bi_add_1-0.c.bc index 7a292a90..c1223daf 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_bi_add_1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_bi_add_1-0.c.bc @@ -37,7 +37,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_bi_add_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9441fd95aa7bc53c4c56715bcce1c313") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -46,7 +46,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 3, type: !12, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_bi_add_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9441fd95aa7bc53c4c56715bcce1c313") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_bi_add_2-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_bi_add_2-0.c.bc index 57923073..6e34cee4 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_bi_add_2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_bi_add_2-0.c.bc @@ -43,7 +43,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_bi_add_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e58e6423a11d7f5e99dd4cd06da7005c") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -52,7 +52,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_bi_add_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e58e6423a11d7f5e99dd4cd06da7005c") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_bi_div_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_bi_div_0-0.c.bc index e718e077..ddc71043 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_bi_div_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_bi_div_0-0.c.bc @@ -72,7 +72,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !DISubrange(count: 2) !7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) !8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 11, type: !3, isLocal: true, isDefinition: true) -!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) !10 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_bi_div_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "12648ff6157c37feda6c3ed320560cee") !11 = !{!0, !7} !12 = !{i32 7, !"Dwarf Version", i32 5} @@ -82,7 +82,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 5, type: !21, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !24) !21 = !DISubroutineType(types: !22) !22 = !{!23} diff --git a/test_cases_bc/ae_assert_tests/BASIC_bi_mix_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_bi_mix_0-0.c.bc index 28775e38..ccfca2ec 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_bi_mix_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_bi_mix_0-0.c.bc @@ -49,7 +49,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_bi_mix_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "eb8345bfcb698eccd542d792e44f87f3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -58,7 +58,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_bi_mix_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "eb8345bfcb698eccd542d792e44f87f3") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_bi_mul_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_bi_mul_0-0.c.bc index beffb86f..da813682 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_bi_mul_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_bi_mul_0-0.c.bc @@ -39,7 +39,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_bi_mul_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fd876f12d07a3b92124ea544b6658741") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -48,7 +48,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_bi_mul_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fd876f12d07a3b92124ea544b6658741") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_br_false_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_br_false_0-0.c.bc index 8b284bbc..259fb7c5 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_br_false_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_br_false_0-0.c.bc @@ -30,7 +30,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_br_false_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "babb163b0d1b8145d8eadfe52057bd3e") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -39,7 +39,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_br_false_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "babb163b0d1b8145d8eadfe52057bd3e") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_br_nd_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_br_nd_0-0.c.bc index 6543e156..6aa07ba2 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_br_nd_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_br_nd_0-0.c.bc @@ -54,7 +54,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_br_nd_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8c6f18623a3278780991212d356c25c4") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -63,7 +63,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 11, type: !12, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_br_nd_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8c6f18623a3278780991212d356c25c4") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_br_nd_1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_br_nd_1-0.c.bc index f7e8daaa..586547f3 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_br_nd_1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_br_nd_1-0.c.bc @@ -71,7 +71,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_br_nd_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d735ed503267deb3442f4b1b251511bb") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -80,7 +80,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_br_nd_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d735ed503267deb3442f4b1b251511bb") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_br_nd_2-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_br_nd_2-0.c.bc index 6cbe47e1..8ec9d054 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_br_nd_2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_br_nd_2-0.c.bc @@ -49,7 +49,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_br_nd_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ac96b6d01e861d4538e0c7808ec3fb27") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -58,7 +58,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 11, type: !12, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_br_nd_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ac96b6d01e861d4538e0c7808ec3fb27") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_br_nd_malloc-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_br_nd_malloc-0.c.bc index 204a77c8..dc609eeb 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_br_nd_malloc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_br_nd_malloc-0.c.bc @@ -54,7 +54,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_br_nd_malloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "01fcb0a24b581011fd8004bb13ddb19b") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -63,7 +63,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 3, type: !12, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_br_nd_malloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "01fcb0a24b581011fd8004bb13ddb19b") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_br_true_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_br_true_0-0.c.bc index 25daebba..81a2c896 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_br_true_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_br_true_0-0.c.bc @@ -40,7 +40,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_br_true_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f602064476cd9d07e4ecd25225bef809") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -49,7 +49,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_br_true_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f602064476cd9d07e4ecd25225bef809") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_0-0.c.bc index f7b82c2b..1e538019 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_0-0.c.bc @@ -40,7 +40,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_funcall_ref_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a1edbb8d6fb86a49914cd0b9f1ec179c") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -49,7 +49,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_funcall_ref_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a1edbb8d6fb86a49914cd0b9f1ec179c") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_1-0.c.bc index 4004531d..1b25aa5d 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_1-0.c.bc @@ -56,7 +56,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_funcall_ref_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "146ff971d14b3e0a87c8df25db9c4c88") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -65,7 +65,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "swap", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_funcall_ref_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "146ff971d14b3e0a87c8df25db9c4c88") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_2-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_2-0.c.bc index 86520854..a9fe4951 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_funcall_ref_2-0.c.bc @@ -41,7 +41,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_funcall_ref_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c35c5bf4b069b96d7c622bea08931938") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -50,7 +50,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_funcall_ref_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c35c5bf4b069b96d7c622bea08931938") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_nullptr_def_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_nullptr_def_0-0.c.bc index a224a592..24587cb4 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_nullptr_def_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_nullptr_def_0-0.c.bc @@ -53,7 +53,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!11, !12, !13, !14, !15, !16, !17} !llvm.ident = !{!18} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_nullptr_def_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c9b714616143a75c636d37ced957d7ac") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -71,7 +71,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !15 = !{i32 7, !"PIE Level", i32 2} !16 = !{i32 7, !"uwtable", i32 2} !17 = !{i32 7, !"frame-pointer", i32 2} -!18 = !{!"clang version 16.0.0"} +!18 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !19 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 20, type: !20, scopeLine: 20, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) !20 = !DISubroutineType(types: !21) !21 = !{!9} diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_assign_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_assign_0-0.c.bc index 2d7e49ad..7fca6e2e 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_assign_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_assign_0-0.c.bc @@ -33,7 +33,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_assign_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cb1dc5512cccf3bb03c349e8288ea0b1") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -42,7 +42,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_ptr_assign_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cb1dc5512cccf3bb03c349e8288ea0b1") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_call1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_call1-0.c.bc index 0e978ee3..81efce46 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_call1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_call1-0.c.bc @@ -75,7 +75,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_call1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "170ac1ec762dee7b184a9abdb83dd549") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -84,7 +84,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_ptr_call1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "170ac1ec762dee7b184a9abdb83dd549") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_call2-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_call2-0.c.bc index c0539279..1ca1e225 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_call2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_call2-0.c.bc @@ -64,7 +64,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 2) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_call2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d062e32c50bd991f94a65334c8d20b07") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -74,7 +74,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 11, type: !19, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) !19 = !DISubroutineType(types: !20) !20 = !{!21} diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_0-0.c.bc index 690c340c..1c26971c 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_0-0.c.bc @@ -62,7 +62,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_func_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c8b7df03c0d7b53bca2ab712150da941") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -71,7 +71,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "swap", scope: !11, file: !11, line: 3, type: !12, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_ptr_func_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c8b7df03c0d7b53bca2ab712150da941") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_1-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_1-0.c.bc index 5ed87d42..bf9ff2d8 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_1-0.c.bc @@ -79,7 +79,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_func_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c780b1b60dee127e0bd37f2c6b480056") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -88,7 +88,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_ptr_func_1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c780b1b60dee127e0bd37f2c6b480056") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_4-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_4-0.c.bc index 3a2e823c..643e757a 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_4-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_4-0.c.bc @@ -77,7 +77,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_func_4-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e2196daf9539908a930fd53e4ab037a9") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -86,7 +86,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 7, type: !12, scopeLine: 7, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_ptr_func_4-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e2196daf9539908a930fd53e4ab037a9") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_6-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_6-0.c.bc index 509d407a..608e317b 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_func_6-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_func_6-0.c.bc @@ -57,7 +57,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_func_6-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8fb03d5c9add5111986eb31879a136b1") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -66,7 +66,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 7, type: !12, scopeLine: 7, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_ptr_func_6-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8fb03d5c9add5111986eb31879a136b1") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_ptr_s32_2-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_ptr_s32_2-0.c.bc index b4053ee6..16d744d1 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_ptr_s32_2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_ptr_s32_2-0.c.bc @@ -35,7 +35,7 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_ptr_s32_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fb6df4584ba3688c8b656d4d1e01eb61") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -47,7 +47,7 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 9, type: !15, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !14 = !DIFile(filename: "src/ae_assert_tests/BASIC_ptr_s32_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fb6df4584ba3688c8b656d4d1e01eb61") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/ae_assert_tests/BASIC_struct_array_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_struct_array_0-0.c.bc index 8e675405..0c48dd88 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_struct_array_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_struct_array_0-0.c.bc @@ -47,7 +47,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_struct_array_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "964c3c8a922dba2af5e9119a11f58ef0") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -56,7 +56,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 12, type: !12, scopeLine: 12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_struct_array_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "964c3c8a922dba2af5e9119a11f58ef0") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_struct_assign_0-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_struct_assign_0-0.c.bc index 1934df99..6453854c 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_struct_assign_0-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_struct_assign_0-0.c.bc @@ -38,7 +38,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_struct_assign_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9de6f29f1655805490d8474658bc3a5a") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -47,7 +47,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 18, type: !12, scopeLine: 18, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_struct_assign_0-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9de6f29f1655805490d8474658bc3a5a") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch-0.c.bc index 38ab4826..a59f7fd8 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch-0.c.bc @@ -76,7 +76,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9c4237da1d6907a101d32f871f2e4cf1") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -85,7 +85,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9c4237da1d6907a101d32f871f2e4cf1") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch01-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch01-0.c.bc index 6d694384..8d379887 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch01-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch01-0.c.bc @@ -77,7 +77,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch01-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "96f557f66709288c2e7b12a98cea6cbb") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -86,7 +86,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "nd", scope: !11, file: !11, line: 4, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch01-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "96f557f66709288c2e7b12a98cea6cbb") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch02-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch02-0.c.bc index f4dca727..58da0642 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch02-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch02-0.c.bc @@ -75,7 +75,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch02-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8d4277357c2e2c8f9405a7b4426d4bc3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -84,7 +84,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch02-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8d4277357c2e2c8f9405a7b4426d4bc3") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch03-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch03-0.c.bc index 93a67f37..b4d1b5f8 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch03-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch03-0.c.bc @@ -77,7 +77,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch03-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "66748de6ce667a0803aef76cbb8ffbc5") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -86,7 +86,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "nd", scope: !11, file: !11, line: 4, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch03-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "66748de6ce667a0803aef76cbb8ffbc5") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch04-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch04-0.c.bc index 93463b47..ab349c52 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch04-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch04-0.c.bc @@ -80,7 +80,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch04-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9061c3e46e9ddcb4969a5b600efd72a9") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -89,7 +89,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "nd", scope: !11, file: !11, line: 4, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch04-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9061c3e46e9ddcb4969a5b600efd72a9") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch05-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch05-0.c.bc index 88e8263d..88c1243f 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch05-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch05-0.c.bc @@ -77,7 +77,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch05-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "495eb07e73dab36134e244b9cc25d3f6") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -86,7 +86,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "nd", scope: !11, file: !11, line: 4, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch05-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "495eb07e73dab36134e244b9cc25d3f6") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch06-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch06-0.c.bc index c07e9343..25e68568 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch06-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch06-0.c.bc @@ -75,7 +75,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch06-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8d4277357c2e2c8f9405a7b4426d4bc3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -84,7 +84,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch06-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8d4277357c2e2c8f9405a7b4426d4bc3") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch07-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch07-0.c.bc index 3f05c6db..75ad0400 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch07-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch07-0.c.bc @@ -77,7 +77,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch07-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "66748de6ce667a0803aef76cbb8ffbc5") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -86,7 +86,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "nd", scope: !11, file: !11, line: 4, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch07-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "66748de6ce667a0803aef76cbb8ffbc5") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch08-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch08-0.c.bc index e4633275..fcad53fb 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch08-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch08-0.c.bc @@ -80,7 +80,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch08-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a6bb4d50810689e7ca82b6089398d6f5") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -89,7 +89,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "nd", scope: !11, file: !11, line: 4, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch08-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a6bb4d50810689e7ca82b6089398d6f5") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch09-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch09-0.c.bc index 201391e3..e00b8745 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch09-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch09-0.c.bc @@ -77,7 +77,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch09-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "627c91fbc5a098d13db04043002ef3cf") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -86,7 +86,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "nd", scope: !11, file: !11, line: 6, type: !12, scopeLine: 7, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch09-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "627c91fbc5a098d13db04043002ef3cf") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_switch10-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_switch10-0.c.bc index 7b9c47ec..1316ed1b 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_switch10-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_switch10-0.c.bc @@ -75,7 +75,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_switch10-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8d4277357c2e2c8f9405a7b4426d4bc3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -84,7 +84,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_switch10-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8d4277357c2e2c8f9405a7b4426d4bc3") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BASIC_test_11-0.c.bc b/test_cases_bc/ae_assert_tests/BASIC_test_11-0.c.bc index a62f2c6c..b0fcb2f7 100644 --- a/test_cases_bc/ae_assert_tests/BASIC_test_11-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BASIC_test_11-0.c.bc @@ -36,7 +36,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BASIC_test_11-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b959132c620c1d5511825589aa0b5c10") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -45,7 +45,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/BASIC_test_11-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b959132c620c1d5511825589aa0b5c10") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/BUF_OVERFLOW_test_47-0.c.bc b/test_cases_bc/ae_assert_tests/BUF_OVERFLOW_test_47-0.c.bc index d9d1e93a..c4130a8d 100644 --- a/test_cases_bc/ae_assert_tests/BUF_OVERFLOW_test_47-0.c.bc +++ b/test_cases_bc/ae_assert_tests/BUF_OVERFLOW_test_47-0.c.bc @@ -79,11 +79,11 @@ attributes #6 = { nounwind willreturn memory(none) } !llvm.module.flags = !{!22, !23, !24, !25, !26, !27, !28} !llvm.ident = !{!29} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !19, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !19, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/BUF_OVERFLOW_test_47-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "352e37dfff62dbe992ec1404ff1c67f5") !2 = !{!3} !3 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 46, baseType: !5, size: 32, elements: !6) -!4 = !DIFile(filename: "/usr/include/ctype.h", directory: "", checksumkind: CSK_MD5, checksum: "36575f934ef4fe7e9d50a3cb17bd5c66") +!4 = !DIFile(filename: "/usr/include/ctype.h", directory: "", checksumkind: CSK_MD5, checksum: "43fd45dcf96e8fb7d8f14700096497c7") !5 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) !6 = !{!7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18} !7 = !DIEnumerator(name: "_ISupper", value: 256) @@ -108,7 +108,7 @@ attributes #6 = { nounwind willreturn memory(none) } !26 = !{i32 7, !"PIE Level", i32 2} !27 = !{i32 7, !"uwtable", i32 2} !28 = !{i32 7, !"frame-pointer", i32 2} -!29 = !{!"clang version 16.0.0"} +!29 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !30 = distinct !DISubprogram(name: "main", scope: !31, file: !31, line: 8, type: !32, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !34) !31 = !DIFile(filename: "src/ae_assert_tests/BUF_OVERFLOW_test_47-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "352e37dfff62dbe992ec1404ff1c67f5") !32 = !DISubroutineType(types: !33) diff --git a/test_cases_bc/ae_assert_tests/CAST_fptosi.c.bc b/test_cases_bc/ae_assert_tests/CAST_fptosi.c.bc index ea802782..ce2373f3 100644 --- a/test_cases_bc/ae_assert_tests/CAST_fptosi.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_fptosi.c.bc @@ -35,7 +35,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!4, !5, !6, !7, !8, !9, !10} !llvm.ident = !{!11} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_fptosi.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "05f2a344e08b283f616ac46982cbf04c") !2 = !{!3} !3 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -46,7 +46,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !8 = !{i32 7, !"PIE Level", i32 2} !9 = !{i32 7, !"uwtable", i32 2} !10 = !{i32 7, !"frame-pointer", i32 2} -!11 = !{!"clang version 16.0.0"} +!11 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !12 = distinct !DISubprogram(name: "main", scope: !13, file: !13, line: 3, type: !14, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !13 = !DIFile(filename: "src/ae_assert_tests/CAST_fptosi.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "05f2a344e08b283f616ac46982cbf04c") !14 = !DISubroutineType(types: !2) diff --git a/test_cases_bc/ae_assert_tests/CAST_fptoui.c.bc b/test_cases_bc/ae_assert_tests/CAST_fptoui.c.bc index 25e293aa..01aa994b 100644 --- a/test_cases_bc/ae_assert_tests/CAST_fptoui.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_fptoui.c.bc @@ -48,7 +48,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_fptoui.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4c5eb2118728d711f6befe00e91db836") !9 = !{!10} !10 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -60,7 +60,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 4, type: !21, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !21 = !DISubroutineType(types: !22) !22 = !{!23} diff --git a/test_cases_bc/ae_assert_tests/CAST_fptrunc.c.bc b/test_cases_bc/ae_assert_tests/CAST_fptrunc.c.bc index 09a11c3e..fa084b2a 100644 --- a/test_cases_bc/ae_assert_tests/CAST_fptrunc.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_fptrunc.c.bc @@ -35,7 +35,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!4, !5, !6, !7, !8, !9, !10} !llvm.ident = !{!11} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_fptrunc.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2e88ac487de5d0c1c4be8578bacc0fcb") !2 = !{!3} !3 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float) @@ -46,7 +46,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !8 = !{i32 7, !"PIE Level", i32 2} !9 = !{i32 7, !"uwtable", i32 2} !10 = !{i32 7, !"frame-pointer", i32 2} -!11 = !{!"clang version 16.0.0"} +!11 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !12 = distinct !DISubprogram(name: "main", scope: !13, file: !13, line: 3, type: !14, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !13 = !DIFile(filename: "src/ae_assert_tests/CAST_fptrunc.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2e88ac487de5d0c1c4be8578bacc0fcb") !14 = !DISubroutineType(types: !15) diff --git a/test_cases_bc/ae_assert_tests/CAST_sext.c.bc b/test_cases_bc/ae_assert_tests/CAST_sext.c.bc index a77105ca..f06114e9 100644 --- a/test_cases_bc/ae_assert_tests/CAST_sext.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_sext.c.bc @@ -33,7 +33,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_sext.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "69d6f5c6750e914bc2270f5c46351d37") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -42,7 +42,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/CAST_sext.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "69d6f5c6750e914bc2270f5c46351d37") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/CAST_sitofp.c.bc b/test_cases_bc/ae_assert_tests/CAST_sitofp.c.bc index 864ac431..4ceb8f51 100644 --- a/test_cases_bc/ae_assert_tests/CAST_sitofp.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_sitofp.c.bc @@ -35,7 +35,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!4, !5, !6, !7, !8, !9, !10} !llvm.ident = !{!11} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_sitofp.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f299735690641c664ae43ccba7dac4dc") !2 = !{!3} !3 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float) @@ -46,7 +46,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !8 = !{i32 7, !"PIE Level", i32 2} !9 = !{i32 7, !"uwtable", i32 2} !10 = !{i32 7, !"frame-pointer", i32 2} -!11 = !{!"clang version 16.0.0"} +!11 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !12 = distinct !DISubprogram(name: "main", scope: !13, file: !13, line: 3, type: !14, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !13 = !DIFile(filename: "src/ae_assert_tests/CAST_sitofp.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f299735690641c664ae43ccba7dac4dc") !14 = !DISubroutineType(types: !15) diff --git a/test_cases_bc/ae_assert_tests/CAST_trunc.c.bc b/test_cases_bc/ae_assert_tests/CAST_trunc.c.bc index 6c568b14..5f0e782a 100644 --- a/test_cases_bc/ae_assert_tests/CAST_trunc.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_trunc.c.bc @@ -36,13 +36,13 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!8, !9, !10, !11, !12, !13, !14} !llvm.ident = !{!15} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_trunc.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cf95474b31e6546b0cf82e7999d64a74") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_typedef, name: "int8_t", file: !4, line: 24, baseType: !5) -!4 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!4 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !5 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int8_t", file: !6, line: 37, baseType: !7) -!6 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!6 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !7 = !DIBasicType(name: "signed char", size: 8, encoding: DW_ATE_signed_char) !8 = !{i32 7, !"Dwarf Version", i32 5} !9 = !{i32 2, !"Debug Info Version", i32 3} @@ -51,7 +51,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !12 = !{i32 7, !"PIE Level", i32 2} !13 = !{i32 7, !"uwtable", i32 2} !14 = !{i32 7, !"frame-pointer", i32 2} -!15 = !{!"clang version 16.0.0"} +!15 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !16 = distinct !DISubprogram(name: "main", scope: !17, file: !17, line: 4, type: !18, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) !17 = !DIFile(filename: "src/ae_assert_tests/CAST_trunc.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cf95474b31e6546b0cf82e7999d64a74") !18 = !DISubroutineType(types: !19) diff --git a/test_cases_bc/ae_assert_tests/CAST_uitofp.c.bc b/test_cases_bc/ae_assert_tests/CAST_uitofp.c.bc index 0ad3e7ab..d3f36593 100644 --- a/test_cases_bc/ae_assert_tests/CAST_uitofp.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_uitofp.c.bc @@ -35,7 +35,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!4, !5, !6, !7, !8, !9, !10} !llvm.ident = !{!11} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_uitofp.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ee427f11a1d5c3cc9eabda368128b6f5") !2 = !{!3} !3 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float) @@ -46,7 +46,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !8 = !{i32 7, !"PIE Level", i32 2} !9 = !{i32 7, !"uwtable", i32 2} !10 = !{i32 7, !"frame-pointer", i32 2} -!11 = !{!"clang version 16.0.0"} +!11 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !12 = distinct !DISubprogram(name: "main", scope: !13, file: !13, line: 3, type: !14, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !13 = !DIFile(filename: "src/ae_assert_tests/CAST_uitofp.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ee427f11a1d5c3cc9eabda368128b6f5") !14 = !DISubroutineType(types: !15) diff --git a/test_cases_bc/ae_assert_tests/CAST_zext.c.bc b/test_cases_bc/ae_assert_tests/CAST_zext.c.bc index dbdc5ccc..384858b7 100644 --- a/test_cases_bc/ae_assert_tests/CAST_zext.c.bc +++ b/test_cases_bc/ae_assert_tests/CAST_zext.c.bc @@ -34,7 +34,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CAST_zext.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "dc4ad4d019087cd91900b640e0f3fe7d") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -43,7 +43,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 3, type: !12, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/CAST_zext.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "dc4ad4d019087cd91900b640e0f3fe7d") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/CVE-2019-19847-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2019-19847-0.c.bc index 7b477af4..76fb67b5 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2019-19847-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2019-19847-0.c.bc @@ -53,7 +53,7 @@ attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memo !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2019-19847-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7b91574c69bf47480e7c784203b7580e") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -62,7 +62,7 @@ attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memo !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "spiro_to_bpath0", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/CVE-2019-19847-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7b91574c69bf47480e7c784203b7580e") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/CVE-2020-13598-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2020-13598-0.c.bc index 397abf7e..acefd85c 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2020-13598-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2020-13598-0.c.bc @@ -60,7 +60,7 @@ attributes #3 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 21) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2020-13598-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fa9fd30bbc3fb31123484e9354e4fdf5") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -70,7 +70,7 @@ attributes #3 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "fatfs_stat", scope: !2, file: !2, line: 29, type: !19, scopeLine: 29, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !35) !19 = !DISubroutineType(types: !20) !20 = !{null, !21, !28} diff --git a/test_cases_bc/ae_assert_tests/CVE-2020-29203-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2020-29203-0.c.bc index 3be09c91..91f51871 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2020-29203-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2020-29203-0.c.bc @@ -214,7 +214,7 @@ attributes #9 = { nounwind } !9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 632, elements: !10) !10 = !{!11} !11 = !DISubrange(count: 79) -!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !14, globals: !24, splitDebugInlining: false, nameTableKind: None) +!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !14, globals: !24, splitDebugInlining: false, nameTableKind: None) !13 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2020-29203-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "126830e37a8bafa0c896b9cbfcd0d236") !14 = !{!15, !22} !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !16, size: 64) @@ -234,7 +234,7 @@ attributes #9 = { nounwind } !29 = !{i32 7, !"PIE Level", i32 2} !30 = !{i32 7, !"uwtable", i32 2} !31 = !{i32 7, !"frame-pointer", i32 2} -!32 = !{!"clang version 16.0.0"} +!32 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !33 = distinct !DISubprogram(name: "cJSON_CreateString", scope: !2, file: !2, line: 41, type: !34, scopeLine: 41, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !12, retainedNodes: !38) !34 = !DISubroutineType(types: !35) !35 = !{!15, !36} diff --git a/test_cases_bc/ae_assert_tests/CVE-2021-39602-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2021-39602-0.c.bc index ea100d1a..aab53a85 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2021-39602-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2021-39602-0.c.bc @@ -138,7 +138,7 @@ attributes #7 = { nounwind willreturn memory(none) } !24 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 128, elements: !25) !25 = !{!26} !26 = !DISubrange(count: 16) -!27 = distinct !DICompileUnit(language: DW_LANG_C11, file: !28, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !29, globals: !31, splitDebugInlining: false, nameTableKind: None) +!27 = distinct !DICompileUnit(language: DW_LANG_C11, file: !28, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !29, globals: !31, splitDebugInlining: false, nameTableKind: None) !28 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2021-39602-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b9457f41daad9da681df7d5cb9dd3f0d") !29 = !{!30} !30 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -150,7 +150,7 @@ attributes #7 = { nounwind willreturn memory(none) } !36 = !{i32 7, !"PIE Level", i32 2} !37 = !{i32 7, !"uwtable", i32 2} !38 = !{i32 7, !"frame-pointer", i32 2} -!39 = !{!"clang version 16.0.0"} +!39 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !40 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 43, type: !41, scopeLine: 43, spFlags: DISPFlagDefinition, unit: !27, retainedNodes: !44) !41 = !DISubroutineType(types: !42) !42 = !{!43} diff --git a/test_cases_bc/ae_assert_tests/CVE-2021-44975-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2021-44975-0.c.bc index 84b07fe0..f1822546 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2021-44975-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2021-44975-0.c.bc @@ -324,7 +324,7 @@ attributes #5 = { nounwind allocsize(0,1) } !9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 368, elements: !10) !10 = !{!11} !11 = !DISubrange(count: 46) -!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !14, splitDebugInlining: false, nameTableKind: None) +!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !14, splitDebugInlining: false, nameTableKind: None) !13 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2021-44975-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cd260ac6c139d337e7016f4869ac17ff") !14 = !{!0, !7} !15 = !{i32 7, !"Dwarf Version", i32 5} @@ -334,7 +334,7 @@ attributes #5 = { nounwind allocsize(0,1) } !19 = !{i32 7, !"PIE Level", i32 2} !20 = !{i32 7, !"uwtable", i32 2} !21 = !{i32 7, !"frame-pointer", i32 2} -!22 = !{!"clang version 16.0.0"} +!22 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !23 = distinct !DISubprogram(name: "r_io_pread_at", scope: !2, file: !2, line: 37, type: !24, scopeLine: 37, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !12, retainedNodes: !34) !24 = !DISubroutineType(types: !25) !25 = !{!26, !27, !33, !26} diff --git a/test_cases_bc/ae_assert_tests/CVE-2021-45341-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2021-45341-0.c.bc index a7b23742..e4949952 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2021-45341-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2021-45341-0.c.bc @@ -114,7 +114,7 @@ attributes #8 = { nounwind } !14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 5344, elements: !15) !15 = !{!16} !16 = !DISubrange(count: 668) -!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) +!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) !18 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2021-45341-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3c85638a1acfc594f6d0ee0dc167f016") !19 = !{!0, !7, !12} !20 = !{i32 7, !"Dwarf Version", i32 5} @@ -124,7 +124,7 @@ attributes #8 = { nounwind } !24 = !{i32 7, !"PIE Level", i32 2} !25 = !{i32 7, !"uwtable", i32 2} !26 = !{i32 7, !"frame-pointer", i32 2} -!27 = !{!"clang version 16.0.0"} +!27 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !28 = distinct !DISubprogram(name: "Serialize", scope: !2, file: !2, line: 13, type: !29, scopeLine: 13, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !32) !29 = !DISubroutineType(types: !30) !30 = !{null, !31} diff --git a/test_cases_bc/ae_assert_tests/CVE-2022-23850-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2022-23850-0.c.bc index 6ab1328c..ef8b2101 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2022-23850-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2022-23850-0.c.bc @@ -60,15 +60,15 @@ attributes #3 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 26) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !17, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !17, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-23850-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "0ac8a6a18baf03409e466f39130b6b06") !9 = !{!10, !11} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) !11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64) !12 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !13, line: 26, baseType: !14) -!13 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "d3ea318a915682aaf6645ec16ac9f991") +!13 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "256fcabbefa27ca8cf5e6d37525e6e16") !14 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !15, line: 42, baseType: !16) -!15 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!15 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !16 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) !17 = !{!0} !18 = !{i32 7, !"Dwarf Version", i32 5} @@ -78,7 +78,7 @@ attributes #3 = { nounwind } !22 = !{i32 7, !"PIE Level", i32 2} !23 = !{i32 7, !"uwtable", i32 2} !24 = !{i32 7, !"frame-pointer", i32 2} -!25 = !{!"clang version 16.0.0"} +!25 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !26 = distinct !DISubprogram(name: "xhtml_translate_entity", scope: !2, file: !2, line: 16, type: !27, scopeLine: 16, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !35) !27 = !DISubroutineType(types: !28) !28 = !{null, !29} diff --git a/test_cases_bc/ae_assert_tests/CVE-2022-26129-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2022-26129-0.c.bc index 326fc719..45cf6d41 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2022-26129-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2022-26129-0.c.bc @@ -101,7 +101,7 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-26129-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "091485ed47a5f4d546d534edec4061b3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -110,7 +110,7 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "parse_update_subtlv", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) !11 = !DIFile(filename: "src/ae_assert_tests/CVE-2022-26129-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "091485ed47a5f4d546d534edec4061b3") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/CVE-2022-27239-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2022-27239-0.c.bc new file mode 100644 index 00000000..372471b7 --- /dev/null +++ b/test_cases_bc/ae_assert_tests/CVE-2022-27239-0.c.bc @@ -0,0 +1,456 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_assert_tests/CVE-2022-27239-0.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-27239-0.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.parsed_mount_info = type { [45 x i8], i8, [2 x i8] } + +@.str = private unnamed_addr constant [28 x i8] c"parse opt token, token: %s\0A\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [3 x i8] c"ip\00", align 1, !dbg !7 +@.str.2 = private unnamed_addr constant [5 x i8] c"addr\00", align 1, !dbg !12 +@.str.3 = private unnamed_addr constant [25 x i8] c"parse option, buffer:%s\0A\00", align 1, !dbg !17 +@.str.4 = private unnamed_addr constant [2 x i8] c",\00", align 1, !dbg !22 +@stderr = external global ptr, align 8 +@.str.5 = private unnamed_addr constant [34 x i8] c"ip address %s override specified\0A\00", align 1, !dbg !27 +@.str.6 = private unnamed_addr constant [74 x i8] c"keyword,ip=VapodinGmVAFzAbsPWGkWdPQI2gozcQulsHW1hJRsyVlaZ,keyword3=value3\00", align 1, !dbg !32 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @parse_opt_token(ptr noundef %token) #0 !dbg !50 { +entry: + %retval = alloca i32, align 4 + %token.addr = alloca ptr, align 8 + store ptr %token, ptr %token.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %token.addr, metadata !57, metadata !DIExpression()), !dbg !58 + %0 = load ptr, ptr %token.addr, align 8, !dbg !59 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef %0), !dbg !60 + %1 = load ptr, ptr %token.addr, align 8, !dbg !61 + %cmp = icmp eq ptr %1, null, !dbg !63 + br i1 %cmp, label %if.then, label %if.end, !dbg !64 + +if.then: ; preds = %entry + store i32 -1, ptr %retval, align 4, !dbg !65 + br label %return, !dbg !65 + +if.end: ; preds = %entry + %2 = load ptr, ptr %token.addr, align 8, !dbg !66 + %call1 = call i32 @strcmp(ptr noundef %2, ptr noundef @.str.1) #7, !dbg !68 + %cmp2 = icmp eq i32 %call1, 0, !dbg !69 + br i1 %cmp2, label %if.then5, label %lor.lhs.false, !dbg !70 + +lor.lhs.false: ; preds = %if.end + %3 = load ptr, ptr %token.addr, align 8, !dbg !71 + %call3 = call i32 @strcmp(ptr noundef %3, ptr noundef @.str.2) #7, !dbg !72 + %cmp4 = icmp eq i32 %call3, 0, !dbg !73 + br i1 %cmp4, label %if.then5, label %if.end6, !dbg !74 + +if.then5: ; preds = %lor.lhs.false, %if.end + store i32 6, ptr %retval, align 4, !dbg !75 + br label %return, !dbg !75 + +if.end6: ; preds = %lor.lhs.false + store i32 -1, ptr %retval, align 4, !dbg !76 + br label %return, !dbg !76 + +return: ; preds = %if.end6, %if.then5, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !77 + ret i32 %4, !dbg !77 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare i32 @printf(ptr noundef, ...) #2 + +; Function Attrs: nounwind willreturn memory(read) +declare i32 @strcmp(ptr noundef, ptr noundef) #3 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @parse_options(ptr noundef %data, ptr noundef %parsed_info) #0 !dbg !78 { +entry: + %retval = alloca i32, align 4 + %data.addr = alloca ptr, align 8 + %parsed_info.addr = alloca ptr, align 8 + %value = alloca ptr, align 8 + %equals = alloca ptr, align 8 + %next_keyword = alloca ptr, align 8 + %saved_stack = alloca ptr, align 8 + %__vla_expr0 = alloca i64, align 8 + %token = alloca ptr, align 8 + store ptr %data, ptr %data.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %data.addr, metadata !90, metadata !DIExpression()), !dbg !91 + store ptr %parsed_info, ptr %parsed_info.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %parsed_info.addr, metadata !92, metadata !DIExpression()), !dbg !93 + call void @llvm.dbg.declare(metadata ptr %value, metadata !94, metadata !DIExpression()), !dbg !96 + %0 = load ptr, ptr %data.addr, align 8, !dbg !97 + %call = call i64 @strlen(ptr noundef %0) #7, !dbg !98 + %add = add i64 %call, 1, !dbg !99 + %call1 = call noalias ptr @malloc(i64 noundef %add) #8, !dbg !100 + store ptr %call1, ptr %value, align 8, !dbg !96 + call void @llvm.dbg.declare(metadata ptr %equals, metadata !101, metadata !DIExpression()), !dbg !102 + %1 = load ptr, ptr %data.addr, align 8, !dbg !103 + %call2 = call i64 @strlen(ptr noundef %1) #7, !dbg !104 + %add3 = add i64 %call2, 1, !dbg !105 + %call4 = call noalias ptr @malloc(i64 noundef %add3) #8, !dbg !106 + store ptr %call4, ptr %equals, align 8, !dbg !102 + call void @llvm.dbg.declare(metadata ptr %next_keyword, metadata !107, metadata !DIExpression()), !dbg !108 + %2 = load ptr, ptr %data.addr, align 8, !dbg !109 + %call5 = call i64 @strlen(ptr noundef %2) #7, !dbg !110 + %add6 = add i64 %call5, 1, !dbg !111 + %call7 = call noalias ptr @malloc(i64 noundef %add6) #8, !dbg !112 + store ptr %call7, ptr %next_keyword, align 8, !dbg !108 + %3 = load ptr, ptr %data.addr, align 8, !dbg !113 + %tobool = icmp ne ptr %3, null, !dbg !113 + br i1 %tobool, label %if.end, label %if.then, !dbg !115 + +if.then: ; preds = %entry + store i32 1, ptr %retval, align 4, !dbg !116 + br label %return, !dbg !116 + +if.end: ; preds = %entry + %4 = load ptr, ptr %data.addr, align 8, !dbg !117 + %call8 = call i64 @strlen(ptr noundef %4) #7, !dbg !118 + %add9 = add i64 %call8, 1, !dbg !119 + %5 = call ptr @llvm.stacksave(), !dbg !120 + store ptr %5, ptr %saved_stack, align 8, !dbg !120 + %vla = alloca i8, i64 %add9, align 16, !dbg !120 + store i64 %add9, ptr %__vla_expr0, align 8, !dbg !120 + call void @llvm.dbg.declare(metadata ptr %__vla_expr0, metadata !121, metadata !DIExpression()), !dbg !123 + call void @llvm.dbg.declare(metadata ptr %vla, metadata !124, metadata !DIExpression()), !dbg !128 + %6 = load ptr, ptr %data.addr, align 8, !dbg !129 + %call10 = call ptr @strcpy(ptr noundef %vla, ptr noundef %6) #9, !dbg !130 + %call11 = call i32 (ptr, ...) @printf(ptr noundef @.str.3, ptr noundef %vla), !dbg !131 + call void @llvm.dbg.declare(metadata ptr %token, metadata !132, metadata !DIExpression()), !dbg !133 + %call12 = call ptr @strtok(ptr noundef %vla, ptr noundef @.str.4) #9, !dbg !134 + store ptr %call12, ptr %token, align 8, !dbg !133 + br label %while.cond, !dbg !135 + +while.cond: ; preds = %if.end31, %if.end + %7 = load ptr, ptr %token, align 8, !dbg !136 + %cmp = icmp ne ptr %7, null, !dbg !137 + br i1 %cmp, label %while.body, label %while.end, !dbg !135 + +while.body: ; preds = %while.cond + %8 = load ptr, ptr %next_keyword, align 8, !dbg !138 + %9 = load ptr, ptr %token, align 8, !dbg !140 + %call13 = call ptr @strcpy(ptr noundef %8, ptr noundef %9) #9, !dbg !141 + store ptr null, ptr %value, align 8, !dbg !142 + %10 = load ptr, ptr %next_keyword, align 8, !dbg !143 + %call14 = call ptr @strchr(ptr noundef %10, i32 noundef 61) #7, !dbg !145 + store ptr %call14, ptr %equals, align 8, !dbg !146 + %cmp15 = icmp ne ptr %call14, null, !dbg !147 + br i1 %cmp15, label %if.then16, label %if.end17, !dbg !148 + +if.then16: ; preds = %while.body + %11 = load ptr, ptr %equals, align 8, !dbg !149 + store i8 0, ptr %11, align 1, !dbg !151 + %12 = load ptr, ptr %equals, align 8, !dbg !152 + %add.ptr = getelementptr inbounds i8, ptr %12, i64 1, !dbg !153 + store ptr %add.ptr, ptr %value, align 8, !dbg !154 + br label %if.end17, !dbg !155 + +if.end17: ; preds = %if.then16, %while.body + %13 = load ptr, ptr %value, align 8, !dbg !156 + %tobool18 = icmp ne ptr %13, null, !dbg !156 + br i1 %tobool18, label %land.lhs.true, label %if.end31, !dbg !158 + +land.lhs.true: ; preds = %if.end17 + %14 = load ptr, ptr %next_keyword, align 8, !dbg !159 + %call19 = call i32 @parse_opt_token(ptr noundef %14), !dbg !160 + %cmp20 = icmp eq i32 %call19, 6, !dbg !161 + br i1 %cmp20, label %if.then21, label %if.end31, !dbg !162 + +if.then21: ; preds = %land.lhs.true + %15 = load ptr, ptr %value, align 8, !dbg !163 + %call22 = call i64 @strnlen(ptr noundef %15, i64 noundef 46) #7, !dbg !166 + %cmp23 = icmp ule i64 %call22, 46, !dbg !167 + br i1 %cmp23, label %if.then24, label %if.end30, !dbg !168 + +if.then24: ; preds = %if.then21 + %16 = load ptr, ptr %parsed_info.addr, align 8, !dbg !169 + %addrlist = getelementptr inbounds %struct.parsed_mount_info, ptr %16, i32 0, i32 0, !dbg !171 + %arraydecay = getelementptr inbounds [45 x i8], ptr %addrlist, i64 0, i64 0, !dbg !169 + %17 = load ptr, ptr %value, align 8, !dbg !172 + %call25 = call ptr @strcpy(ptr noundef %arraydecay, ptr noundef %17) #9, !dbg !173 + %18 = load ptr, ptr %parsed_info.addr, align 8, !dbg !174 + %verboseflag = getelementptr inbounds %struct.parsed_mount_info, ptr %18, i32 0, i32 1, !dbg !176 + %bf.load = load i8, ptr %verboseflag, align 1, !dbg !176 + %bf.clear = and i8 %bf.load, 1, !dbg !176 + %bf.cast = zext i8 %bf.clear to i32, !dbg !176 + %tobool26 = icmp ne i32 %bf.cast, 0, !dbg !174 + br i1 %tobool26, label %if.then27, label %if.end29, !dbg !177 + +if.then27: ; preds = %if.then24 + %19 = load ptr, ptr @stderr, align 8, !dbg !178 + %20 = load ptr, ptr %value, align 8, !dbg !179 + %call28 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19, ptr noundef @.str.5, ptr noundef %20), !dbg !180 + br label %if.end29, !dbg !180 + +if.end29: ; preds = %if.then27, %if.then24 + br label %if.end30, !dbg !181 + +if.end30: ; preds = %if.end29, %if.then21 + br label %if.end31, !dbg !182 + +if.end31: ; preds = %if.end30, %land.lhs.true, %if.end17 + %call32 = call ptr @strtok(ptr noundef null, ptr noundef @.str.4) #9, !dbg !183 + store ptr %call32, ptr %token, align 8, !dbg !184 + br label %while.cond, !dbg !135, !llvm.loop !185 + +while.end: ; preds = %while.cond + store i32 0, ptr %retval, align 4, !dbg !188 + %21 = load ptr, ptr %saved_stack, align 8, !dbg !189 + call void @llvm.stackrestore(ptr %21), !dbg !189 + br label %return + +return: ; preds = %while.end, %if.then + %22 = load i32, ptr %retval, align 4, !dbg !189 + ret i32 %22, !dbg !189 +} + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #4 + +; Function Attrs: nounwind willreturn memory(read) +declare i64 @strlen(ptr noundef) #3 + +; Function Attrs: nocallback nofree nosync nounwind willreturn +declare ptr @llvm.stacksave() #5 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #6 + +; Function Attrs: nounwind +declare ptr @strtok(ptr noundef, ptr noundef) #6 + +; Function Attrs: nounwind willreturn memory(read) +declare ptr @strchr(ptr noundef, i32 noundef) #3 + +; Function Attrs: nounwind willreturn memory(read) +declare i64 @strnlen(ptr noundef, i64 noundef) #3 + +declare i32 @fprintf(ptr noundef, ptr noundef, ...) #2 + +; Function Attrs: nocallback nofree nosync nounwind willreturn +declare void @llvm.stackrestore(ptr) #5 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !190 { +entry: + %parsed_info = alloca %struct.parsed_mount_info, align 4 + call void @llvm.dbg.declare(metadata ptr %parsed_info, metadata !193, metadata !DIExpression()), !dbg !194 + %call = call i32 @parse_options(ptr noundef @.str.6, ptr noundef %parsed_info), !dbg !195 + ret i32 0, !dbg !196 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nocallback nofree nosync nounwind willreturn } +attributes #6 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nounwind willreturn memory(read) } +attributes #8 = { nounwind allocsize(0) } +attributes #9 = { nounwind } + +!llvm.dbg.cu = !{!37} +!llvm.module.flags = !{!42, !43, !44, !45, !46, !47, !48} +!llvm.ident = !{!49} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 23, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_assert_tests/CVE-2022-27239-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "87345d07ce6c01618dd80423f5b6b0b5") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 224, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 28) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 31, type: !9, isLocal: true, isDefinition: true) +!9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !10) +!10 = !{!11} +!11 = !DISubrange(count: 3) +!12 = !DIGlobalVariableExpression(var: !13, expr: !DIExpression()) +!13 = distinct !DIGlobalVariable(scope: null, file: !2, line: 31, type: !14, isLocal: true, isDefinition: true) +!14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 40, elements: !15) +!15 = !{!16} +!16 = !DISubrange(count: 5) +!17 = !DIGlobalVariableExpression(var: !18, expr: !DIExpression()) +!18 = distinct !DIGlobalVariable(scope: null, file: !2, line: 48, type: !19, isLocal: true, isDefinition: true) +!19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 200, elements: !20) +!20 = !{!21} +!21 = !DISubrange(count: 25) +!22 = !DIGlobalVariableExpression(var: !23, expr: !DIExpression()) +!23 = distinct !DIGlobalVariable(scope: null, file: !2, line: 49, type: !24, isLocal: true, isDefinition: true) +!24 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 16, elements: !25) +!25 = !{!26} +!26 = !DISubrange(count: 2) +!27 = !DIGlobalVariableExpression(var: !28, expr: !DIExpression()) +!28 = distinct !DIGlobalVariable(scope: null, file: !2, line: 66, type: !29, isLocal: true, isDefinition: true) +!29 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 272, elements: !30) +!30 = !{!31} +!31 = !DISubrange(count: 34) +!32 = !DIGlobalVariableExpression(var: !33, expr: !DIExpression()) +!33 = distinct !DIGlobalVariable(scope: null, file: !2, line: 78, type: !34, isLocal: true, isDefinition: true) +!34 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 592, elements: !35) +!35 = !{!36} +!36 = !DISubrange(count: 74) +!37 = distinct !DICompileUnit(language: DW_LANG_C11, file: !38, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !39, globals: !41, splitDebugInlining: false, nameTableKind: None) +!38 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-27239-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "87345d07ce6c01618dd80423f5b6b0b5") +!39 = !{!40} +!40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!41 = !{!0, !7, !12, !17, !22, !27, !32} +!42 = !{i32 7, !"Dwarf Version", i32 5} +!43 = !{i32 2, !"Debug Info Version", i32 3} +!44 = !{i32 1, !"wchar_size", i32 4} +!45 = !{i32 8, !"PIC Level", i32 2} +!46 = !{i32 7, !"PIE Level", i32 2} +!47 = !{i32 7, !"uwtable", i32 2} +!48 = !{i32 7, !"frame-pointer", i32 2} +!49 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!50 = distinct !DISubprogram(name: "parse_opt_token", scope: !2, file: !2, line: 22, type: !51, scopeLine: 22, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !56) +!51 = !DISubroutineType(types: !52) +!52 = !{!53, !54} +!53 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!54 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !55, size: 64) +!55 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !4) +!56 = !{} +!57 = !DILocalVariable(name: "token", arg: 1, scope: !50, file: !2, line: 22, type: !54) +!58 = !DILocation(line: 22, column: 33, scope: !50) +!59 = !DILocation(line: 23, column: 44, scope: !50) +!60 = !DILocation(line: 23, column: 5, scope: !50) +!61 = !DILocation(line: 24, column: 6, scope: !62) +!62 = distinct !DILexicalBlock(scope: !50, file: !2, line: 24, column: 6) +!63 = !DILocation(line: 24, column: 12, scope: !62) +!64 = !DILocation(line: 24, column: 6, scope: !50) +!65 = !DILocation(line: 25, column: 3, scope: !62) +!66 = !DILocation(line: 31, column: 13, scope: !67) +!67 = distinct !DILexicalBlock(scope: !50, file: !2, line: 31, column: 6) +!68 = !DILocation(line: 31, column: 6, scope: !67) +!69 = !DILocation(line: 31, column: 26, scope: !67) +!70 = !DILocation(line: 31, column: 31, scope: !67) +!71 = !DILocation(line: 31, column: 41, scope: !67) +!72 = !DILocation(line: 31, column: 34, scope: !67) +!73 = !DILocation(line: 31, column: 56, scope: !67) +!74 = !DILocation(line: 31, column: 6, scope: !50) +!75 = !DILocation(line: 32, column: 3, scope: !67) +!76 = !DILocation(line: 34, column: 2, scope: !50) +!77 = !DILocation(line: 35, column: 1, scope: !50) +!78 = distinct !DISubprogram(name: "parse_options", scope: !2, file: !2, line: 38, type: !79, scopeLine: 38, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !56) +!79 = !DISubroutineType(types: !80) +!80 = !{!53, !54, !81} +!81 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !82, size: 64) +!82 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "parsed_mount_info", file: !2, line: 17, size: 384, elements: !83) +!83 = !{!84, !88} +!84 = !DIDerivedType(tag: DW_TAG_member, name: "addrlist", scope: !82, file: !2, line: 18, baseType: !85, size: 360) +!85 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 360, elements: !86) +!86 = !{!87} +!87 = !DISubrange(count: 45) +!88 = !DIDerivedType(tag: DW_TAG_member, name: "verboseflag", scope: !82, file: !2, line: 19, baseType: !89, size: 1, offset: 360, flags: DIFlagBitField, extraData: i64 360) +!89 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!90 = !DILocalVariable(name: "data", arg: 1, scope: !78, file: !2, line: 38, type: !54) +!91 = !DILocation(line: 38, column: 31, scope: !78) +!92 = !DILocalVariable(name: "parsed_info", arg: 2, scope: !78, file: !2, line: 38, type: !81) +!93 = !DILocation(line: 38, column: 63, scope: !78) +!94 = !DILocalVariable(name: "value", scope: !78, file: !2, line: 39, type: !95) +!95 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!96 = !DILocation(line: 39, column: 8, scope: !78) +!97 = !DILocation(line: 39, column: 30, scope: !78) +!98 = !DILocation(line: 39, column: 23, scope: !78) +!99 = !DILocation(line: 39, column: 36, scope: !78) +!100 = !DILocation(line: 39, column: 16, scope: !78) +!101 = !DILocalVariable(name: "equals", scope: !78, file: !2, line: 40, type: !95) +!102 = !DILocation(line: 40, column: 8, scope: !78) +!103 = !DILocation(line: 40, column: 31, scope: !78) +!104 = !DILocation(line: 40, column: 24, scope: !78) +!105 = !DILocation(line: 40, column: 37, scope: !78) +!106 = !DILocation(line: 40, column: 17, scope: !78) +!107 = !DILocalVariable(name: "next_keyword", scope: !78, file: !2, line: 41, type: !95) +!108 = !DILocation(line: 41, column: 8, scope: !78) +!109 = !DILocation(line: 41, column: 37, scope: !78) +!110 = !DILocation(line: 41, column: 30, scope: !78) +!111 = !DILocation(line: 41, column: 43, scope: !78) +!112 = !DILocation(line: 41, column: 23, scope: !78) +!113 = !DILocation(line: 43, column: 7, scope: !114) +!114 = distinct !DILexicalBlock(scope: !78, file: !2, line: 43, column: 6) +!115 = !DILocation(line: 43, column: 6, scope: !78) +!116 = !DILocation(line: 44, column: 3, scope: !114) +!117 = !DILocation(line: 46, column: 24, scope: !78) +!118 = !DILocation(line: 46, column: 17, scope: !78) +!119 = !DILocation(line: 46, column: 30, scope: !78) +!120 = !DILocation(line: 46, column: 5, scope: !78) +!121 = !DILocalVariable(name: "__vla_expr0", scope: !78, type: !122, flags: DIFlagArtificial) +!122 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned) +!123 = !DILocation(line: 0, scope: !78) +!124 = !DILocalVariable(name: "buffer", scope: !78, file: !2, line: 46, type: !125) +!125 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, elements: !126) +!126 = !{!127} +!127 = !DISubrange(count: !121) +!128 = !DILocation(line: 46, column: 10, scope: !78) +!129 = !DILocation(line: 47, column: 20, scope: !78) +!130 = !DILocation(line: 47, column: 5, scope: !78) +!131 = !DILocation(line: 48, column: 5, scope: !78) +!132 = !DILocalVariable(name: "token", scope: !78, file: !2, line: 49, type: !95) +!133 = !DILocation(line: 49, column: 11, scope: !78) +!134 = !DILocation(line: 49, column: 19, scope: !78) +!135 = !DILocation(line: 50, column: 5, scope: !78) +!136 = !DILocation(line: 50, column: 11, scope: !78) +!137 = !DILocation(line: 50, column: 17, scope: !78) +!138 = !DILocation(line: 51, column: 16, scope: !139) +!139 = distinct !DILexicalBlock(scope: !78, file: !2, line: 50, column: 26) +!140 = !DILocation(line: 51, column: 30, scope: !139) +!141 = !DILocation(line: 51, column: 9, scope: !139) +!142 = !DILocation(line: 54, column: 15, scope: !139) +!143 = !DILocation(line: 55, column: 24, scope: !144) +!144 = distinct !DILexicalBlock(scope: !139, file: !2, line: 55, column: 7) +!145 = !DILocation(line: 55, column: 17, scope: !144) +!146 = !DILocation(line: 55, column: 15, scope: !144) +!147 = !DILocation(line: 55, column: 44, scope: !144) +!148 = !DILocation(line: 55, column: 7, scope: !139) +!149 = !DILocation(line: 56, column: 5, scope: !150) +!150 = distinct !DILexicalBlock(scope: !144, file: !2, line: 55, column: 53) +!151 = !DILocation(line: 56, column: 12, scope: !150) +!152 = !DILocation(line: 57, column: 12, scope: !150) +!153 = !DILocation(line: 57, column: 19, scope: !150) +!154 = !DILocation(line: 57, column: 10, scope: !150) +!155 = !DILocation(line: 58, column: 3, scope: !150) +!156 = !DILocation(line: 60, column: 12, scope: !157) +!157 = distinct !DILexicalBlock(scope: !139, file: !2, line: 60, column: 12) +!158 = !DILocation(line: 60, column: 18, scope: !157) +!159 = !DILocation(line: 60, column: 37, scope: !157) +!160 = !DILocation(line: 60, column: 21, scope: !157) +!161 = !DILocation(line: 60, column: 51, scope: !157) +!162 = !DILocation(line: 60, column: 12, scope: !139) +!163 = !DILocation(line: 61, column: 16, scope: !164) +!164 = distinct !DILexicalBlock(scope: !165, file: !2, line: 61, column: 8) +!165 = distinct !DILexicalBlock(scope: !157, file: !2, line: 60, column: 62) +!166 = !DILocation(line: 61, column: 8, scope: !164) +!167 = !DILocation(line: 61, column: 40, scope: !164) +!168 = !DILocation(line: 61, column: 8, scope: !165) +!169 = !DILocation(line: 64, column: 12, scope: !170) +!170 = distinct !DILexicalBlock(scope: !164, file: !2, line: 61, column: 60) +!171 = !DILocation(line: 64, column: 25, scope: !170) +!172 = !DILocation(line: 64, column: 35, scope: !170) +!173 = !DILocation(line: 64, column: 5, scope: !170) +!174 = !DILocation(line: 65, column: 9, scope: !175) +!175 = distinct !DILexicalBlock(scope: !170, file: !2, line: 65, column: 9) +!176 = !DILocation(line: 65, column: 22, scope: !175) +!177 = !DILocation(line: 65, column: 9, scope: !170) +!178 = !DILocation(line: 66, column: 14, scope: !175) +!179 = !DILocation(line: 66, column: 60, scope: !175) +!180 = !DILocation(line: 66, column: 6, scope: !175) +!181 = !DILocation(line: 67, column: 4, scope: !170) +!182 = !DILocation(line: 68, column: 3, scope: !165) +!183 = !DILocation(line: 70, column: 17, scope: !139) +!184 = !DILocation(line: 70, column: 15, scope: !139) +!185 = distinct !{!185, !135, !186, !187} +!186 = !DILocation(line: 71, column: 5, scope: !78) +!187 = !{!"llvm.loop.mustprogress"} +!188 = !DILocation(line: 73, column: 2, scope: !78) +!189 = !DILocation(line: 74, column: 1, scope: !78) +!190 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 76, type: !191, scopeLine: 76, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !56) +!191 = !DISubroutineType(types: !192) +!192 = !{!53} +!193 = !DILocalVariable(name: "parsed_info", scope: !190, file: !2, line: 77, type: !82) +!194 = !DILocation(line: 77, column: 30, scope: !190) +!195 = !DILocation(line: 78, column: 5, scope: !190) +!196 = !DILocation(line: 79, column: 1, scope: !190) diff --git a/test_cases_bc/ae_assert_tests/CVE-2022-29023-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2022-29023-0.c.bc index 601adf05..06e65650 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2022-29023-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2022-29023-0.c.bc @@ -205,7 +205,7 @@ attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 7) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !15, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !15, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-29023-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cceef4c72d4f080f8e7aa9990265496a") !9 = !{!10, !13} !10 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !11, line: 46, baseType: !12) @@ -221,7 +221,7 @@ attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !20 = !{i32 7, !"PIE Level", i32 2} !21 = !{i32 7, !"uwtable", i32 2} !22 = !{i32 7, !"frame-pointer", i32 2} -!23 = !{!"clang version 16.0.0"} +!23 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !24 = distinct !DISubprogram(name: "get_razer_report", scope: !2, file: !2, line: 27, type: !25, scopeLine: 27, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !33) !25 = !DISubroutineType(types: !26) !26 = !{!27} @@ -265,10 +265,10 @@ attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !64 = distinct !DISubprogram(name: "razer_attr_write_set_key_row", scope: !2, file: !2, line: 41, type: !65, scopeLine: 41, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !33) !65 = !DISubroutineType(types: !66) !66 = !{!67, !72, !10} -!67 = !DIDerivedType(tag: DW_TAG_typedef, name: "ssize_t", file: !68, line: 77, baseType: !69) -!68 = !DIFile(filename: "/usr/include/stdio.h", directory: "", checksumkind: CSK_MD5, checksum: "5b917eded35ce2507d1e294bf8cb74d7") -!69 = !DIDerivedType(tag: DW_TAG_typedef, name: "__ssize_t", file: !70, line: 193, baseType: !71) -!70 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!67 = !DIDerivedType(tag: DW_TAG_typedef, name: "ssize_t", file: !68, line: 78, baseType: !69) +!68 = !DIFile(filename: "/usr/include/stdio.h", directory: "", checksumkind: CSK_MD5, checksum: "1e435c46987a169d9f9186f63a512303") +!69 = !DIDerivedType(tag: DW_TAG_typedef, name: "__ssize_t", file: !70, line: 194, baseType: !71) +!70 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !71 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !72 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !73, size: 64) !73 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !4) diff --git a/test_cases_bc/ae_assert_tests/CVE-2022-34835-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2022-34835-0.c.bc index efe81132..eff69861 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2022-34835-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2022-34835-0.c.bc @@ -183,7 +183,7 @@ attributes #4 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 4) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-34835-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5027a47770fc130a84532009834ceede") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -193,7 +193,7 @@ attributes #4 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "do_i2c_md", scope: !2, file: !2, line: 15, type: !19, scopeLine: 15, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !25) !19 = !DISubroutineType(types: !20) !20 = !{!21, !21, !22} @@ -208,14 +208,14 @@ attributes #4 = { nounwind } !29 = !DILocation(line: 15, column: 37, scope: !18) !30 = !DILocalVariable(name: "length", scope: !18, file: !2, line: 16, type: !31) !31 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !32, line: 26, baseType: !33) -!32 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "d3ea318a915682aaf6645ec16ac9f991") +!32 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "256fcabbefa27ca8cf5e6d37525e6e16") !33 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !34, line: 42, baseType: !35) -!34 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!34 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !35 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) !36 = !DILocation(line: 16, column: 11, scope: !18) !37 = !DILocalVariable(name: "nbytes", scope: !18, file: !2, line: 17, type: !38) !38 = !DIDerivedType(tag: DW_TAG_typedef, name: "int32_t", file: !39, line: 26, baseType: !40) -!39 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!39 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !40 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int32_t", file: !34, line: 41, baseType: !21) !41 = !DILocation(line: 17, column: 10, scope: !18) !42 = !DILocalVariable(name: "linebytes", scope: !18, file: !2, line: 18, type: !38) diff --git a/test_cases_bc/ae_assert_tests/CVE-2022-34913-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2022-34913-0.c.bc index dcb38622..26b5dd29 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2022-34913-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2022-34913-0.c.bc @@ -108,7 +108,7 @@ entry: if.then: ; preds = %entry %1 = load ptr, ptr %filename.addr, align 8, !dbg !163 - %call = call ptr @fopen(ptr noundef %1, ptr noundef @.str), !dbg !165 + %call = call noalias ptr @fopen(ptr noundef %1, ptr noundef @.str), !dbg !165 store ptr %call, ptr %fp, align 8, !dbg !166 %2 = load ptr, ptr %fp, align 8, !dbg !167 %cmp1 = icmp eq ptr %2, null, !dbg !169 @@ -190,7 +190,7 @@ if.end31: ; preds = %if.end29, %entry ret ptr %15, !dbg !222 } -declare ptr @fopen(ptr noundef, ptr noundef) #4 +declare noalias ptr @fopen(ptr noundef, ptr noundef) #4 declare i32 @printf(ptr noundef, ...) #4 @@ -357,11 +357,11 @@ attributes #10 = { nounwind allocsize(0) } !18 = distinct !DIGlobalVariable(scope: null, file: !2, line: 51, type: !14, isLocal: true, isDefinition: true) !19 = !DIGlobalVariableExpression(var: !20, expr: !DIExpression()) !20 = distinct !DIGlobalVariable(scope: null, file: !2, line: 60, type: !14, isLocal: true, isDefinition: true) -!21 = distinct !DICompileUnit(language: DW_LANG_C11, file: !22, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !23, retainedTypes: !40, globals: !45, splitDebugInlining: false, nameTableKind: None) +!21 = distinct !DICompileUnit(language: DW_LANG_C11, file: !22, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !23, retainedTypes: !40, globals: !45, splitDebugInlining: false, nameTableKind: None) !22 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-34913-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "bd4c591b50f6816bac29dcbbaa955cce") !23 = !{!24} !24 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !25, line: 46, baseType: !26, size: 32, elements: !27) -!25 = !DIFile(filename: "/usr/include/ctype.h", directory: "", checksumkind: CSK_MD5, checksum: "36575f934ef4fe7e9d50a3cb17bd5c66") +!25 = !DIFile(filename: "/usr/include/ctype.h", directory: "", checksumkind: CSK_MD5, checksum: "43fd45dcf96e8fb7d8f14700096497c7") !26 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) !27 = !{!28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38, !39} !28 = !DIEnumerator(name: "_ISupper", value: 256) @@ -389,7 +389,7 @@ attributes #10 = { nounwind allocsize(0) } !50 = !{i32 7, !"PIE Level", i32 2} !51 = !{i32 7, !"uwtable", i32 2} !52 = !{i32 7, !"frame-pointer", i32 2} -!53 = !{!"clang version 16.0.0"} +!53 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !54 = distinct !DISubprogram(name: "md2roff", scope: !2, file: !2, line: 18, type: !55, scopeLine: 18, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !21, retainedNodes: !59) !55 = !DISubroutineType(types: !56) !56 = !{null, !57, !57} @@ -441,7 +441,7 @@ attributes #10 = { nounwind allocsize(0) } !102 = !DIDerivedType(tag: DW_TAG_typedef, name: "FILE", file: !103, line: 7, baseType: !104) !103 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types/FILE.h", directory: "", checksumkind: CSK_MD5, checksum: "571f9fb6223c42439075fdde11a0de5d") !104 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_IO_FILE", file: !105, line: 49, size: 1728, elements: !106) -!105 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h", directory: "", checksumkind: CSK_MD5, checksum: "f3c970561f3408448ce03a9676ead8f4") +!105 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h", directory: "", checksumkind: CSK_MD5, checksum: "7a6d4a00a37ee6b9a40cd04bd01f5d00") !106 = !{!107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !117, !118, !119, !122, !124, !125, !126, !130, !131, !133, !137, !140, !142, !145, !148, !149, !150, !154, !155} !107 = !DIDerivedType(tag: DW_TAG_member, name: "_flags", scope: !104, file: !105, line: 51, baseType: !41, size: 32) !108 = !DIDerivedType(tag: DW_TAG_member, name: "_IO_read_ptr", scope: !104, file: !105, line: 54, baseType: !44, size: 64, offset: 64) @@ -464,7 +464,7 @@ attributes #10 = { nounwind allocsize(0) } !125 = !DIDerivedType(tag: DW_TAG_member, name: "_flags2", scope: !104, file: !105, line: 73, baseType: !41, size: 32, offset: 928) !126 = !DIDerivedType(tag: DW_TAG_member, name: "_old_offset", scope: !104, file: !105, line: 74, baseType: !127, size: 64, offset: 960) !127 = !DIDerivedType(tag: DW_TAG_typedef, name: "__off_t", file: !128, line: 152, baseType: !129) -!128 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!128 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !129 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !130 = !DIDerivedType(tag: DW_TAG_member, name: "_cur_column", scope: !104, file: !105, line: 77, baseType: !42, size: 16, offset: 1024) !131 = !DIDerivedType(tag: DW_TAG_member, name: "_vtable_offset", scope: !104, file: !105, line: 78, baseType: !132, size: 8, offset: 1040) diff --git a/test_cases_bc/ae_assert_tests/CVE-2022-34918-0.c.bc b/test_cases_bc/ae_assert_tests/CVE-2022-34918-0.c.bc index 6b74ace0..28a78b00 100644 --- a/test_cases_bc/ae_assert_tests/CVE-2022-34918-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CVE-2022-34918-0.c.bc @@ -248,7 +248,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!12, !13, !14, !15, !16, !17, !18} !llvm.ident = !{!19} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !9, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !9, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CVE-2022-34918-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c8a2d66ad333035256a4fd01bc4f5bf0") !2 = !{!3} !3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "TYPE", file: !4, line: 20, baseType: !5, size: 32, elements: !6) @@ -267,7 +267,7 @@ attributes #5 = { nounwind } !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "nft_set_elem_init", scope: !4, file: !4, line: 32, type: !21, scopeLine: 34, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !33) !21 = !DISubroutineType(types: !22) !22 = !{!23, !24, !31} diff --git a/test_cases_bc/ae_assert_tests/CWE127_har_alloc-0.c.bc b/test_cases_bc/ae_assert_tests/CWE127_har_alloc-0.c.bc index 9d3b3d2e..8b79e201 100644 --- a/test_cases_bc/ae_assert_tests/CWE127_har_alloc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/CWE127_har_alloc-0.c.bc @@ -59,7 +59,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/CWE127_har_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "815713cf07dcea5d1098fa33fd12b875") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -71,7 +71,7 @@ attributes #5 = { nounwind } !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 7, type: !15, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) !14 = !DIFile(filename: "src/ae_assert_tests/CWE127_har_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "815713cf07dcea5d1098fa33fd12b875") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_10-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_10-0.c.bc index d06432e3..8ac439ee 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_10-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_10-0.c.bc @@ -75,7 +75,7 @@ attributes #4 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 8) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_10-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "248d118451c54312cc11c5c23e2987c7") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -85,7 +85,7 @@ attributes #4 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 8, type: !19, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) !19 = !DISubroutineType(types: !20) !20 = !{!21} diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_11-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_11-0.c.bc index 62ae4311..eedb94e3 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_11-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_11-0.c.bc @@ -47,7 +47,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_11-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7004ccd5efa2dbc064acd48763f1ede2") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -56,7 +56,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_11-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7004ccd5efa2dbc064acd48763f1ede2") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_12-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_12-0.c.bc index 2c382873..9949deaf 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_12-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_12-0.c.bc @@ -59,7 +59,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_12-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "daa7f61be976a7374add8a1ba44adde2") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -68,7 +68,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_12-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "daa7f61be976a7374add8a1ba44adde2") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_13-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_13-0.c.bc index 2cad9059..601cae94 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_13-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_13-0.c.bc @@ -59,7 +59,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_13-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c1332baf3080510556a80cd16d49b5e4") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -68,7 +68,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_13-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c1332baf3080510556a80cd16d49b5e4") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_14-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_14-0.c.bc index c2fc1f22..062d84c3 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_14-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_14-0.c.bc @@ -54,7 +54,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_14-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c202c845226e38074ee5bddeffdd9365") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -63,7 +63,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_14-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c202c845226e38074ee5bddeffdd9365") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_15-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_15-0.c.bc index d04d23ec..ca9dcafa 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_15-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_15-0.c.bc @@ -50,7 +50,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_15-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4c398f40db7ce5c4550842fc7798a36a") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -59,7 +59,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_15-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4c398f40db7ce5c4550842fc7798a36a") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_16-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_16-0.c.bc index bdb65541..d7757ced 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_16-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_16-0.c.bc @@ -57,7 +57,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_16-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "694547a3cbbe4ce2f5e2f461b4ede569") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -66,7 +66,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 7, type: !12, scopeLine: 7, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_16-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "694547a3cbbe4ce2f5e2f461b4ede569") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_19-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_19-0.c.bc index 9e3a0a67..39a20ff4 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_19-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_19-0.c.bc @@ -85,7 +85,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_19-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "eef7b67c0b1589636664d75c4dc1f3fc") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -94,7 +94,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_19-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "eef7b67c0b1589636664d75c4dc1f3fc") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_2-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_2-0.c.bc index 40fe40ab..47bffc87 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_2-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_2-0.c.bc @@ -79,7 +79,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) !9 = !DIGlobalVariableExpression(var: !10, expr: !DIExpression()) !10 = distinct !DIGlobalVariable(scope: null, file: !2, line: 17, type: !3, isLocal: true, isDefinition: true) -!11 = distinct !DICompileUnit(language: DW_LANG_C11, file: !12, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !13, splitDebugInlining: false, nameTableKind: None) +!11 = distinct !DICompileUnit(language: DW_LANG_C11, file: !12, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !13, splitDebugInlining: false, nameTableKind: None) !12 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_2-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fb4ded21f5bf3cb3e533415eaf559a1b") !13 = !{!0, !7, !9} !14 = !{i32 7, !"Dwarf Version", i32 5} @@ -89,7 +89,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !18 = !{i32 7, !"PIE Level", i32 2} !19 = !{i32 7, !"uwtable", i32 2} !20 = !{i32 7, !"frame-pointer", i32 2} -!21 = !{!"clang version 16.0.0"} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !22 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 5, type: !23, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !26) !23 = !DISubroutineType(types: !24) !24 = !{!25} diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_20-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_20-0.c.bc index 29693c6a..b1d8dd53 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_20-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_20-0.c.bc @@ -92,7 +92,7 @@ attributes #4 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 2) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_20-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2b67bdcd5e8206800466010a1aafe69e") !9 = !{!4, !10} !10 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -104,7 +104,7 @@ attributes #4 = { nounwind } !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 8, type: !21, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) !21 = !DISubroutineType(types: !22) !22 = !{!10} diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_36-1-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_36-1-0.c.bc index b126348b..244b8cda 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_36-1-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_36-1-0.c.bc @@ -81,7 +81,7 @@ attributes #7 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_36-1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3f7567881349e7f5ed0cc5b27e002f64") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -90,7 +90,7 @@ attributes #7 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_36-1-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3f7567881349e7f5ed0cc5b27e002f64") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_49-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_49-0.c.bc index cfa87355..60c13215 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_49-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_49-0.c.bc @@ -58,7 +58,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_49-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "93ac1bedd0f516a5ec04032f23489235") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -67,7 +67,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_49-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "93ac1bedd0f516a5ec04032f23489235") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_58-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_58-0.c.bc index 6c5f65f1..26f69f3f 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_58-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_58-0.c.bc @@ -112,7 +112,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 88, elements: !15) !15 = !{!16} !16 = !DISubrange(count: 11) -!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) +!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) !18 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_58-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c29199770e9c363da6a70cc4e3d90e83") !19 = !{!0, !7, !12} !20 = !{i32 7, !"Dwarf Version", i32 5} @@ -122,7 +122,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !24 = !{i32 7, !"PIE Level", i32 2} !25 = !{i32 7, !"uwtable", i32 2} !26 = !{i32 7, !"frame-pointer", i32 2} -!27 = !{!"clang version 16.0.0"} +!27 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !28 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 8, type: !29, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !32) !29 = !DISubroutineType(types: !30) !30 = !{!31} diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_6-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_6-0.c.bc index 70247f26..b18d4faf 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_6-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_6-0.c.bc @@ -45,7 +45,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_6-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d282f6036e18c06d8db4a9683d5f4fca") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -54,7 +54,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_6-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d282f6036e18c06d8db4a9683d5f4fca") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_64-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_64-0.c.bc index 53fb333f..167142f6 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_64-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_64-0.c.bc @@ -125,7 +125,7 @@ attributes #3 = { noreturn nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_64-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e19c5df3ee58bf593f3fa39eb8472508") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -134,7 +134,7 @@ attributes #3 = { noreturn nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "increment", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_64-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e19c5df3ee58bf593f3fa39eb8472508") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_8-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_8-0.c.bc index 5d037604..d87912a3 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_8-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_8-0.c.bc @@ -64,7 +64,7 @@ attributes #4 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 2) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_8-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4aab0612f11ebfc058dcdbc8142acd46") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -74,7 +74,7 @@ attributes #4 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) !19 = !DISubroutineType(types: !20) !20 = !{!21} diff --git a/test_cases_bc/ae_assert_tests/INTERVAL_test_9-0.c.bc b/test_cases_bc/ae_assert_tests/INTERVAL_test_9-0.c.bc index 1978fb76..a68a69c6 100644 --- a/test_cases_bc/ae_assert_tests/INTERVAL_test_9-0.c.bc +++ b/test_cases_bc/ae_assert_tests/INTERVAL_test_9-0.c.bc @@ -59,7 +59,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/INTERVAL_test_9-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "40d6f41e562874c4357762003ab26c07") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -68,7 +68,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/INTERVAL_test_9-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "40d6f41e562874c4357762003ab26c07") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/LOOP_for01-0.c.bc b/test_cases_bc/ae_assert_tests/LOOP_for01-0.c.bc index e02a2548..485e080f 100644 --- a/test_cases_bc/ae_assert_tests/LOOP_for01-0.c.bc +++ b/test_cases_bc/ae_assert_tests/LOOP_for01-0.c.bc @@ -64,7 +64,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/LOOP_for01-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ff7c4ec9eb88716a98e246b11f592670") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -73,7 +73,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/LOOP_for01-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ff7c4ec9eb88716a98e246b11f592670") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/LOOP_for_call-0.c.bc b/test_cases_bc/ae_assert_tests/LOOP_for_call-0.c.bc index c005c21c..bab1a49d 100644 --- a/test_cases_bc/ae_assert_tests/LOOP_for_call-0.c.bc +++ b/test_cases_bc/ae_assert_tests/LOOP_for_call-0.c.bc @@ -75,7 +75,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/LOOP_for_call-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fcdb3794ef8dc3bd9a7d1b1f9298760e") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -84,7 +84,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "add", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/LOOP_for_call-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fcdb3794ef8dc3bd9a7d1b1f9298760e") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/LOOP_for_inc-0.c.bc b/test_cases_bc/ae_assert_tests/LOOP_for_inc-0.c.bc index df2649f8..5a7e2690 100644 --- a/test_cases_bc/ae_assert_tests/LOOP_for_inc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/LOOP_for_inc-0.c.bc @@ -58,7 +58,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/LOOP_for_inc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ef1ddef35cfe03517025ccbac0e2302e") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -67,7 +67,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/LOOP_for_inc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ef1ddef35cfe03517025ccbac0e2302e") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/LOOP_while01-0.c.bc b/test_cases_bc/ae_assert_tests/LOOP_while01-0.c.bc index 81fe0acc..d1ec7f57 100644 --- a/test_cases_bc/ae_assert_tests/LOOP_while01-0.c.bc +++ b/test_cases_bc/ae_assert_tests/LOOP_while01-0.c.bc @@ -44,7 +44,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/LOOP_while01-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b50b757a2a09bc1a04eef8938cb0d669") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -53,7 +53,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/LOOP_while01-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b50b757a2a09bc1a04eef8938cb0d669") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_assert_tests/LOOP_while01-1.c.bc b/test_cases_bc/ae_assert_tests/LOOP_while01-1.c.bc new file mode 100644 index 00000000..fad25a97 --- /dev/null +++ b/test_cases_bc/ae_assert_tests/LOOP_while01-1.c.bc @@ -0,0 +1,77 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_assert_tests/LOOP_while01-1.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_assert_tests/LOOP_while01-1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 10, ptr %x, align 4, !dbg !18 + br label %while.cond, !dbg !19 + +while.cond: ; preds = %while.body, %entry + %0 = load i32, ptr %x, align 4, !dbg !20 + %cmp = icmp sgt i32 %0, 0, !dbg !21 + br i1 %cmp, label %while.body, label %while.end, !dbg !19 + +while.body: ; preds = %while.cond + %1 = load i32, ptr %x, align 4, !dbg !22 + %dec = add nsw i32 %1, -1, !dbg !22 + store i32 %dec, ptr %x, align 4, !dbg !22 + br label %while.cond, !dbg !19, !llvm.loop !24 + +while.end: ; preds = %while.cond + %2 = load i32, ptr %x, align 4, !dbg !27 + %cmp1 = icmp eq i32 %2, 0, !dbg !28 + call void @svf_assert(i1 noundef zeroext %cmp1), !dbg !29 + ret i32 0, !dbg !30 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_assert_tests/LOOP_while01-1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "6f61e4605f7287d74101cfb1eb3f37dd") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_assert_tests/LOOP_while01-1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "6f61e4605f7287d74101cfb1eb3f37dd") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "x", scope: !10, file: !11, line: 5, type: !14) +!17 = !DILocation(line: 5, column: 9, scope: !10) +!18 = !DILocation(line: 6, column: 6, scope: !10) +!19 = !DILocation(line: 7, column: 5, scope: !10) +!20 = !DILocation(line: 7, column: 11, scope: !10) +!21 = !DILocation(line: 7, column: 12, scope: !10) +!22 = !DILocation(line: 8, column: 10, scope: !23) +!23 = distinct !DILexicalBlock(scope: !10, file: !11, line: 7, column: 16) +!24 = distinct !{!24, !19, !25, !26} +!25 = !DILocation(line: 9, column: 5, scope: !10) +!26 = !{!"llvm.loop.mustprogress"} +!27 = !DILocation(line: 10, column: 16, scope: !10) +!28 = !DILocation(line: 10, column: 18, scope: !10) +!29 = !DILocation(line: 10, column: 5, scope: !10) +!30 = !DILocation(line: 11, column: 5, scope: !10) diff --git a/test_cases_bc/ae_assert_tests/LOOP_while02-0.c.bc b/test_cases_bc/ae_assert_tests/LOOP_while02-0.c.bc new file mode 100644 index 00000000..6566b2a7 --- /dev/null +++ b/test_cases_bc/ae_assert_tests/LOOP_while02-0.c.bc @@ -0,0 +1,77 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_assert_tests/LOOP_while02-0.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_assert_tests/LOOP_while02-0.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 1, ptr %x, align 4, !dbg !18 + br label %while.cond, !dbg !19 + +while.cond: ; preds = %while.body, %entry + %0 = load i32, ptr %x, align 4, !dbg !20 + %cmp = icmp slt i32 %0, 128, !dbg !21 + br i1 %cmp, label %while.body, label %while.end, !dbg !19 + +while.body: ; preds = %while.cond + %1 = load i32, ptr %x, align 4, !dbg !22 + %mul = mul nsw i32 %1, 2, !dbg !22 + store i32 %mul, ptr %x, align 4, !dbg !22 + br label %while.cond, !dbg !19, !llvm.loop !24 + +while.end: ; preds = %while.cond + %2 = load i32, ptr %x, align 4, !dbg !27 + %cmp1 = icmp eq i32 %2, 128, !dbg !28 + call void @svf_assert(i1 noundef zeroext %cmp1), !dbg !29 + ret i32 0, !dbg !30 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_assert_tests/LOOP_while02-0.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "cff5408e4696e838f4e0c53c0df68ae6") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_assert_tests/LOOP_while02-0.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "cff5408e4696e838f4e0c53c0df68ae6") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "x", scope: !10, file: !11, line: 5, type: !14) +!17 = !DILocation(line: 5, column: 9, scope: !10) +!18 = !DILocation(line: 6, column: 6, scope: !10) +!19 = !DILocation(line: 7, column: 5, scope: !10) +!20 = !DILocation(line: 7, column: 11, scope: !10) +!21 = !DILocation(line: 7, column: 12, scope: !10) +!22 = !DILocation(line: 8, column: 10, scope: !23) +!23 = distinct !DILexicalBlock(scope: !10, file: !11, line: 7, column: 18) +!24 = distinct !{!24, !19, !25, !26} +!25 = !DILocation(line: 9, column: 5, scope: !10) +!26 = !{!"llvm.loop.mustprogress"} +!27 = !DILocation(line: 10, column: 16, scope: !10) +!28 = !DILocation(line: 10, column: 18, scope: !10) +!29 = !DILocation(line: 10, column: 5, scope: !10) +!30 = !DILocation(line: 11, column: 5, scope: !10) diff --git a/test_cases_bc/ae_assert_tests/LOOP_while02-1.c.bc b/test_cases_bc/ae_assert_tests/LOOP_while02-1.c.bc new file mode 100644 index 00000000..674fc7a1 --- /dev/null +++ b/test_cases_bc/ae_assert_tests/LOOP_while02-1.c.bc @@ -0,0 +1,77 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_assert_tests/LOOP_while02-1.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_assert_tests/LOOP_while02-1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 128, ptr %x, align 4, !dbg !18 + br label %while.cond, !dbg !19 + +while.cond: ; preds = %while.body, %entry + %0 = load i32, ptr %x, align 4, !dbg !20 + %cmp = icmp sgt i32 %0, 4, !dbg !21 + br i1 %cmp, label %while.body, label %while.end, !dbg !19 + +while.body: ; preds = %while.cond + %1 = load i32, ptr %x, align 4, !dbg !22 + %div = sdiv i32 %1, 2, !dbg !22 + store i32 %div, ptr %x, align 4, !dbg !22 + br label %while.cond, !dbg !19, !llvm.loop !24 + +while.end: ; preds = %while.cond + %2 = load i32, ptr %x, align 4, !dbg !27 + %cmp1 = icmp eq i32 %2, 4, !dbg !28 + call void @svf_assert(i1 noundef zeroext %cmp1), !dbg !29 + ret i32 0, !dbg !30 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_assert_tests/LOOP_while02-1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c6d22f71898ec7ad41156f6ed5f3d33a") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_assert_tests/LOOP_while02-1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c6d22f71898ec7ad41156f6ed5f3d33a") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "x", scope: !10, file: !11, line: 5, type: !14) +!17 = !DILocation(line: 5, column: 9, scope: !10) +!18 = !DILocation(line: 6, column: 6, scope: !10) +!19 = !DILocation(line: 7, column: 5, scope: !10) +!20 = !DILocation(line: 7, column: 11, scope: !10) +!21 = !DILocation(line: 7, column: 12, scope: !10) +!22 = !DILocation(line: 8, column: 10, scope: !23) +!23 = distinct !DILexicalBlock(scope: !10, file: !11, line: 7, column: 16) +!24 = distinct !{!24, !19, !25, !26} +!25 = !DILocation(line: 9, column: 5, scope: !10) +!26 = !{!"llvm.loop.mustprogress"} +!27 = !DILocation(line: 10, column: 16, scope: !10) +!28 = !DILocation(line: 10, column: 18, scope: !10) +!29 = !DILocation(line: 10, column: 5, scope: !10) +!30 = !DILocation(line: 11, column: 5, scope: !10) diff --git a/test_cases_bc/ae_assert_tests/cwe121_char_alloc-0.c.bc b/test_cases_bc/ae_assert_tests/cwe121_char_alloc-0.c.bc index 5e0789c8..93144d84 100644 --- a/test_cases_bc/ae_assert_tests/cwe121_char_alloc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/cwe121_char_alloc-0.c.bc @@ -45,7 +45,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/cwe121_char_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cd229c218c71222c80297417ec53073b") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -57,7 +57,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 8, type: !15, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) !14 = !DIFile(filename: "src/ae_assert_tests/cwe121_char_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cd229c218c71222c80297417ec53073b") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/ae_assert_tests/cwe121_int64_alloc-0.c.bc b/test_cases_bc/ae_assert_tests/cwe121_int64_alloc-0.c.bc index e3e6cb1b..c86fa936 100644 --- a/test_cases_bc/ae_assert_tests/cwe121_int64_alloc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/cwe121_int64_alloc-0.c.bc @@ -44,7 +44,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/cwe121_int64_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1385aefee79cf43f62058450546d8aef") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -56,7 +56,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 7, type: !15, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !14 = !DIFile(filename: "src/ae_assert_tests/cwe121_int64_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1385aefee79cf43f62058450546d8aef") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/ae_assert_tests/cwe121_int_alloc-0.c.bc b/test_cases_bc/ae_assert_tests/cwe121_int_alloc-0.c.bc index 3be4fab1..86271b26 100644 --- a/test_cases_bc/ae_assert_tests/cwe121_int_alloc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/cwe121_int_alloc-0.c.bc @@ -44,7 +44,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/cwe121_int_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1385aefee79cf43f62058450546d8aef") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -56,7 +56,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 7, type: !15, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !14 = !DIFile(filename: "src/ae_assert_tests/cwe121_int_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1385aefee79cf43f62058450546d8aef") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/ae_assert_tests/cwe121_struct_alloc-0.c.bc b/test_cases_bc/ae_assert_tests/cwe121_struct_alloc-0.c.bc index af5b9d65..8610a7fc 100644 --- a/test_cases_bc/ae_assert_tests/cwe121_struct_alloc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/cwe121_struct_alloc-0.c.bc @@ -50,7 +50,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!11, !12, !13, !14, !15, !16, !17} !llvm.ident = !{!18} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/cwe121_struct_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d9df059d0a61489766172a4b65abe3fe") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -68,7 +68,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !15 = !{i32 7, !"PIE Level", i32 2} !16 = !{i32 7, !"uwtable", i32 2} !17 = !{i32 7, !"frame-pointer", i32 2} -!18 = !{!"clang version 16.0.0"} +!18 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !19 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 13, type: !20, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !22) !20 = !DISubroutineType(types: !21) !21 = !{!9} diff --git a/test_cases_bc/ae_assert_tests/cwe126_char_alloc-0.c.bc b/test_cases_bc/ae_assert_tests/cwe126_char_alloc-0.c.bc index 50e917ae..173f6008 100644 --- a/test_cases_bc/ae_assert_tests/cwe126_char_alloc-0.c.bc +++ b/test_cases_bc/ae_assert_tests/cwe126_char_alloc-0.c.bc @@ -51,7 +51,7 @@ attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/cwe126_char_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "351da6695ae80efab07e8f2abdc79525") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -63,7 +63,7 @@ attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 13, type: !15, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) !14 = !DIFile(filename: "src/ae_assert_tests/cwe126_char_alloc-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "351da6695ae80efab07e8f2abdc79525") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/ae_assert_tests/cwe190_char_fscanf-0.c.bc b/test_cases_bc/ae_assert_tests/cwe190_char_fscanf-0.c.bc index 77bff3b5..c09bd272 100644 --- a/test_cases_bc/ae_assert_tests/cwe190_char_fscanf-0.c.bc +++ b/test_cases_bc/ae_assert_tests/cwe190_char_fscanf-0.c.bc @@ -70,7 +70,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 56, elements: !15) !15 = !{!16} !16 = !DISubrange(count: 7) -!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) +!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) !18 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/cwe190_char_fscanf-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1b2b87c6a0124641df48fb82f0967dd5") !19 = !{!0, !7, !12} !20 = !{i32 7, !"Dwarf Version", i32 5} @@ -80,7 +80,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !24 = !{i32 7, !"PIE Level", i32 2} !25 = !{i32 7, !"uwtable", i32 2} !26 = !{i32 7, !"frame-pointer", i32 2} -!27 = !{!"clang version 16.0.0"} +!27 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !28 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 9, type: !29, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !32) !29 = !DISubroutineType(types: !30) !30 = !{!31} diff --git a/test_cases_bc/ae_assert_tests/cwe190_int_max-0.c.bc b/test_cases_bc/ae_assert_tests/cwe190_int_max-0.c.bc index 7f0e9a01..6dfdd101 100644 --- a/test_cases_bc/ae_assert_tests/cwe190_int_max-0.c.bc +++ b/test_cases_bc/ae_assert_tests/cwe190_int_max-0.c.bc @@ -34,7 +34,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_assert_tests/cwe190_int_max-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3a484a41634ebac644e67a55d2e940f3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -43,7 +43,7 @@ attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 11, type: !12, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) !11 = !DIFile(filename: "src/ae_assert_tests/cwe190_int_max-0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3a484a41634ebac644e67a55d2e940f3") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/EexAPI_strcat.c.bc b/test_cases_bc/ae_nullptr_deref_tests/EexAPI_strcat.c.bc new file mode 100644 index 00000000..04e2b6fd --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/EexAPI_strcat.c.bc @@ -0,0 +1,211 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/EexAPI_strcat.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/EexAPI_strcat.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [7 x i8] c" World\00", align 1, !dbg !7 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_safe_strcat() #0 !dbg !25 { +entry: + %a = alloca ptr, align 8 + %b = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %a, metadata !29, metadata !DIExpression()), !dbg !30 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !31 + store ptr %call, ptr %a, align 8, !dbg !30 + call void @llvm.dbg.declare(metadata ptr %b, metadata !32, metadata !DIExpression()), !dbg !33 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !34 + store ptr %call1, ptr %b, align 8, !dbg !33 + %0 = load ptr, ptr %a, align 8, !dbg !35 + %tobool = icmp ne ptr %0, null, !dbg !35 + br i1 %tobool, label %land.lhs.true, label %if.end, !dbg !37 + +land.lhs.true: ; preds = %entry + %1 = load ptr, ptr %b, align 8, !dbg !38 + %tobool2 = icmp ne ptr %1, null, !dbg !38 + br i1 %tobool2, label %if.then, label %if.end, !dbg !39 + +if.then: ; preds = %land.lhs.true + %2 = load ptr, ptr %a, align 8, !dbg !40 + %call3 = call ptr @strcpy(ptr noundef %2, ptr noundef @.str) #6, !dbg !42 + %3 = load ptr, ptr %b, align 8, !dbg !43 + %call4 = call ptr @strcpy(ptr noundef %3, ptr noundef @.str.1) #6, !dbg !44 + %4 = load ptr, ptr %a, align 8, !dbg !45 + call void @SAFE_LOAD(ptr noundef %4), !dbg !46 + %5 = load ptr, ptr %b, align 8, !dbg !47 + call void @SAFE_LOAD(ptr noundef %5), !dbg !48 + %6 = load ptr, ptr %a, align 8, !dbg !49 + %7 = load ptr, ptr %b, align 8, !dbg !50 + %call5 = call ptr @strcat(ptr noundef %6, ptr noundef %7) #6, !dbg !51 + br label %if.end, !dbg !52 + +if.end: ; preds = %if.then, %land.lhs.true, %entry + %8 = load ptr, ptr %a, align 8, !dbg !53 + call void @free(ptr noundef %8) #6, !dbg !54 + %9 = load ptr, ptr %b, align 8, !dbg !55 + call void @free(ptr noundef %9) #6, !dbg !56 + ret void, !dbg !57 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare ptr @strcat(ptr noundef, ptr noundef) #3 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_unsafe_strcat() #0 !dbg !58 { +entry: + %a = alloca ptr, align 8 + %b = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %a, metadata !59, metadata !DIExpression()), !dbg !60 + store ptr null, ptr %a, align 8, !dbg !60 + call void @llvm.dbg.declare(metadata ptr %b, metadata !61, metadata !DIExpression()), !dbg !62 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !63 + store ptr %call, ptr %b, align 8, !dbg !62 + %0 = load ptr, ptr %b, align 8, !dbg !64 + %tobool = icmp ne ptr %0, null, !dbg !64 + br i1 %tobool, label %if.then, label %if.end, !dbg !66 + +if.then: ; preds = %entry + %1 = load ptr, ptr %b, align 8, !dbg !67 + %call1 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str.1) #6, !dbg !69 + %2 = load ptr, ptr %a, align 8, !dbg !70 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !71 + %3 = load ptr, ptr %b, align 8, !dbg !72 + call void @SAFE_LOAD(ptr noundef %3), !dbg !73 + %4 = load ptr, ptr %a, align 8, !dbg !74 + %5 = load ptr, ptr %b, align 8, !dbg !75 + %call2 = call ptr @strcat(ptr noundef %4, ptr noundef %5) #6, !dbg !76 + br label %if.end, !dbg !77 + +if.end: ; preds = %if.then, %entry + %6 = load ptr, ptr %b, align 8, !dbg !78 + call void @free(ptr noundef %6) #6, !dbg !79 + ret void, !dbg !80 +} + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !81 { +entry: + %retval = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @test_safe_strcat(), !dbg !85 + call void @test_unsafe_strcat(), !dbg !86 + ret i32 0, !dbg !87 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!12} +!llvm.module.flags = !{!17, !18, !19, !20, !21, !22, !23} +!llvm.ident = !{!24} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/EexAPI_strcat.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "89a82ab40c9ed25336f0a98d9c721aa3") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 13, type: !9, isLocal: true, isDefinition: true) +!9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 56, elements: !10) +!10 = !{!11} +!11 = !DISubrange(count: 7) +!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !14, globals: !16, splitDebugInlining: false, nameTableKind: None) +!13 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/EexAPI_strcat.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "89a82ab40c9ed25336f0a98d9c721aa3") +!14 = !{!15} +!15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!16 = !{!0, !7} +!17 = !{i32 7, !"Dwarf Version", i32 5} +!18 = !{i32 2, !"Debug Info Version", i32 3} +!19 = !{i32 1, !"wchar_size", i32 4} +!20 = !{i32 8, !"PIC Level", i32 2} +!21 = !{i32 7, !"PIE Level", i32 2} +!22 = !{i32 7, !"uwtable", i32 2} +!23 = !{i32 7, !"frame-pointer", i32 2} +!24 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!25 = distinct !DISubprogram(name: "test_safe_strcat", scope: !2, file: !2, line: 8, type: !26, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !12, retainedNodes: !28) +!26 = !DISubroutineType(types: !27) +!27 = !{null} +!28 = !{} +!29 = !DILocalVariable(name: "a", scope: !25, file: !2, line: 9, type: !15) +!30 = !DILocation(line: 9, column: 11, scope: !25) +!31 = !DILocation(line: 9, column: 23, scope: !25) +!32 = !DILocalVariable(name: "b", scope: !25, file: !2, line: 10, type: !15) +!33 = !DILocation(line: 10, column: 11, scope: !25) +!34 = !DILocation(line: 10, column: 23, scope: !25) +!35 = !DILocation(line: 11, column: 9, scope: !36) +!36 = distinct !DILexicalBlock(scope: !25, file: !2, line: 11, column: 9) +!37 = !DILocation(line: 11, column: 11, scope: !36) +!38 = !DILocation(line: 11, column: 14, scope: !36) +!39 = !DILocation(line: 11, column: 9, scope: !25) +!40 = !DILocation(line: 12, column: 16, scope: !41) +!41 = distinct !DILexicalBlock(scope: !36, file: !2, line: 11, column: 17) +!42 = !DILocation(line: 12, column: 9, scope: !41) +!43 = !DILocation(line: 13, column: 16, scope: !41) +!44 = !DILocation(line: 13, column: 9, scope: !41) +!45 = !DILocation(line: 16, column: 19, scope: !41) +!46 = !DILocation(line: 16, column: 9, scope: !41) +!47 = !DILocation(line: 17, column: 19, scope: !41) +!48 = !DILocation(line: 17, column: 9, scope: !41) +!49 = !DILocation(line: 19, column: 16, scope: !41) +!50 = !DILocation(line: 19, column: 19, scope: !41) +!51 = !DILocation(line: 19, column: 9, scope: !41) +!52 = !DILocation(line: 20, column: 5, scope: !41) +!53 = !DILocation(line: 21, column: 10, scope: !25) +!54 = !DILocation(line: 21, column: 5, scope: !25) +!55 = !DILocation(line: 22, column: 10, scope: !25) +!56 = !DILocation(line: 22, column: 5, scope: !25) +!57 = !DILocation(line: 23, column: 1, scope: !25) +!58 = distinct !DISubprogram(name: "test_unsafe_strcat", scope: !2, file: !2, line: 25, type: !26, scopeLine: 25, spFlags: DISPFlagDefinition, unit: !12, retainedNodes: !28) +!59 = !DILocalVariable(name: "a", scope: !58, file: !2, line: 26, type: !15) +!60 = !DILocation(line: 26, column: 11, scope: !58) +!61 = !DILocalVariable(name: "b", scope: !58, file: !2, line: 27, type: !15) +!62 = !DILocation(line: 27, column: 11, scope: !58) +!63 = !DILocation(line: 27, column: 23, scope: !58) +!64 = !DILocation(line: 28, column: 9, scope: !65) +!65 = distinct !DILexicalBlock(scope: !58, file: !2, line: 28, column: 9) +!66 = !DILocation(line: 28, column: 9, scope: !58) +!67 = !DILocation(line: 29, column: 16, scope: !68) +!68 = distinct !DILexicalBlock(scope: !65, file: !2, line: 28, column: 12) +!69 = !DILocation(line: 29, column: 9, scope: !68) +!70 = !DILocation(line: 32, column: 21, scope: !68) +!71 = !DILocation(line: 32, column: 9, scope: !68) +!72 = !DILocation(line: 33, column: 19, scope: !68) +!73 = !DILocation(line: 33, column: 9, scope: !68) +!74 = !DILocation(line: 35, column: 16, scope: !68) +!75 = !DILocation(line: 35, column: 19, scope: !68) +!76 = !DILocation(line: 35, column: 9, scope: !68) +!77 = !DILocation(line: 36, column: 5, scope: !68) +!78 = !DILocation(line: 37, column: 10, scope: !58) +!79 = !DILocation(line: 37, column: 5, scope: !58) +!80 = !DILocation(line: 38, column: 1, scope: !58) +!81 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 40, type: !82, scopeLine: 40, spFlags: DISPFlagDefinition, unit: !12, retainedNodes: !28) +!82 = !DISubroutineType(types: !83) +!83 = !{!84} +!84 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!85 = !DILocation(line: 41, column: 5, scope: !81) +!86 = !DILocation(line: 42, column: 5, scope: !81) +!87 = !DILocation(line: 43, column: 5, scope: !81) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy.c.bc new file mode 100644 index 00000000..f12987c9 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy.c.bc @@ -0,0 +1,271 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_safe_memcpy() #0 !dbg !13 { +entry: + %a = alloca ptr, align 8 + %b = alloca ptr, align 8 + %i = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !20 + store ptr %call, ptr %a, align 8, !dbg !19 + call void @llvm.dbg.declare(metadata ptr %b, metadata !21, metadata !DIExpression()), !dbg !22 + %call1 = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !23 + store ptr %call1, ptr %b, align 8, !dbg !22 + %0 = load ptr, ptr %a, align 8, !dbg !24 + %tobool = icmp ne ptr %0, null, !dbg !24 + br i1 %tobool, label %land.lhs.true, label %if.end, !dbg !26 + +land.lhs.true: ; preds = %entry + %1 = load ptr, ptr %b, align 8, !dbg !27 + %tobool2 = icmp ne ptr %1, null, !dbg !27 + br i1 %tobool2, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %land.lhs.true + call void @llvm.dbg.declare(metadata ptr %i, metadata !29, metadata !DIExpression()), !dbg !32 + store i32 0, ptr %i, align 4, !dbg !32 + br label %for.cond, !dbg !33 + +for.cond: ; preds = %for.inc, %if.then + %2 = load i32, ptr %i, align 4, !dbg !34 + %cmp = icmp slt i32 %2, 5, !dbg !36 + br i1 %cmp, label %for.body, label %for.end, !dbg !37 + +for.body: ; preds = %for.cond + %3 = load i32, ptr %i, align 4, !dbg !38 + %4 = load ptr, ptr %b, align 8, !dbg !40 + %5 = load i32, ptr %i, align 4, !dbg !41 + %idxprom = sext i32 %5 to i64, !dbg !40 + %arrayidx = getelementptr inbounds i32, ptr %4, i64 %idxprom, !dbg !40 + store i32 %3, ptr %arrayidx, align 4, !dbg !42 + br label %for.inc, !dbg !43 + +for.inc: ; preds = %for.body + %6 = load i32, ptr %i, align 4, !dbg !44 + %inc = add nsw i32 %6, 1, !dbg !44 + store i32 %inc, ptr %i, align 4, !dbg !44 + br label %for.cond, !dbg !45, !llvm.loop !46 + +for.end: ; preds = %for.cond + %7 = load ptr, ptr %a, align 8, !dbg !49 + call void @SAFE_LOAD(ptr noundef %7), !dbg !50 + %8 = load ptr, ptr %b, align 8, !dbg !51 + call void @SAFE_LOAD(ptr noundef %8), !dbg !52 + %9 = load ptr, ptr %a, align 8, !dbg !53 + %10 = load ptr, ptr %b, align 8, !dbg !54 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %9, ptr align 4 %10, i64 20, i1 false), !dbg !55 + br label %if.end, !dbg !56 + +if.end: ; preds = %for.end, %land.lhs.true, %entry + %11 = load ptr, ptr %a, align 8, !dbg !57 + call void @free(ptr noundef %11) #7, !dbg !58 + %12 = load ptr, ptr %b, align 8, !dbg !59 + call void @free(ptr noundef %12) #7, !dbg !60 + ret void, !dbg !61 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_unsafe_memcpy() #0 !dbg !62 { +entry: + %a = alloca ptr, align 8 + %b = alloca ptr, align 8 + %i = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !63, metadata !DIExpression()), !dbg !64 + store ptr null, ptr %a, align 8, !dbg !64 + call void @llvm.dbg.declare(metadata ptr %b, metadata !65, metadata !DIExpression()), !dbg !66 + %call = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !67 + store ptr %call, ptr %b, align 8, !dbg !66 + %0 = load ptr, ptr %b, align 8, !dbg !68 + %tobool = icmp ne ptr %0, null, !dbg !68 + br i1 %tobool, label %if.then, label %if.end, !dbg !70 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %i, metadata !71, metadata !DIExpression()), !dbg !74 + store i32 0, ptr %i, align 4, !dbg !74 + br label %for.cond, !dbg !75 + +for.cond: ; preds = %for.inc, %if.then + %1 = load i32, ptr %i, align 4, !dbg !76 + %cmp = icmp slt i32 %1, 5, !dbg !78 + br i1 %cmp, label %for.body, label %for.end, !dbg !79 + +for.body: ; preds = %for.cond + %2 = load i32, ptr %i, align 4, !dbg !80 + %3 = load ptr, ptr %b, align 8, !dbg !82 + %4 = load i32, ptr %i, align 4, !dbg !83 + %idxprom = sext i32 %4 to i64, !dbg !82 + %arrayidx = getelementptr inbounds i32, ptr %3, i64 %idxprom, !dbg !82 + store i32 %2, ptr %arrayidx, align 4, !dbg !84 + br label %for.inc, !dbg !85 + +for.inc: ; preds = %for.body + %5 = load i32, ptr %i, align 4, !dbg !86 + %inc = add nsw i32 %5, 1, !dbg !86 + store i32 %inc, ptr %i, align 4, !dbg !86 + br label %for.cond, !dbg !87, !llvm.loop !88 + +for.end: ; preds = %for.cond + %6 = load ptr, ptr %a, align 8, !dbg !90 + call void @UNSAFE_LOAD(ptr noundef %6), !dbg !91 + %7 = load ptr, ptr %b, align 8, !dbg !92 + call void @SAFE_LOAD(ptr noundef %7), !dbg !93 + %8 = load ptr, ptr %a, align 8, !dbg !94 + %9 = load ptr, ptr %b, align 8, !dbg !95 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %8, ptr align 4 %9, i64 20, i1 false), !dbg !96 + br label %if.end, !dbg !97 + +if.end: ; preds = %for.end, %entry + %10 = load ptr, ptr %b, align 8, !dbg !98 + call void @free(ptr noundef %10) #7, !dbg !99 + ret void, !dbg !100 +} + +declare void @UNSAFE_LOAD(ptr noundef) #3 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !101 { +entry: + %retval = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @test_safe_memcpy(), !dbg !104 + call void @test_unsafe_memcpy(), !dbg !105 + ret i32 0, !dbg !106 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "1ee164767bdb4f252f7279c5b6dce5b8") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "test_safe_memcpy", scope: !14, file: !14, line: 8, type: !15, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memcpy.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "1ee164767bdb4f252f7279c5b6dce5b8") +!15 = !DISubroutineType(types: !16) +!16 = !{null} +!17 = !{} +!18 = !DILocalVariable(name: "a", scope: !13, file: !14, line: 9, type: !3) +!19 = !DILocation(line: 9, column: 10, scope: !13) +!20 = !DILocation(line: 9, column: 21, scope: !13) +!21 = !DILocalVariable(name: "b", scope: !13, file: !14, line: 10, type: !3) +!22 = !DILocation(line: 10, column: 10, scope: !13) +!23 = !DILocation(line: 10, column: 21, scope: !13) +!24 = !DILocation(line: 11, column: 9, scope: !25) +!25 = distinct !DILexicalBlock(scope: !13, file: !14, line: 11, column: 9) +!26 = !DILocation(line: 11, column: 11, scope: !25) +!27 = !DILocation(line: 11, column: 14, scope: !25) +!28 = !DILocation(line: 11, column: 9, scope: !13) +!29 = !DILocalVariable(name: "i", scope: !30, file: !14, line: 12, type: !4) +!30 = distinct !DILexicalBlock(scope: !31, file: !14, line: 12, column: 9) +!31 = distinct !DILexicalBlock(scope: !25, file: !14, line: 11, column: 17) +!32 = !DILocation(line: 12, column: 18, scope: !30) +!33 = !DILocation(line: 12, column: 14, scope: !30) +!34 = !DILocation(line: 12, column: 25, scope: !35) +!35 = distinct !DILexicalBlock(scope: !30, file: !14, line: 12, column: 9) +!36 = !DILocation(line: 12, column: 27, scope: !35) +!37 = !DILocation(line: 12, column: 9, scope: !30) +!38 = !DILocation(line: 13, column: 20, scope: !39) +!39 = distinct !DILexicalBlock(scope: !35, file: !14, line: 12, column: 37) +!40 = !DILocation(line: 13, column: 13, scope: !39) +!41 = !DILocation(line: 13, column: 15, scope: !39) +!42 = !DILocation(line: 13, column: 18, scope: !39) +!43 = !DILocation(line: 14, column: 9, scope: !39) +!44 = !DILocation(line: 12, column: 32, scope: !35) +!45 = !DILocation(line: 12, column: 9, scope: !35) +!46 = distinct !{!46, !37, !47, !48} +!47 = !DILocation(line: 14, column: 9, scope: !30) +!48 = !{!"llvm.loop.mustprogress"} +!49 = !DILocation(line: 16, column: 19, scope: !31) +!50 = !DILocation(line: 16, column: 9, scope: !31) +!51 = !DILocation(line: 17, column: 19, scope: !31) +!52 = !DILocation(line: 17, column: 9, scope: !31) +!53 = !DILocation(line: 19, column: 16, scope: !31) +!54 = !DILocation(line: 19, column: 19, scope: !31) +!55 = !DILocation(line: 19, column: 9, scope: !31) +!56 = !DILocation(line: 20, column: 5, scope: !31) +!57 = !DILocation(line: 21, column: 10, scope: !13) +!58 = !DILocation(line: 21, column: 5, scope: !13) +!59 = !DILocation(line: 22, column: 10, scope: !13) +!60 = !DILocation(line: 22, column: 5, scope: !13) +!61 = !DILocation(line: 23, column: 1, scope: !13) +!62 = distinct !DISubprogram(name: "test_unsafe_memcpy", scope: !14, file: !14, line: 25, type: !15, scopeLine: 25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!63 = !DILocalVariable(name: "a", scope: !62, file: !14, line: 26, type: !3) +!64 = !DILocation(line: 26, column: 10, scope: !62) +!65 = !DILocalVariable(name: "b", scope: !62, file: !14, line: 27, type: !3) +!66 = !DILocation(line: 27, column: 10, scope: !62) +!67 = !DILocation(line: 27, column: 21, scope: !62) +!68 = !DILocation(line: 28, column: 9, scope: !69) +!69 = distinct !DILexicalBlock(scope: !62, file: !14, line: 28, column: 9) +!70 = !DILocation(line: 28, column: 9, scope: !62) +!71 = !DILocalVariable(name: "i", scope: !72, file: !14, line: 29, type: !4) +!72 = distinct !DILexicalBlock(scope: !73, file: !14, line: 29, column: 9) +!73 = distinct !DILexicalBlock(scope: !69, file: !14, line: 28, column: 12) +!74 = !DILocation(line: 29, column: 18, scope: !72) +!75 = !DILocation(line: 29, column: 14, scope: !72) +!76 = !DILocation(line: 29, column: 25, scope: !77) +!77 = distinct !DILexicalBlock(scope: !72, file: !14, line: 29, column: 9) +!78 = !DILocation(line: 29, column: 27, scope: !77) +!79 = !DILocation(line: 29, column: 9, scope: !72) +!80 = !DILocation(line: 30, column: 20, scope: !81) +!81 = distinct !DILexicalBlock(scope: !77, file: !14, line: 29, column: 37) +!82 = !DILocation(line: 30, column: 13, scope: !81) +!83 = !DILocation(line: 30, column: 15, scope: !81) +!84 = !DILocation(line: 30, column: 18, scope: !81) +!85 = !DILocation(line: 31, column: 9, scope: !81) +!86 = !DILocation(line: 29, column: 32, scope: !77) +!87 = !DILocation(line: 29, column: 9, scope: !77) +!88 = distinct !{!88, !79, !89, !48} +!89 = !DILocation(line: 31, column: 9, scope: !72) +!90 = !DILocation(line: 33, column: 21, scope: !73) +!91 = !DILocation(line: 33, column: 9, scope: !73) +!92 = !DILocation(line: 34, column: 19, scope: !73) +!93 = !DILocation(line: 34, column: 9, scope: !73) +!94 = !DILocation(line: 36, column: 16, scope: !73) +!95 = !DILocation(line: 36, column: 19, scope: !73) +!96 = !DILocation(line: 36, column: 9, scope: !73) +!97 = !DILocation(line: 37, column: 5, scope: !73) +!98 = !DILocation(line: 38, column: 10, scope: !62) +!99 = !DILocation(line: 38, column: 5, scope: !62) +!100 = !DILocation(line: 39, column: 1, scope: !62) +!101 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 41, type: !102, scopeLine: 41, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!102 = !DISubroutineType(types: !103) +!103 = !{!4} +!104 = !DILocation(line: 42, column: 5, scope: !101) +!105 = !DILocation(line: 43, column: 5, scope: !101) +!106 = !DILocation(line: 44, column: 5, scope: !101) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_char_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_char_ptr.c.bc new file mode 100644 index 00000000..dfa6903a --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_char_ptr.c.bc @@ -0,0 +1,118 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_char_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_char_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !20 { +entry: + %retval = alloca i32, align 4 + %buf = alloca ptr, align 8 + %buf_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %buf, metadata !25, metadata !DIExpression()), !dbg !26 + %call = call noalias ptr @malloc(i64 noundef 10) #6, !dbg !27 + store ptr %call, ptr %buf, align 8, !dbg !26 + call void @llvm.dbg.declare(metadata ptr %buf_copy, metadata !28, metadata !DIExpression()), !dbg !29 + %call1 = call noalias ptr @malloc(i64 noundef 10) #6, !dbg !30 + store ptr %call1, ptr %buf_copy, align 8, !dbg !29 + %0 = load ptr, ptr %buf, align 8, !dbg !31 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr align 1 @.str, i64 5, i1 false), !dbg !32 + %1 = load ptr, ptr %buf_copy, align 8, !dbg !33 + %2 = load ptr, ptr %buf, align 8, !dbg !34 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1, ptr align 1 %2, i64 5, i1 false), !dbg !35 + %3 = load ptr, ptr %buf, align 8, !dbg !36 + call void @SAFE_LOAD(ptr noundef %3), !dbg !37 + %4 = load ptr, ptr %buf_copy, align 8, !dbg !38 + call void @SAFE_LOAD(ptr noundef %4), !dbg !39 + %5 = load ptr, ptr %buf, align 8, !dbg !40 + call void @free(ptr noundef %5) #7, !dbg !41 + %6 = load ptr, ptr %buf, align 8, !dbg !42 + call void @UNSAFE_LOAD(ptr noundef %6), !dbg !43 + %7 = load ptr, ptr %buf_copy, align 8, !dbg !44 + call void @free(ptr noundef %7) #7, !dbg !45 + %8 = load ptr, ptr %buf_copy, align 8, !dbg !46 + call void @UNSAFE_LOAD(ptr noundef %8), !dbg !47 + ret i32 0, !dbg !48 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!12, !13, !14, !15, !16, !17, !18} +!llvm.ident = !{!19} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memcpy_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a5a8b68a5b5f0599a8a7a3e67ad56e3a") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a5a8b68a5b5f0599a8a7a3e67ad56e3a") +!9 = !{!10} +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!11 = !{!0} +!12 = !{i32 7, !"Dwarf Version", i32 5} +!13 = !{i32 2, !"Debug Info Version", i32 3} +!14 = !{i32 1, !"wchar_size", i32 4} +!15 = !{i32 8, !"PIC Level", i32 2} +!16 = !{i32 7, !"PIE Level", i32 2} +!17 = !{i32 7, !"uwtable", i32 2} +!18 = !{i32 7, !"frame-pointer", i32 2} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!20 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 8, type: !21, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) +!21 = !DISubroutineType(types: !22) +!22 = !{!23} +!23 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!24 = !{} +!25 = !DILocalVariable(name: "buf", scope: !20, file: !2, line: 9, type: !10) +!26 = !DILocation(line: 9, column: 11, scope: !20) +!27 = !DILocation(line: 9, column: 24, scope: !20) +!28 = !DILocalVariable(name: "buf_copy", scope: !20, file: !2, line: 10, type: !10) +!29 = !DILocation(line: 10, column: 11, scope: !20) +!30 = !DILocation(line: 10, column: 29, scope: !20) +!31 = !DILocation(line: 12, column: 12, scope: !20) +!32 = !DILocation(line: 12, column: 5, scope: !20) +!33 = !DILocation(line: 13, column: 12, scope: !20) +!34 = !DILocation(line: 13, column: 22, scope: !20) +!35 = !DILocation(line: 13, column: 5, scope: !20) +!36 = !DILocation(line: 15, column: 15, scope: !20) +!37 = !DILocation(line: 15, column: 5, scope: !20) +!38 = !DILocation(line: 16, column: 15, scope: !20) +!39 = !DILocation(line: 16, column: 5, scope: !20) +!40 = !DILocation(line: 18, column: 10, scope: !20) +!41 = !DILocation(line: 18, column: 5, scope: !20) +!42 = !DILocation(line: 19, column: 17, scope: !20) +!43 = !DILocation(line: 19, column: 5, scope: !20) +!44 = !DILocation(line: 21, column: 10, scope: !20) +!45 = !DILocation(line: 21, column: 5, scope: !20) +!46 = !DILocation(line: 22, column: 17, scope: !20) +!47 = !DILocation(line: 22, column: 5, scope: !20) +!48 = !DILocation(line: 24, column: 5, scope: !20) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_int_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_int_ptr.c.bc new file mode 100644 index 00000000..36bb48b3 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_int_ptr.c.bc @@ -0,0 +1,150 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_int_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_int_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %arr = alloca ptr, align 8 + %arr_copy = alloca ptr, align 8 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !20 + store ptr %call, ptr %arr, align 8, !dbg !19 + call void @llvm.dbg.declare(metadata ptr %arr_copy, metadata !21, metadata !DIExpression()), !dbg !22 + %call1 = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !23 + store ptr %call1, ptr %arr_copy, align 8, !dbg !22 + call void @llvm.dbg.declare(metadata ptr %i, metadata !24, metadata !DIExpression()), !dbg !26 + store i32 0, ptr %i, align 4, !dbg !26 + br label %for.cond, !dbg !27 + +for.cond: ; preds = %for.inc, %entry + %0 = load i32, ptr %i, align 4, !dbg !28 + %cmp = icmp slt i32 %0, 5, !dbg !30 + br i1 %cmp, label %for.body, label %for.end, !dbg !31 + +for.body: ; preds = %for.cond + %1 = load i32, ptr %i, align 4, !dbg !32 + %2 = load ptr, ptr %arr, align 8, !dbg !34 + %3 = load i32, ptr %i, align 4, !dbg !35 + %idxprom = sext i32 %3 to i64, !dbg !34 + %arrayidx = getelementptr inbounds i32, ptr %2, i64 %idxprom, !dbg !34 + store i32 %1, ptr %arrayidx, align 4, !dbg !36 + br label %for.inc, !dbg !37 + +for.inc: ; preds = %for.body + %4 = load i32, ptr %i, align 4, !dbg !38 + %inc = add nsw i32 %4, 1, !dbg !38 + store i32 %inc, ptr %i, align 4, !dbg !38 + br label %for.cond, !dbg !39, !llvm.loop !40 + +for.end: ; preds = %for.cond + %5 = load ptr, ptr %arr_copy, align 8, !dbg !43 + %6 = load ptr, ptr %arr, align 8, !dbg !44 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %5, ptr align 4 %6, i64 20, i1 false), !dbg !45 + %7 = load ptr, ptr %arr, align 8, !dbg !46 + call void @SAFE_LOAD(ptr noundef %7), !dbg !47 + %8 = load ptr, ptr %arr_copy, align 8, !dbg !48 + call void @SAFE_LOAD(ptr noundef %8), !dbg !49 + %9 = load ptr, ptr %arr, align 8, !dbg !50 + call void @free(ptr noundef %9) #7, !dbg !51 + %10 = load ptr, ptr %arr, align 8, !dbg !52 + call void @UNSAFE_LOAD(ptr noundef %10), !dbg !53 + %11 = load ptr, ptr %arr_copy, align 8, !dbg !54 + call void @free(ptr noundef %11) #7, !dbg !55 + %12 = load ptr, ptr %arr_copy, align 8, !dbg !56 + call void @UNSAFE_LOAD(ptr noundef %12), !dbg !57 + ret i32 0, !dbg !58 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d3afc708f030a0e6fb338ef4fcf858c6") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 7, type: !15, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memcpy_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d3afc708f030a0e6fb338ef4fcf858c6") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "arr", scope: !13, file: !14, line: 8, type: !3) +!19 = !DILocation(line: 8, column: 10, scope: !13) +!20 = !DILocation(line: 8, column: 22, scope: !13) +!21 = !DILocalVariable(name: "arr_copy", scope: !13, file: !14, line: 9, type: !3) +!22 = !DILocation(line: 9, column: 10, scope: !13) +!23 = !DILocation(line: 9, column: 27, scope: !13) +!24 = !DILocalVariable(name: "i", scope: !25, file: !14, line: 11, type: !4) +!25 = distinct !DILexicalBlock(scope: !13, file: !14, line: 11, column: 5) +!26 = !DILocation(line: 11, column: 14, scope: !25) +!27 = !DILocation(line: 11, column: 10, scope: !25) +!28 = !DILocation(line: 11, column: 21, scope: !29) +!29 = distinct !DILexicalBlock(scope: !25, file: !14, line: 11, column: 5) +!30 = !DILocation(line: 11, column: 23, scope: !29) +!31 = !DILocation(line: 11, column: 5, scope: !25) +!32 = !DILocation(line: 12, column: 18, scope: !33) +!33 = distinct !DILexicalBlock(scope: !29, file: !14, line: 11, column: 33) +!34 = !DILocation(line: 12, column: 9, scope: !33) +!35 = !DILocation(line: 12, column: 13, scope: !33) +!36 = !DILocation(line: 12, column: 16, scope: !33) +!37 = !DILocation(line: 13, column: 5, scope: !33) +!38 = !DILocation(line: 11, column: 29, scope: !29) +!39 = !DILocation(line: 11, column: 5, scope: !29) +!40 = distinct !{!40, !31, !41, !42} +!41 = !DILocation(line: 13, column: 5, scope: !25) +!42 = !{!"llvm.loop.mustprogress"} +!43 = !DILocation(line: 15, column: 12, scope: !13) +!44 = !DILocation(line: 15, column: 22, scope: !13) +!45 = !DILocation(line: 15, column: 5, scope: !13) +!46 = !DILocation(line: 17, column: 15, scope: !13) +!47 = !DILocation(line: 17, column: 5, scope: !13) +!48 = !DILocation(line: 18, column: 15, scope: !13) +!49 = !DILocation(line: 18, column: 5, scope: !13) +!50 = !DILocation(line: 20, column: 10, scope: !13) +!51 = !DILocation(line: 20, column: 5, scope: !13) +!52 = !DILocation(line: 21, column: 17, scope: !13) +!53 = !DILocation(line: 21, column: 5, scope: !13) +!54 = !DILocation(line: 23, column: 10, scope: !13) +!55 = !DILocation(line: 23, column: 5, scope: !13) +!56 = !DILocation(line: 24, column: 17, scope: !13) +!57 = !DILocation(line: 24, column: 5, scope: !13) +!58 = !DILocation(line: 26, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_null_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_null_ptr.c.bc new file mode 100644 index 00000000..0c2e7c93 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_null_ptr.c.bc @@ -0,0 +1,105 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_null_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_null_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !23, metadata !DIExpression()), !dbg !25 + store ptr null, ptr %p, align 8, !dbg !25 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !26, metadata !DIExpression()), !dbg !27 + %call = call noalias ptr @malloc(i64 noundef 10) #6, !dbg !28 + store ptr %call, ptr %p_copy, align 8, !dbg !27 + %0 = load ptr, ptr %p_copy, align 8, !dbg !29 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr align 1 @.str, i64 5, i1 false), !dbg !30 + %1 = load ptr, ptr %p, align 8, !dbg !31 + %2 = load ptr, ptr %p_copy, align 8, !dbg !32 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1, ptr align 1 %2, i64 5, i1 false), !dbg !33 + %3 = load ptr, ptr %p_copy, align 8, !dbg !34 + call void @free(ptr noundef %3) #7, !dbg !35 + %4 = load ptr, ptr %p_copy, align 8, !dbg !36 + call void @UNSAFE_LOAD(ptr noundef %4), !dbg !37 + %5 = load ptr, ptr %p, align 8, !dbg !38 + call void @free(ptr noundef %5) #7, !dbg !39 + %6 = load ptr, ptr %p, align 8, !dbg !40 + call void @UNSAFE_LOAD(ptr noundef %6), !dbg !41 + ret i32 0, !dbg !42 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #4 + +declare void @UNSAFE_LOAD(ptr noundef) #5 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 10, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memcpy_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "bf26a04dc860f8f3225034e8260a2f37") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "bf26a04dc860f8f3225034e8260a2f37") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "p", scope: !18, file: !2, line: 7, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!25 = !DILocation(line: 7, column: 11, scope: !18) +!26 = !DILocalVariable(name: "p_copy", scope: !18, file: !2, line: 8, type: !24) +!27 = !DILocation(line: 8, column: 11, scope: !18) +!28 = !DILocation(line: 8, column: 20, scope: !18) +!29 = !DILocation(line: 10, column: 12, scope: !18) +!30 = !DILocation(line: 10, column: 5, scope: !18) +!31 = !DILocation(line: 11, column: 12, scope: !18) +!32 = !DILocation(line: 11, column: 15, scope: !18) +!33 = !DILocation(line: 11, column: 5, scope: !18) +!34 = !DILocation(line: 13, column: 10, scope: !18) +!35 = !DILocation(line: 13, column: 5, scope: !18) +!36 = !DILocation(line: 14, column: 17, scope: !18) +!37 = !DILocation(line: 14, column: 5, scope: !18) +!38 = !DILocation(line: 16, column: 10, scope: !18) +!39 = !DILocation(line: 16, column: 5, scope: !18) +!40 = !DILocation(line: 17, column: 17, scope: !18) +!41 = !DILocation(line: 17, column: 5, scope: !18) +!42 = !DILocation(line: 19, column: 5, scope: !18) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_stack_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_stack_ptr.c.bc new file mode 100644 index 00000000..073cd5e0 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_stack_ptr.c.bc @@ -0,0 +1,106 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_stack_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_stack_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [2 x i8] c"A\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !20 { +entry: + %retval = alloca i32, align 4 + %c = alloca i8, align 1 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %c, metadata !25, metadata !DIExpression()), !dbg !26 + call void @llvm.dbg.declare(metadata ptr %p, metadata !27, metadata !DIExpression()), !dbg !28 + store ptr %c, ptr %p, align 8, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !29, metadata !DIExpression()), !dbg !30 + %call = call noalias ptr @malloc(i64 noundef 1) #6, !dbg !31 + store ptr %call, ptr %p_copy, align 8, !dbg !30 + %0 = load ptr, ptr %p_copy, align 8, !dbg !32 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr align 1 @.str, i64 1, i1 false), !dbg !33 + %1 = load ptr, ptr %p, align 8, !dbg !34 + call void @SAFE_LOAD(ptr noundef %1), !dbg !35 + %2 = load ptr, ptr %p_copy, align 8, !dbg !36 + call void @SAFE_LOAD(ptr noundef %2), !dbg !37 + %3 = load ptr, ptr %p_copy, align 8, !dbg !38 + call void @free(ptr noundef %3) #7, !dbg !39 + %4 = load ptr, ptr %p_copy, align 8, !dbg !40 + call void @UNSAFE_LOAD(ptr noundef %4), !dbg !41 + ret i32 0, !dbg !42 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!12, !13, !14, !15, !16, !17, !18} +!llvm.ident = !{!19} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memcpy_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d621b193ae8961a99834ff951305ad25") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 16, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 2) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d621b193ae8961a99834ff951305ad25") +!9 = !{!10} +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!11 = !{!0} +!12 = !{i32 7, !"Dwarf Version", i32 5} +!13 = !{i32 2, !"Debug Info Version", i32 3} +!14 = !{i32 1, !"wchar_size", i32 4} +!15 = !{i32 8, !"PIC Level", i32 2} +!16 = !{i32 7, !"PIE Level", i32 2} +!17 = !{i32 7, !"uwtable", i32 2} +!18 = !{i32 7, !"frame-pointer", i32 2} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!20 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !21, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) +!21 = !DISubroutineType(types: !22) +!22 = !{!23} +!23 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!24 = !{} +!25 = !DILocalVariable(name: "c", scope: !20, file: !2, line: 8, type: !4) +!26 = !DILocation(line: 8, column: 10, scope: !20) +!27 = !DILocalVariable(name: "p", scope: !20, file: !2, line: 9, type: !10) +!28 = !DILocation(line: 9, column: 11, scope: !20) +!29 = !DILocalVariable(name: "p_copy", scope: !20, file: !2, line: 10, type: !10) +!30 = !DILocation(line: 10, column: 11, scope: !20) +!31 = !DILocation(line: 10, column: 27, scope: !20) +!32 = !DILocation(line: 12, column: 12, scope: !20) +!33 = !DILocation(line: 12, column: 5, scope: !20) +!34 = !DILocation(line: 14, column: 15, scope: !20) +!35 = !DILocation(line: 14, column: 5, scope: !20) +!36 = !DILocation(line: 15, column: 15, scope: !20) +!37 = !DILocation(line: 15, column: 5, scope: !20) +!38 = !DILocation(line: 17, column: 10, scope: !20) +!39 = !DILocation(line: 17, column: 5, scope: !20) +!40 = !DILocation(line: 18, column: 17, scope: !20) +!41 = !DILocation(line: 18, column: 5, scope: !20) +!42 = !DILocation(line: 20, column: 5, scope: !20) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_void_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_void_ptr.c.bc new file mode 100644 index 00000000..c1ba1772 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_void_ptr.c.bc @@ -0,0 +1,117 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memcpy_void_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_void_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !23, metadata !DIExpression()), !dbg !25 + %call = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !26 + store ptr %call, ptr %p, align 8, !dbg !25 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !27, metadata !DIExpression()), !dbg !28 + %call1 = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !29 + store ptr %call1, ptr %p_copy, align 8, !dbg !28 + %0 = load ptr, ptr %p, align 8, !dbg !30 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr align 1 @.str, i64 5, i1 false), !dbg !31 + %1 = load ptr, ptr %p_copy, align 8, !dbg !32 + %2 = load ptr, ptr %p, align 8, !dbg !33 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1, ptr align 1 %2, i64 5, i1 false), !dbg !34 + %3 = load ptr, ptr %p, align 8, !dbg !35 + call void @SAFE_LOAD(ptr noundef %3), !dbg !36 + %4 = load ptr, ptr %p_copy, align 8, !dbg !37 + call void @SAFE_LOAD(ptr noundef %4), !dbg !38 + %5 = load ptr, ptr %p, align 8, !dbg !39 + call void @free(ptr noundef %5) #7, !dbg !40 + %6 = load ptr, ptr %p, align 8, !dbg !41 + call void @UNSAFE_LOAD(ptr noundef %6), !dbg !42 + %7 = load ptr, ptr %p_copy, align 8, !dbg !43 + call void @free(ptr noundef %7) #7, !dbg !44 + %8 = load ptr, ptr %p_copy, align 8, !dbg !45 + call void @UNSAFE_LOAD(ptr noundef %8), !dbg !46 + ret i32 0, !dbg !47 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 11, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memcpy_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "028308d78bd71ab8f0b728b7057c196a") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memcpy_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "028308d78bd71ab8f0b728b7057c196a") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !19, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "p", scope: !18, file: !2, line: 8, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!25 = !DILocation(line: 8, column: 11, scope: !18) +!26 = !DILocation(line: 8, column: 15, scope: !18) +!27 = !DILocalVariable(name: "p_copy", scope: !18, file: !2, line: 9, type: !24) +!28 = !DILocation(line: 9, column: 11, scope: !18) +!29 = !DILocation(line: 9, column: 20, scope: !18) +!30 = !DILocation(line: 11, column: 12, scope: !18) +!31 = !DILocation(line: 11, column: 5, scope: !18) +!32 = !DILocation(line: 12, column: 12, scope: !18) +!33 = !DILocation(line: 12, column: 20, scope: !18) +!34 = !DILocation(line: 12, column: 5, scope: !18) +!35 = !DILocation(line: 14, column: 15, scope: !18) +!36 = !DILocation(line: 14, column: 5, scope: !18) +!37 = !DILocation(line: 15, column: 15, scope: !18) +!38 = !DILocation(line: 15, column: 5, scope: !18) +!39 = !DILocation(line: 17, column: 10, scope: !18) +!40 = !DILocation(line: 17, column: 5, scope: !18) +!41 = !DILocation(line: 18, column: 17, scope: !18) +!42 = !DILocation(line: 18, column: 5, scope: !18) +!43 = !DILocation(line: 20, column: 10, scope: !18) +!44 = !DILocation(line: 20, column: 5, scope: !18) +!45 = !DILocation(line: 21, column: 17, scope: !18) +!46 = !DILocation(line: 21, column: 5, scope: !18) +!47 = !DILocation(line: 23, column: 5, scope: !18) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset.c.bc new file mode 100644 index 00000000..322bb553 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset.c.bc @@ -0,0 +1,128 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_safe_memset() #0 !dbg !13 { +entry: + %a = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %a, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !20 + store ptr %call, ptr %a, align 8, !dbg !19 + %0 = load ptr, ptr %a, align 8, !dbg !21 + %tobool = icmp ne ptr %0, null, !dbg !21 + br i1 %tobool, label %if.then, label %if.end, !dbg !23 + +if.then: ; preds = %entry + %1 = load ptr, ptr %a, align 8, !dbg !24 + call void @SAFE_LOAD(ptr noundef %1), !dbg !26 + %2 = load ptr, ptr %a, align 8, !dbg !27 + call void @llvm.memset.p0.i64(ptr align 4 %2, i8 0, i64 20, i1 false), !dbg !28 + br label %if.end, !dbg !29 + +if.end: ; preds = %if.then, %entry + %3 = load ptr, ptr %a, align 8, !dbg !30 + call void @free(ptr noundef %3) #7, !dbg !31 + ret void, !dbg !32 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_unsafe_memset() #0 !dbg !33 { +entry: + %a = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %a, metadata !34, metadata !DIExpression()), !dbg !35 + store ptr null, ptr %a, align 8, !dbg !35 + %0 = load ptr, ptr %a, align 8, !dbg !36 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !37 + %1 = load ptr, ptr %a, align 8, !dbg !38 + call void @llvm.memset.p0.i64(ptr align 4 %1, i8 0, i64 20, i1 false), !dbg !39 + ret void, !dbg !40 +} + +declare void @UNSAFE_LOAD(ptr noundef) #3 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !41 { +entry: + %retval = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @test_safe_memset(), !dbg !44 + call void @test_unsafe_memset(), !dbg !45 + ret i32 0, !dbg !46 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ec7e974d6b7caa18fba9f4750294ef5e") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "test_safe_memset", scope: !14, file: !14, line: 8, type: !15, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memset.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ec7e974d6b7caa18fba9f4750294ef5e") +!15 = !DISubroutineType(types: !16) +!16 = !{null} +!17 = !{} +!18 = !DILocalVariable(name: "a", scope: !13, file: !14, line: 9, type: !3) +!19 = !DILocation(line: 9, column: 10, scope: !13) +!20 = !DILocation(line: 9, column: 21, scope: !13) +!21 = !DILocation(line: 10, column: 9, scope: !22) +!22 = distinct !DILexicalBlock(scope: !13, file: !14, line: 10, column: 9) +!23 = !DILocation(line: 10, column: 9, scope: !13) +!24 = !DILocation(line: 11, column: 19, scope: !25) +!25 = distinct !DILexicalBlock(scope: !22, file: !14, line: 10, column: 12) +!26 = !DILocation(line: 11, column: 9, scope: !25) +!27 = !DILocation(line: 12, column: 16, scope: !25) +!28 = !DILocation(line: 12, column: 9, scope: !25) +!29 = !DILocation(line: 13, column: 5, scope: !25) +!30 = !DILocation(line: 14, column: 10, scope: !13) +!31 = !DILocation(line: 14, column: 5, scope: !13) +!32 = !DILocation(line: 15, column: 1, scope: !13) +!33 = distinct !DISubprogram(name: "test_unsafe_memset", scope: !14, file: !14, line: 17, type: !15, scopeLine: 17, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!34 = !DILocalVariable(name: "a", scope: !33, file: !14, line: 18, type: !3) +!35 = !DILocation(line: 18, column: 10, scope: !33) +!36 = !DILocation(line: 20, column: 17, scope: !33) +!37 = !DILocation(line: 20, column: 5, scope: !33) +!38 = !DILocation(line: 22, column: 12, scope: !33) +!39 = !DILocation(line: 22, column: 5, scope: !33) +!40 = !DILocation(line: 23, column: 1, scope: !33) +!41 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 25, type: !42, scopeLine: 25, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!42 = !DISubroutineType(types: !43) +!43 = !{!4} +!44 = !DILocation(line: 26, column: 5, scope: !41) +!45 = !DILocation(line: 27, column: 5, scope: !41) +!46 = !DILocation(line: 28, column: 5, scope: !41) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_char_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_char_ptr.c.bc new file mode 100644 index 00000000..56735477 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_char_ptr.c.bc @@ -0,0 +1,85 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_char_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_char_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %buf = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %buf, metadata !19, metadata !DIExpression()), !dbg !20 + %call = call noalias ptr @malloc(i64 noundef 10) #6, !dbg !21 + store ptr %call, ptr %buf, align 8, !dbg !20 + %0 = load ptr, ptr %buf, align 8, !dbg !22 + call void @llvm.memset.p0.i64(ptr align 1 %0, i8 0, i64 10, i1 false), !dbg !23 + %1 = load ptr, ptr %buf, align 8, !dbg !24 + call void @SAFE_LOAD(ptr noundef %1), !dbg !25 + %2 = load ptr, ptr %buf, align 8, !dbg !26 + call void @free(ptr noundef %2) #7, !dbg !27 + %3 = load ptr, ptr %buf, align 8, !dbg !28 + call void @UNSAFE_LOAD(ptr noundef %3), !dbg !29 + ret i32 0, !dbg !30 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d6a2c7b0d326b41f4be3ee8878e43a94") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 7, type: !15, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memset_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d6a2c7b0d326b41f4be3ee8878e43a94") +!15 = !DISubroutineType(types: !16) +!16 = !{!17} +!17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!18 = !{} +!19 = !DILocalVariable(name: "buf", scope: !13, file: !14, line: 8, type: !3) +!20 = !DILocation(line: 8, column: 11, scope: !13) +!21 = !DILocation(line: 8, column: 24, scope: !13) +!22 = !DILocation(line: 9, column: 12, scope: !13) +!23 = !DILocation(line: 9, column: 5, scope: !13) +!24 = !DILocation(line: 11, column: 15, scope: !13) +!25 = !DILocation(line: 11, column: 5, scope: !13) +!26 = !DILocation(line: 13, column: 10, scope: !13) +!27 = !DILocation(line: 13, column: 5, scope: !13) +!28 = !DILocation(line: 15, column: 17, scope: !13) +!29 = !DILocation(line: 15, column: 5, scope: !13) +!30 = !DILocation(line: 17, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_int_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_int_ptr.c.bc new file mode 100644 index 00000000..ad98573e --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_int_ptr.c.bc @@ -0,0 +1,84 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_int_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_int_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %arr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !20 + store ptr %call, ptr %arr, align 8, !dbg !19 + %0 = load ptr, ptr %arr, align 8, !dbg !21 + call void @llvm.memset.p0.i64(ptr align 4 %0, i8 0, i64 20, i1 false), !dbg !22 + %1 = load ptr, ptr %arr, align 8, !dbg !23 + call void @SAFE_LOAD(ptr noundef %1), !dbg !24 + %2 = load ptr, ptr %arr, align 8, !dbg !25 + call void @free(ptr noundef %2) #7, !dbg !26 + %3 = load ptr, ptr %arr, align 8, !dbg !27 + call void @UNSAFE_LOAD(ptr noundef %3), !dbg !28 + ret i32 0, !dbg !29 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "242732c32d319253f736a5cb0854665b") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 7, type: !15, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memset_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "242732c32d319253f736a5cb0854665b") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "arr", scope: !13, file: !14, line: 8, type: !3) +!19 = !DILocation(line: 8, column: 10, scope: !13) +!20 = !DILocation(line: 8, column: 22, scope: !13) +!21 = !DILocation(line: 9, column: 12, scope: !13) +!22 = !DILocation(line: 9, column: 5, scope: !13) +!23 = !DILocation(line: 11, column: 15, scope: !13) +!24 = !DILocation(line: 11, column: 5, scope: !13) +!25 = !DILocation(line: 13, column: 10, scope: !13) +!26 = !DILocation(line: 13, column: 5, scope: !13) +!27 = !DILocation(line: 15, column: 17, scope: !13) +!28 = !DILocation(line: 15, column: 5, scope: !13) +!29 = !DILocation(line: 17, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_null_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_null_ptr.c.bc new file mode 100644 index 00000000..4316eaf1 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_null_ptr.c.bc @@ -0,0 +1,67 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_null_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_null_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !19 + store ptr null, ptr %p, align 8, !dbg !19 + %0 = load ptr, ptr %p, align 8, !dbg !20 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !21 + %1 = load ptr, ptr %p, align 8, !dbg !22 + call void @free(ptr noundef %1) #4, !dbg !23 + %2 = load ptr, ptr %p, align 8, !dbg !24 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !25 + ret i32 0, !dbg !26 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "21bee23a5305fbd4d3dedc3b27766225") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memset_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "21bee23a5305fbd4d3dedc3b27766225") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 7, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!19 = !DILocation(line: 7, column: 11, scope: !10) +!20 = !DILocation(line: 8, column: 17, scope: !10) +!21 = !DILocation(line: 8, column: 5, scope: !10) +!22 = !DILocation(line: 10, column: 10, scope: !10) +!23 = !DILocation(line: 10, column: 5, scope: !10) +!24 = !DILocation(line: 11, column: 17, scope: !10) +!25 = !DILocation(line: 11, column: 5, scope: !10) +!26 = !DILocation(line: 13, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_stack_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_stack_ptr.c.bc new file mode 100644 index 00000000..41f5cd5b --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_stack_ptr.c.bc @@ -0,0 +1,66 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_stack_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_stack_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %c = alloca i8, align 1 + %p = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %c, metadata !16, metadata !DIExpression()), !dbg !18 + call void @llvm.dbg.declare(metadata ptr %p, metadata !19, metadata !DIExpression()), !dbg !21 + store ptr %c, ptr %p, align 8, !dbg !21 + %0 = load ptr, ptr %p, align 8, !dbg !22 + call void @llvm.memset.p0.i64(ptr align 1 %0, i8 0, i64 1, i1 false), !dbg !23 + %1 = load ptr, ptr %p, align 8, !dbg !24 + call void @SAFE_LOAD(ptr noundef %1), !dbg !25 + ret i32 0, !dbg !26 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "cd8ec6939476146e642377fdd7616f84") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 7, type: !12, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memset_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "cd8ec6939476146e642377fdd7616f84") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "c", scope: !10, file: !11, line: 8, type: !17) +!17 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!18 = !DILocation(line: 8, column: 10, scope: !10) +!19 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 9, type: !20) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !17, size: 64) +!21 = !DILocation(line: 9, column: 11, scope: !10) +!22 = !DILocation(line: 10, column: 12, scope: !10) +!23 = !DILocation(line: 10, column: 5, scope: !10) +!24 = !DILocation(line: 12, column: 15, scope: !10) +!25 = !DILocation(line: 12, column: 5, scope: !10) +!26 = !DILocation(line: 17, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_void_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_void_ptr.c.bc new file mode 100644 index 00000000..009f042f --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_void_ptr.c.bc @@ -0,0 +1,83 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_memset_void_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_void_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !18 + %call = call noalias ptr @malloc(i64 noundef 20) #6, !dbg !19 + store ptr %call, ptr %p, align 8, !dbg !18 + %0 = load ptr, ptr %p, align 8, !dbg !20 + call void @llvm.memset.p0.i64(ptr align 1 %0, i8 0, i64 20, i1 false), !dbg !21 + %1 = load ptr, ptr %p, align 8, !dbg !22 + call void @SAFE_LOAD(ptr noundef %1), !dbg !23 + %2 = load ptr, ptr %p, align 8, !dbg !24 + call void @free(ptr noundef %2) #7, !dbg !25 + %3 = load ptr, ptr %p, align 8, !dbg !26 + call void @UNSAFE_LOAD(ptr noundef %3), !dbg !27 + ret i32 0, !dbg !28 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_memset_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "b29bb5ad70e766f3836d316f6b1ea495") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 11, type: !12, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_memset_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "b29bb5ad70e766f3836d316f6b1ea495") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 12, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!18 = !DILocation(line: 12, column: 11, scope: !10) +!19 = !DILocation(line: 12, column: 15, scope: !10) +!20 = !DILocation(line: 13, column: 12, scope: !10) +!21 = !DILocation(line: 13, column: 5, scope: !10) +!22 = !DILocation(line: 15, column: 15, scope: !10) +!23 = !DILocation(line: 15, column: 5, scope: !10) +!24 = !DILocation(line: 17, column: 10, scope: !10) +!25 = !DILocation(line: 17, column: 5, scope: !10) +!26 = !DILocation(line: 19, column: 17, scope: !10) +!27 = !DILocation(line: 19, column: 5, scope: !10) +!28 = !DILocation(line: 21, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_char_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_char_ptr.c.bc new file mode 100644 index 00000000..a4c1e360 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_char_ptr.c.bc @@ -0,0 +1,133 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_char_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_char_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [6 x i8] c"World\00", align 1, !dbg !7 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %buf = alloca ptr, align 8 + %buf_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %buf, metadata !27, metadata !DIExpression()), !dbg !28 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !29 + store ptr %call, ptr %buf, align 8, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %buf_copy, metadata !30, metadata !DIExpression()), !dbg !31 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !32 + store ptr %call1, ptr %buf_copy, align 8, !dbg !31 + %0 = load ptr, ptr %buf, align 8, !dbg !33 + %call2 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !34 + %1 = load ptr, ptr %buf_copy, align 8, !dbg !35 + %call3 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str.1) #6, !dbg !36 + %2 = load ptr, ptr %buf, align 8, !dbg !37 + %3 = load ptr, ptr %buf_copy, align 8, !dbg !38 + %call4 = call ptr @strcat(ptr noundef %2, ptr noundef %3) #6, !dbg !39 + %4 = load ptr, ptr %buf_copy, align 8, !dbg !40 + %5 = load ptr, ptr %buf, align 8, !dbg !41 + %call5 = call ptr @strcat(ptr noundef %4, ptr noundef %5) #6, !dbg !42 + %6 = load ptr, ptr %buf, align 8, !dbg !43 + call void @SAFE_LOAD(ptr noundef %6), !dbg !44 + %7 = load ptr, ptr %buf_copy, align 8, !dbg !45 + call void @SAFE_LOAD(ptr noundef %7), !dbg !46 + %8 = load ptr, ptr %buf, align 8, !dbg !47 + call void @free(ptr noundef %8) #6, !dbg !48 + %9 = load ptr, ptr %buf, align 8, !dbg !49 + call void @UNSAFE_LOAD(ptr noundef %9), !dbg !50 + %10 = load ptr, ptr %buf_copy, align 8, !dbg !51 + call void @free(ptr noundef %10) #6, !dbg !52 + %11 = load ptr, ptr %buf_copy, align 8, !dbg !53 + call void @UNSAFE_LOAD(ptr noundef %11), !dbg !54 + ret i32 0, !dbg !55 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +; Function Attrs: nounwind +declare ptr @strcat(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!9} +!llvm.module.flags = !{!14, !15, !16, !17, !18, !19, !20} +!llvm.ident = !{!21} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 11, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcat_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f43e86fecdb3d10c07875e213860f580") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !11, globals: !13, splitDebugInlining: false, nameTableKind: None) +!10 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f43e86fecdb3d10c07875e213860f580") +!11 = !{!12} +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!13 = !{!0, !7} +!14 = !{i32 7, !"Dwarf Version", i32 5} +!15 = !{i32 2, !"Debug Info Version", i32 3} +!16 = !{i32 1, !"wchar_size", i32 4} +!17 = !{i32 8, !"PIC Level", i32 2} +!18 = !{i32 7, !"PIE Level", i32 2} +!19 = !{i32 7, !"uwtable", i32 2} +!20 = !{i32 7, !"frame-pointer", i32 2} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!22 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !23, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !26) +!23 = !DISubroutineType(types: !24) +!24 = !{!25} +!25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!26 = !{} +!27 = !DILocalVariable(name: "buf", scope: !22, file: !2, line: 8, type: !12) +!28 = !DILocation(line: 8, column: 11, scope: !22) +!29 = !DILocation(line: 8, column: 24, scope: !22) +!30 = !DILocalVariable(name: "buf_copy", scope: !22, file: !2, line: 9, type: !12) +!31 = !DILocation(line: 9, column: 11, scope: !22) +!32 = !DILocation(line: 9, column: 29, scope: !22) +!33 = !DILocation(line: 11, column: 12, scope: !22) +!34 = !DILocation(line: 11, column: 5, scope: !22) +!35 = !DILocation(line: 12, column: 12, scope: !22) +!36 = !DILocation(line: 12, column: 5, scope: !22) +!37 = !DILocation(line: 14, column: 12, scope: !22) +!38 = !DILocation(line: 14, column: 17, scope: !22) +!39 = !DILocation(line: 14, column: 5, scope: !22) +!40 = !DILocation(line: 15, column: 12, scope: !22) +!41 = !DILocation(line: 15, column: 22, scope: !22) +!42 = !DILocation(line: 15, column: 5, scope: !22) +!43 = !DILocation(line: 17, column: 15, scope: !22) +!44 = !DILocation(line: 17, column: 5, scope: !22) +!45 = !DILocation(line: 18, column: 15, scope: !22) +!46 = !DILocation(line: 18, column: 5, scope: !22) +!47 = !DILocation(line: 20, column: 10, scope: !22) +!48 = !DILocation(line: 20, column: 5, scope: !22) +!49 = !DILocation(line: 21, column: 17, scope: !22) +!50 = !DILocation(line: 21, column: 5, scope: !22) +!51 = !DILocation(line: 23, column: 10, scope: !22) +!52 = !DILocation(line: 23, column: 5, scope: !22) +!53 = !DILocation(line: 24, column: 17, scope: !22) +!54 = !DILocation(line: 24, column: 5, scope: !22) +!55 = !DILocation(line: 26, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_int_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_int_ptr.c.bc new file mode 100644 index 00000000..b3eda84a --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_int_ptr.c.bc @@ -0,0 +1,151 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_int_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_int_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !15 { +entry: + %retval = alloca i32, align 4 + %arr = alloca ptr, align 8 + %arr_copy = alloca ptr, align 8 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !20, metadata !DIExpression()), !dbg !21 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !22 + store ptr %call, ptr %arr, align 8, !dbg !21 + call void @llvm.dbg.declare(metadata ptr %arr_copy, metadata !23, metadata !DIExpression()), !dbg !24 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !25 + store ptr %call1, ptr %arr_copy, align 8, !dbg !24 + call void @llvm.dbg.declare(metadata ptr %i, metadata !26, metadata !DIExpression()), !dbg !28 + store i32 0, ptr %i, align 4, !dbg !28 + br label %for.cond, !dbg !29 + +for.cond: ; preds = %for.inc, %entry + %0 = load i32, ptr %i, align 4, !dbg !30 + %cmp = icmp slt i32 %0, 5, !dbg !32 + br i1 %cmp, label %for.body, label %for.end, !dbg !33 + +for.body: ; preds = %for.cond + %1 = load i32, ptr %i, align 4, !dbg !34 + %2 = load ptr, ptr %arr, align 8, !dbg !36 + %3 = load i32, ptr %i, align 4, !dbg !37 + %idxprom = sext i32 %3 to i64, !dbg !36 + %arrayidx = getelementptr inbounds i32, ptr %2, i64 %idxprom, !dbg !36 + store i32 %1, ptr %arrayidx, align 4, !dbg !38 + br label %for.inc, !dbg !39 + +for.inc: ; preds = %for.body + %4 = load i32, ptr %i, align 4, !dbg !40 + %inc = add nsw i32 %4, 1, !dbg !40 + store i32 %inc, ptr %i, align 4, !dbg !40 + br label %for.cond, !dbg !41, !llvm.loop !42 + +for.end: ; preds = %for.cond + %5 = load ptr, ptr %arr_copy, align 8, !dbg !45 + %6 = load ptr, ptr %arr, align 8, !dbg !46 + %call2 = call ptr @strcat(ptr noundef %5, ptr noundef %6) #6, !dbg !47 + %7 = load ptr, ptr %arr, align 8, !dbg !48 + call void @SAFE_LOAD(ptr noundef %7), !dbg !49 + %8 = load ptr, ptr %arr_copy, align 8, !dbg !50 + call void @SAFE_LOAD(ptr noundef %8), !dbg !51 + %9 = load ptr, ptr %arr, align 8, !dbg !52 + call void @free(ptr noundef %9) #6, !dbg !53 + %10 = load ptr, ptr %arr, align 8, !dbg !54 + call void @UNSAFE_LOAD(ptr noundef %10), !dbg !55 + %11 = load ptr, ptr %arr_copy, align 8, !dbg !56 + call void @free(ptr noundef %11) #6, !dbg !57 + %12 = load ptr, ptr %arr_copy, align 8, !dbg !58 + call void @UNSAFE_LOAD(ptr noundef %12), !dbg !59 + ret i32 0, !dbg !60 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcat(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13} +!llvm.ident = !{!14} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "bcba2a4a73b6f7efaf51df8ea03828ad") +!2 = !{!3, !5} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64) +!6 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!7 = !{i32 7, !"Dwarf Version", i32 5} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{i32 1, !"wchar_size", i32 4} +!10 = !{i32 8, !"PIC Level", i32 2} +!11 = !{i32 7, !"PIE Level", i32 2} +!12 = !{i32 7, !"uwtable", i32 2} +!13 = !{i32 7, !"frame-pointer", i32 2} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!15 = distinct !DISubprogram(name: "main", scope: !16, file: !16, line: 7, type: !17, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) +!16 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcat_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "bcba2a4a73b6f7efaf51df8ea03828ad") +!17 = !DISubroutineType(types: !18) +!18 = !{!4} +!19 = !{} +!20 = !DILocalVariable(name: "arr", scope: !15, file: !16, line: 8, type: !3) +!21 = !DILocation(line: 8, column: 10, scope: !15) +!22 = !DILocation(line: 8, column: 22, scope: !15) +!23 = !DILocalVariable(name: "arr_copy", scope: !15, file: !16, line: 9, type: !3) +!24 = !DILocation(line: 9, column: 10, scope: !15) +!25 = !DILocation(line: 9, column: 27, scope: !15) +!26 = !DILocalVariable(name: "i", scope: !27, file: !16, line: 11, type: !4) +!27 = distinct !DILexicalBlock(scope: !15, file: !16, line: 11, column: 5) +!28 = !DILocation(line: 11, column: 14, scope: !27) +!29 = !DILocation(line: 11, column: 10, scope: !27) +!30 = !DILocation(line: 11, column: 21, scope: !31) +!31 = distinct !DILexicalBlock(scope: !27, file: !16, line: 11, column: 5) +!32 = !DILocation(line: 11, column: 23, scope: !31) +!33 = !DILocation(line: 11, column: 5, scope: !27) +!34 = !DILocation(line: 12, column: 18, scope: !35) +!35 = distinct !DILexicalBlock(scope: !31, file: !16, line: 11, column: 33) +!36 = !DILocation(line: 12, column: 9, scope: !35) +!37 = !DILocation(line: 12, column: 13, scope: !35) +!38 = !DILocation(line: 12, column: 16, scope: !35) +!39 = !DILocation(line: 13, column: 5, scope: !35) +!40 = !DILocation(line: 11, column: 29, scope: !31) +!41 = !DILocation(line: 11, column: 5, scope: !31) +!42 = distinct !{!42, !33, !43, !44} +!43 = !DILocation(line: 13, column: 5, scope: !27) +!44 = !{!"llvm.loop.mustprogress"} +!45 = !DILocation(line: 15, column: 19, scope: !15) +!46 = !DILocation(line: 15, column: 36, scope: !15) +!47 = !DILocation(line: 15, column: 5, scope: !15) +!48 = !DILocation(line: 17, column: 15, scope: !15) +!49 = !DILocation(line: 17, column: 5, scope: !15) +!50 = !DILocation(line: 18, column: 15, scope: !15) +!51 = !DILocation(line: 18, column: 5, scope: !15) +!52 = !DILocation(line: 20, column: 10, scope: !15) +!53 = !DILocation(line: 20, column: 5, scope: !15) +!54 = !DILocation(line: 21, column: 17, scope: !15) +!55 = !DILocation(line: 21, column: 5, scope: !15) +!56 = !DILocation(line: 23, column: 10, scope: !15) +!57 = !DILocation(line: 23, column: 5, scope: !15) +!58 = !DILocation(line: 24, column: 17, scope: !15) +!59 = !DILocation(line: 24, column: 5, scope: !15) +!60 = !DILocation(line: 26, column: 5, scope: !15) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_null_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_null_ptr.c.bc new file mode 100644 index 00000000..001a945e --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_null_ptr.c.bc @@ -0,0 +1,107 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_null_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_null_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !23, metadata !DIExpression()), !dbg !25 + store ptr null, ptr %p, align 8, !dbg !25 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !26, metadata !DIExpression()), !dbg !27 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !28 + store ptr %call, ptr %p_copy, align 8, !dbg !27 + %0 = load ptr, ptr %p_copy, align 8, !dbg !29 + %call1 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !30 + %1 = load ptr, ptr %p, align 8, !dbg !31 + %2 = load ptr, ptr %p_copy, align 8, !dbg !32 + %call2 = call ptr @strcat(ptr noundef %1, ptr noundef %2) #6, !dbg !33 + %3 = load ptr, ptr %p_copy, align 8, !dbg !34 + call void @free(ptr noundef %3) #6, !dbg !35 + %4 = load ptr, ptr %p_copy, align 8, !dbg !36 + call void @UNSAFE_LOAD(ptr noundef %4), !dbg !37 + %5 = load ptr, ptr %p, align 8, !dbg !38 + call void @free(ptr noundef %5) #6, !dbg !39 + %6 = load ptr, ptr %p, align 8, !dbg !40 + call void @UNSAFE_LOAD(ptr noundef %6), !dbg !41 + ret i32 0, !dbg !42 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +; Function Attrs: nounwind +declare ptr @strcat(ptr noundef, ptr noundef) #3 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 10, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcat_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5e52dee521a275b2aab97a6b9fbdde7d") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5e52dee521a275b2aab97a6b9fbdde7d") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "p", scope: !18, file: !2, line: 7, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!25 = !DILocation(line: 7, column: 11, scope: !18) +!26 = !DILocalVariable(name: "p_copy", scope: !18, file: !2, line: 8, type: !24) +!27 = !DILocation(line: 8, column: 11, scope: !18) +!28 = !DILocation(line: 8, column: 20, scope: !18) +!29 = !DILocation(line: 10, column: 12, scope: !18) +!30 = !DILocation(line: 10, column: 5, scope: !18) +!31 = !DILocation(line: 11, column: 12, scope: !18) +!32 = !DILocation(line: 11, column: 15, scope: !18) +!33 = !DILocation(line: 11, column: 5, scope: !18) +!34 = !DILocation(line: 13, column: 10, scope: !18) +!35 = !DILocation(line: 13, column: 5, scope: !18) +!36 = !DILocation(line: 14, column: 17, scope: !18) +!37 = !DILocation(line: 14, column: 5, scope: !18) +!38 = !DILocation(line: 16, column: 10, scope: !18) +!39 = !DILocation(line: 16, column: 5, scope: !18) +!40 = !DILocation(line: 17, column: 17, scope: !18) +!41 = !DILocation(line: 17, column: 5, scope: !18) +!42 = !DILocation(line: 19, column: 5, scope: !18) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_stack_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_stack_ptr.c.bc new file mode 100644 index 00000000..e57ec99c --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_stack_ptr.c.bc @@ -0,0 +1,115 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_stack_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_stack_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [2 x i8] c"A\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [2 x i8] c"B\00", align 1, !dbg !7 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %c = alloca i8, align 1 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %c, metadata !27, metadata !DIExpression()), !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p, metadata !29, metadata !DIExpression()), !dbg !30 + store ptr %c, ptr %p, align 8, !dbg !30 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !31, metadata !DIExpression()), !dbg !32 + %call = call noalias ptr @malloc(i64 noundef 1) #5, !dbg !33 + store ptr %call, ptr %p_copy, align 8, !dbg !32 + %0 = load ptr, ptr %p_copy, align 8, !dbg !34 + %call1 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !35 + %1 = load ptr, ptr %p_copy, align 8, !dbg !36 + %call2 = call ptr @strcat(ptr noundef %1, ptr noundef @.str.1) #6, !dbg !37 + %2 = load ptr, ptr %p, align 8, !dbg !38 + call void @SAFE_LOAD(ptr noundef %2), !dbg !39 + %3 = load ptr, ptr %p_copy, align 8, !dbg !40 + call void @SAFE_LOAD(ptr noundef %3), !dbg !41 + %4 = load ptr, ptr %p_copy, align 8, !dbg !42 + call void @free(ptr noundef %4) #6, !dbg !43 + %5 = load ptr, ptr %p_copy, align 8, !dbg !44 + call void @UNSAFE_LOAD(ptr noundef %5), !dbg !45 + ret i32 0, !dbg !46 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +; Function Attrs: nounwind +declare ptr @strcat(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!9} +!llvm.module.flags = !{!14, !15, !16, !17, !18, !19, !20} +!llvm.ident = !{!21} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcat_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5db31ce333aa851473c57c62c000542a") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 16, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 2) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 13, type: !3, isLocal: true, isDefinition: true) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !11, globals: !13, splitDebugInlining: false, nameTableKind: None) +!10 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5db31ce333aa851473c57c62c000542a") +!11 = !{!12} +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!13 = !{!0, !7} +!14 = !{i32 7, !"Dwarf Version", i32 5} +!15 = !{i32 2, !"Debug Info Version", i32 3} +!16 = !{i32 1, !"wchar_size", i32 4} +!17 = !{i32 8, !"PIC Level", i32 2} +!18 = !{i32 7, !"PIE Level", i32 2} +!19 = !{i32 7, !"uwtable", i32 2} +!20 = !{i32 7, !"frame-pointer", i32 2} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!22 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !23, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !26) +!23 = !DISubroutineType(types: !24) +!24 = !{!25} +!25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!26 = !{} +!27 = !DILocalVariable(name: "c", scope: !22, file: !2, line: 8, type: !4) +!28 = !DILocation(line: 8, column: 10, scope: !22) +!29 = !DILocalVariable(name: "p", scope: !22, file: !2, line: 9, type: !12) +!30 = !DILocation(line: 9, column: 11, scope: !22) +!31 = !DILocalVariable(name: "p_copy", scope: !22, file: !2, line: 10, type: !12) +!32 = !DILocation(line: 10, column: 11, scope: !22) +!33 = !DILocation(line: 10, column: 27, scope: !22) +!34 = !DILocation(line: 12, column: 12, scope: !22) +!35 = !DILocation(line: 12, column: 5, scope: !22) +!36 = !DILocation(line: 13, column: 12, scope: !22) +!37 = !DILocation(line: 13, column: 5, scope: !22) +!38 = !DILocation(line: 15, column: 15, scope: !22) +!39 = !DILocation(line: 15, column: 5, scope: !22) +!40 = !DILocation(line: 16, column: 15, scope: !22) +!41 = !DILocation(line: 16, column: 5, scope: !22) +!42 = !DILocation(line: 18, column: 10, scope: !22) +!43 = !DILocation(line: 18, column: 5, scope: !22) +!44 = !DILocation(line: 19, column: 17, scope: !22) +!45 = !DILocation(line: 19, column: 5, scope: !22) +!46 = !DILocation(line: 21, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_void_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_void_ptr.c.bc new file mode 100644 index 00000000..207a08d3 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_void_ptr.c.bc @@ -0,0 +1,134 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcat_void_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_void_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [6 x i8] c"World\00", align 1, !dbg !7 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !27, metadata !DIExpression()), !dbg !29 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !30 + store ptr %call, ptr %p, align 8, !dbg !29 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !31, metadata !DIExpression()), !dbg !32 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !33 + store ptr %call1, ptr %p_copy, align 8, !dbg !32 + %0 = load ptr, ptr %p, align 8, !dbg !34 + %call2 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !35 + %1 = load ptr, ptr %p_copy, align 8, !dbg !36 + %call3 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str.1) #6, !dbg !37 + %2 = load ptr, ptr %p, align 8, !dbg !38 + %3 = load ptr, ptr %p_copy, align 8, !dbg !39 + %call4 = call ptr @strcat(ptr noundef %2, ptr noundef %3) #6, !dbg !40 + %4 = load ptr, ptr %p_copy, align 8, !dbg !41 + %5 = load ptr, ptr %p, align 8, !dbg !42 + %call5 = call ptr @strcat(ptr noundef %4, ptr noundef %5) #6, !dbg !43 + %6 = load ptr, ptr %p, align 8, !dbg !44 + call void @SAFE_LOAD(ptr noundef %6), !dbg !45 + %7 = load ptr, ptr %p_copy, align 8, !dbg !46 + call void @SAFE_LOAD(ptr noundef %7), !dbg !47 + %8 = load ptr, ptr %p, align 8, !dbg !48 + call void @free(ptr noundef %8) #6, !dbg !49 + %9 = load ptr, ptr %p, align 8, !dbg !50 + call void @UNSAFE_LOAD(ptr noundef %9), !dbg !51 + %10 = load ptr, ptr %p_copy, align 8, !dbg !52 + call void @free(ptr noundef %10) #6, !dbg !53 + %11 = load ptr, ptr %p_copy, align 8, !dbg !54 + call void @UNSAFE_LOAD(ptr noundef %11), !dbg !55 + ret i32 0, !dbg !56 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +; Function Attrs: nounwind +declare ptr @strcat(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!9} +!llvm.module.flags = !{!14, !15, !16, !17, !18, !19, !20} +!llvm.ident = !{!21} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 11, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcat_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "261f6ccea75e9c90e84a8824c4f93c0f") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !11, globals: !13, splitDebugInlining: false, nameTableKind: None) +!10 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcat_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "261f6ccea75e9c90e84a8824c4f93c0f") +!11 = !{!12} +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!13 = !{!0, !7} +!14 = !{i32 7, !"Dwarf Version", i32 5} +!15 = !{i32 2, !"Debug Info Version", i32 3} +!16 = !{i32 1, !"wchar_size", i32 4} +!17 = !{i32 8, !"PIC Level", i32 2} +!18 = !{i32 7, !"PIE Level", i32 2} +!19 = !{i32 7, !"uwtable", i32 2} +!20 = !{i32 7, !"frame-pointer", i32 2} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!22 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !23, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !26) +!23 = !DISubroutineType(types: !24) +!24 = !{!25} +!25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!26 = !{} +!27 = !DILocalVariable(name: "p", scope: !22, file: !2, line: 8, type: !28) +!28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!29 = !DILocation(line: 8, column: 11, scope: !22) +!30 = !DILocation(line: 8, column: 15, scope: !22) +!31 = !DILocalVariable(name: "p_copy", scope: !22, file: !2, line: 9, type: !28) +!32 = !DILocation(line: 9, column: 11, scope: !22) +!33 = !DILocation(line: 9, column: 20, scope: !22) +!34 = !DILocation(line: 11, column: 19, scope: !22) +!35 = !DILocation(line: 11, column: 5, scope: !22) +!36 = !DILocation(line: 12, column: 19, scope: !22) +!37 = !DILocation(line: 12, column: 5, scope: !22) +!38 = !DILocation(line: 14, column: 19, scope: !22) +!39 = !DILocation(line: 14, column: 29, scope: !22) +!40 = !DILocation(line: 14, column: 5, scope: !22) +!41 = !DILocation(line: 15, column: 19, scope: !22) +!42 = !DILocation(line: 15, column: 34, scope: !22) +!43 = !DILocation(line: 15, column: 5, scope: !22) +!44 = !DILocation(line: 17, column: 15, scope: !22) +!45 = !DILocation(line: 17, column: 5, scope: !22) +!46 = !DILocation(line: 18, column: 15, scope: !22) +!47 = !DILocation(line: 18, column: 5, scope: !22) +!48 = !DILocation(line: 20, column: 10, scope: !22) +!49 = !DILocation(line: 20, column: 5, scope: !22) +!50 = !DILocation(line: 21, column: 17, scope: !22) +!51 = !DILocation(line: 21, column: 5, scope: !22) +!52 = !DILocation(line: 23, column: 10, scope: !22) +!53 = !DILocation(line: 23, column: 5, scope: !22) +!54 = !DILocation(line: 24, column: 17, scope: !22) +!55 = !DILocation(line: 24, column: 5, scope: !22) +!56 = !DILocation(line: 26, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy.c.bc new file mode 100644 index 00000000..a6e1e59b --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy.c.bc @@ -0,0 +1,198 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_safe_strcpy() #0 !dbg !20 { +entry: + %a = alloca ptr, align 8 + %b = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %a, metadata !24, metadata !DIExpression()), !dbg !25 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !26 + store ptr %call, ptr %a, align 8, !dbg !25 + call void @llvm.dbg.declare(metadata ptr %b, metadata !27, metadata !DIExpression()), !dbg !28 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !29 + store ptr %call1, ptr %b, align 8, !dbg !28 + %0 = load ptr, ptr %a, align 8, !dbg !30 + %tobool = icmp ne ptr %0, null, !dbg !30 + br i1 %tobool, label %land.lhs.true, label %if.end, !dbg !32 + +land.lhs.true: ; preds = %entry + %1 = load ptr, ptr %b, align 8, !dbg !33 + %tobool2 = icmp ne ptr %1, null, !dbg !33 + br i1 %tobool2, label %if.then, label %if.end, !dbg !34 + +if.then: ; preds = %land.lhs.true + %2 = load ptr, ptr %b, align 8, !dbg !35 + %call3 = call ptr @strcpy(ptr noundef %2, ptr noundef @.str) #6, !dbg !37 + %3 = load ptr, ptr %a, align 8, !dbg !38 + call void @SAFE_LOAD(ptr noundef %3), !dbg !39 + %4 = load ptr, ptr %b, align 8, !dbg !40 + call void @SAFE_LOAD(ptr noundef %4), !dbg !41 + %5 = load ptr, ptr %a, align 8, !dbg !42 + %6 = load ptr, ptr %b, align 8, !dbg !43 + %call4 = call ptr @strcpy(ptr noundef %5, ptr noundef %6) #6, !dbg !44 + br label %if.end, !dbg !45 + +if.end: ; preds = %if.then, %land.lhs.true, %entry + %7 = load ptr, ptr %a, align 8, !dbg !46 + call void @free(ptr noundef %7) #6, !dbg !47 + %8 = load ptr, ptr %b, align 8, !dbg !48 + call void @free(ptr noundef %8) #6, !dbg !49 + ret void, !dbg !50 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_unsafe_strcpy() #0 !dbg !51 { +entry: + %a = alloca ptr, align 8 + %b = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %a, metadata !52, metadata !DIExpression()), !dbg !53 + store ptr null, ptr %a, align 8, !dbg !53 + call void @llvm.dbg.declare(metadata ptr %b, metadata !54, metadata !DIExpression()), !dbg !55 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !56 + store ptr %call, ptr %b, align 8, !dbg !55 + %0 = load ptr, ptr %b, align 8, !dbg !57 + %tobool = icmp ne ptr %0, null, !dbg !57 + br i1 %tobool, label %if.then, label %if.end, !dbg !59 + +if.then: ; preds = %entry + %1 = load ptr, ptr %b, align 8, !dbg !60 + %call1 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str) #6, !dbg !62 + %2 = load ptr, ptr %a, align 8, !dbg !63 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !64 + %3 = load ptr, ptr %b, align 8, !dbg !65 + call void @SAFE_LOAD(ptr noundef %3), !dbg !66 + %4 = load ptr, ptr %a, align 8, !dbg !67 + %5 = load ptr, ptr %b, align 8, !dbg !68 + %call2 = call ptr @strcpy(ptr noundef %4, ptr noundef %5) #6, !dbg !69 + br label %if.end, !dbg !70 + +if.end: ; preds = %if.then, %entry + %6 = load ptr, ptr %b, align 8, !dbg !71 + call void @free(ptr noundef %6) #6, !dbg !72 + ret void, !dbg !73 +} + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !74 { +entry: + %retval = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @test_safe_strcpy(), !dbg !78 + call void @test_unsafe_strcpy(), !dbg !79 + ret i32 0, !dbg !80 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!12, !13, !14, !15, !16, !17, !18} +!llvm.ident = !{!19} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcpy.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "fe9b35bc4c4c41c988d3e766dcb04629") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "fe9b35bc4c4c41c988d3e766dcb04629") +!9 = !{!10} +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!11 = !{!0} +!12 = !{i32 7, !"Dwarf Version", i32 5} +!13 = !{i32 2, !"Debug Info Version", i32 3} +!14 = !{i32 1, !"wchar_size", i32 4} +!15 = !{i32 8, !"PIC Level", i32 2} +!16 = !{i32 7, !"PIE Level", i32 2} +!17 = !{i32 7, !"uwtable", i32 2} +!18 = !{i32 7, !"frame-pointer", i32 2} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!20 = distinct !DISubprogram(name: "test_safe_strcpy", scope: !2, file: !2, line: 8, type: !21, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) +!21 = !DISubroutineType(types: !22) +!22 = !{null} +!23 = !{} +!24 = !DILocalVariable(name: "a", scope: !20, file: !2, line: 9, type: !10) +!25 = !DILocation(line: 9, column: 11, scope: !20) +!26 = !DILocation(line: 9, column: 23, scope: !20) +!27 = !DILocalVariable(name: "b", scope: !20, file: !2, line: 10, type: !10) +!28 = !DILocation(line: 10, column: 11, scope: !20) +!29 = !DILocation(line: 10, column: 23, scope: !20) +!30 = !DILocation(line: 11, column: 9, scope: !31) +!31 = distinct !DILexicalBlock(scope: !20, file: !2, line: 11, column: 9) +!32 = !DILocation(line: 11, column: 11, scope: !31) +!33 = !DILocation(line: 11, column: 14, scope: !31) +!34 = !DILocation(line: 11, column: 9, scope: !20) +!35 = !DILocation(line: 12, column: 16, scope: !36) +!36 = distinct !DILexicalBlock(scope: !31, file: !2, line: 11, column: 17) +!37 = !DILocation(line: 12, column: 9, scope: !36) +!38 = !DILocation(line: 15, column: 19, scope: !36) +!39 = !DILocation(line: 15, column: 9, scope: !36) +!40 = !DILocation(line: 16, column: 19, scope: !36) +!41 = !DILocation(line: 16, column: 9, scope: !36) +!42 = !DILocation(line: 18, column: 16, scope: !36) +!43 = !DILocation(line: 18, column: 19, scope: !36) +!44 = !DILocation(line: 18, column: 9, scope: !36) +!45 = !DILocation(line: 19, column: 5, scope: !36) +!46 = !DILocation(line: 20, column: 10, scope: !20) +!47 = !DILocation(line: 20, column: 5, scope: !20) +!48 = !DILocation(line: 21, column: 10, scope: !20) +!49 = !DILocation(line: 21, column: 5, scope: !20) +!50 = !DILocation(line: 22, column: 1, scope: !20) +!51 = distinct !DISubprogram(name: "test_unsafe_strcpy", scope: !2, file: !2, line: 24, type: !21, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) +!52 = !DILocalVariable(name: "a", scope: !51, file: !2, line: 25, type: !10) +!53 = !DILocation(line: 25, column: 11, scope: !51) +!54 = !DILocalVariable(name: "b", scope: !51, file: !2, line: 26, type: !10) +!55 = !DILocation(line: 26, column: 11, scope: !51) +!56 = !DILocation(line: 26, column: 23, scope: !51) +!57 = !DILocation(line: 27, column: 9, scope: !58) +!58 = distinct !DILexicalBlock(scope: !51, file: !2, line: 27, column: 9) +!59 = !DILocation(line: 27, column: 9, scope: !51) +!60 = !DILocation(line: 28, column: 16, scope: !61) +!61 = distinct !DILexicalBlock(scope: !58, file: !2, line: 27, column: 12) +!62 = !DILocation(line: 28, column: 9, scope: !61) +!63 = !DILocation(line: 31, column: 21, scope: !61) +!64 = !DILocation(line: 31, column: 9, scope: !61) +!65 = !DILocation(line: 32, column: 19, scope: !61) +!66 = !DILocation(line: 32, column: 9, scope: !61) +!67 = !DILocation(line: 34, column: 16, scope: !61) +!68 = !DILocation(line: 34, column: 19, scope: !61) +!69 = !DILocation(line: 34, column: 9, scope: !61) +!70 = !DILocation(line: 35, column: 5, scope: !61) +!71 = !DILocation(line: 36, column: 10, scope: !51) +!72 = !DILocation(line: 36, column: 5, scope: !51) +!73 = !DILocation(line: 37, column: 1, scope: !51) +!74 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 39, type: !75, scopeLine: 39, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !23) +!75 = !DISubroutineType(types: !76) +!76 = !{!77} +!77 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!78 = !DILocation(line: 40, column: 5, scope: !74) +!79 = !DILocation(line: 41, column: 5, scope: !74) +!80 = !DILocation(line: 42, column: 5, scope: !74) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_char_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_char_ptr.c.bc new file mode 100644 index 00000000..8ca7170b --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_char_ptr.c.bc @@ -0,0 +1,130 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_char_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_char_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [6 x i8] c"World\00", align 1, !dbg !7 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %buf = alloca ptr, align 8 + %buf_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %buf, metadata !27, metadata !DIExpression()), !dbg !28 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !29 + store ptr %call, ptr %buf, align 8, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %buf_copy, metadata !30, metadata !DIExpression()), !dbg !31 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !32 + store ptr %call1, ptr %buf_copy, align 8, !dbg !31 + %0 = load ptr, ptr %buf, align 8, !dbg !33 + %call2 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !34 + %1 = load ptr, ptr %buf_copy, align 8, !dbg !35 + %call3 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str.1) #6, !dbg !36 + %2 = load ptr, ptr %buf, align 8, !dbg !37 + %3 = load ptr, ptr %buf_copy, align 8, !dbg !38 + %call4 = call ptr @strcpy(ptr noundef %2, ptr noundef %3) #6, !dbg !39 + %4 = load ptr, ptr %buf_copy, align 8, !dbg !40 + %5 = load ptr, ptr %buf, align 8, !dbg !41 + %call5 = call ptr @strcpy(ptr noundef %4, ptr noundef %5) #6, !dbg !42 + %6 = load ptr, ptr %buf, align 8, !dbg !43 + call void @SAFE_LOAD(ptr noundef %6), !dbg !44 + %7 = load ptr, ptr %buf_copy, align 8, !dbg !45 + call void @SAFE_LOAD(ptr noundef %7), !dbg !46 + %8 = load ptr, ptr %buf, align 8, !dbg !47 + call void @free(ptr noundef %8) #6, !dbg !48 + %9 = load ptr, ptr %buf, align 8, !dbg !49 + call void @UNSAFE_LOAD(ptr noundef %9), !dbg !50 + %10 = load ptr, ptr %buf_copy, align 8, !dbg !51 + call void @free(ptr noundef %10) #6, !dbg !52 + %11 = load ptr, ptr %buf_copy, align 8, !dbg !53 + call void @UNSAFE_LOAD(ptr noundef %11), !dbg !54 + ret i32 0, !dbg !55 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!9} +!llvm.module.flags = !{!14, !15, !16, !17, !18, !19, !20} +!llvm.ident = !{!21} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 11, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcpy_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "6d76694a4e0e2467b27cc55f90105b22") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !11, globals: !13, splitDebugInlining: false, nameTableKind: None) +!10 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_char_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "6d76694a4e0e2467b27cc55f90105b22") +!11 = !{!12} +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!13 = !{!0, !7} +!14 = !{i32 7, !"Dwarf Version", i32 5} +!15 = !{i32 2, !"Debug Info Version", i32 3} +!16 = !{i32 1, !"wchar_size", i32 4} +!17 = !{i32 8, !"PIC Level", i32 2} +!18 = !{i32 7, !"PIE Level", i32 2} +!19 = !{i32 7, !"uwtable", i32 2} +!20 = !{i32 7, !"frame-pointer", i32 2} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!22 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !23, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !26) +!23 = !DISubroutineType(types: !24) +!24 = !{!25} +!25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!26 = !{} +!27 = !DILocalVariable(name: "buf", scope: !22, file: !2, line: 8, type: !12) +!28 = !DILocation(line: 8, column: 11, scope: !22) +!29 = !DILocation(line: 8, column: 24, scope: !22) +!30 = !DILocalVariable(name: "buf_copy", scope: !22, file: !2, line: 9, type: !12) +!31 = !DILocation(line: 9, column: 11, scope: !22) +!32 = !DILocation(line: 9, column: 29, scope: !22) +!33 = !DILocation(line: 11, column: 12, scope: !22) +!34 = !DILocation(line: 11, column: 5, scope: !22) +!35 = !DILocation(line: 12, column: 12, scope: !22) +!36 = !DILocation(line: 12, column: 5, scope: !22) +!37 = !DILocation(line: 14, column: 12, scope: !22) +!38 = !DILocation(line: 14, column: 17, scope: !22) +!39 = !DILocation(line: 14, column: 5, scope: !22) +!40 = !DILocation(line: 15, column: 12, scope: !22) +!41 = !DILocation(line: 15, column: 22, scope: !22) +!42 = !DILocation(line: 15, column: 5, scope: !22) +!43 = !DILocation(line: 17, column: 15, scope: !22) +!44 = !DILocation(line: 17, column: 5, scope: !22) +!45 = !DILocation(line: 18, column: 15, scope: !22) +!46 = !DILocation(line: 18, column: 5, scope: !22) +!47 = !DILocation(line: 20, column: 10, scope: !22) +!48 = !DILocation(line: 20, column: 5, scope: !22) +!49 = !DILocation(line: 21, column: 17, scope: !22) +!50 = !DILocation(line: 21, column: 5, scope: !22) +!51 = !DILocation(line: 23, column: 10, scope: !22) +!52 = !DILocation(line: 23, column: 5, scope: !22) +!53 = !DILocation(line: 24, column: 17, scope: !22) +!54 = !DILocation(line: 24, column: 5, scope: !22) +!55 = !DILocation(line: 26, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_int_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_int_ptr.c.bc new file mode 100644 index 00000000..e3d74231 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_int_ptr.c.bc @@ -0,0 +1,151 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_int_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_int_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !15 { +entry: + %retval = alloca i32, align 4 + %arr = alloca ptr, align 8 + %arr_copy = alloca ptr, align 8 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !20, metadata !DIExpression()), !dbg !21 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !22 + store ptr %call, ptr %arr, align 8, !dbg !21 + call void @llvm.dbg.declare(metadata ptr %arr_copy, metadata !23, metadata !DIExpression()), !dbg !24 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !25 + store ptr %call1, ptr %arr_copy, align 8, !dbg !24 + call void @llvm.dbg.declare(metadata ptr %i, metadata !26, metadata !DIExpression()), !dbg !28 + store i32 0, ptr %i, align 4, !dbg !28 + br label %for.cond, !dbg !29 + +for.cond: ; preds = %for.inc, %entry + %0 = load i32, ptr %i, align 4, !dbg !30 + %cmp = icmp slt i32 %0, 5, !dbg !32 + br i1 %cmp, label %for.body, label %for.end, !dbg !33 + +for.body: ; preds = %for.cond + %1 = load i32, ptr %i, align 4, !dbg !34 + %2 = load ptr, ptr %arr, align 8, !dbg !36 + %3 = load i32, ptr %i, align 4, !dbg !37 + %idxprom = sext i32 %3 to i64, !dbg !36 + %arrayidx = getelementptr inbounds i32, ptr %2, i64 %idxprom, !dbg !36 + store i32 %1, ptr %arrayidx, align 4, !dbg !38 + br label %for.inc, !dbg !39 + +for.inc: ; preds = %for.body + %4 = load i32, ptr %i, align 4, !dbg !40 + %inc = add nsw i32 %4, 1, !dbg !40 + store i32 %inc, ptr %i, align 4, !dbg !40 + br label %for.cond, !dbg !41, !llvm.loop !42 + +for.end: ; preds = %for.cond + %5 = load ptr, ptr %arr_copy, align 8, !dbg !45 + %6 = load ptr, ptr %arr, align 8, !dbg !46 + %call2 = call ptr @strcpy(ptr noundef %5, ptr noundef %6) #6, !dbg !47 + %7 = load ptr, ptr %arr, align 8, !dbg !48 + call void @SAFE_LOAD(ptr noundef %7), !dbg !49 + %8 = load ptr, ptr %arr_copy, align 8, !dbg !50 + call void @SAFE_LOAD(ptr noundef %8), !dbg !51 + %9 = load ptr, ptr %arr, align 8, !dbg !52 + call void @free(ptr noundef %9) #6, !dbg !53 + %10 = load ptr, ptr %arr, align 8, !dbg !54 + call void @UNSAFE_LOAD(ptr noundef %10), !dbg !55 + %11 = load ptr, ptr %arr_copy, align 8, !dbg !56 + call void @free(ptr noundef %11) #6, !dbg !57 + %12 = load ptr, ptr %arr_copy, align 8, !dbg !58 + call void @UNSAFE_LOAD(ptr noundef %12), !dbg !59 + ret i32 0, !dbg !60 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13} +!llvm.ident = !{!14} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5f515f473ee1e66b5a9f82ca759840b7") +!2 = !{!3, !5} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64) +!6 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!7 = !{i32 7, !"Dwarf Version", i32 5} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{i32 1, !"wchar_size", i32 4} +!10 = !{i32 8, !"PIC Level", i32 2} +!11 = !{i32 7, !"PIE Level", i32 2} +!12 = !{i32 7, !"uwtable", i32 2} +!13 = !{i32 7, !"frame-pointer", i32 2} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!15 = distinct !DISubprogram(name: "main", scope: !16, file: !16, line: 7, type: !17, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) +!16 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcpy_int_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5f515f473ee1e66b5a9f82ca759840b7") +!17 = !DISubroutineType(types: !18) +!18 = !{!4} +!19 = !{} +!20 = !DILocalVariable(name: "arr", scope: !15, file: !16, line: 8, type: !3) +!21 = !DILocation(line: 8, column: 10, scope: !15) +!22 = !DILocation(line: 8, column: 22, scope: !15) +!23 = !DILocalVariable(name: "arr_copy", scope: !15, file: !16, line: 9, type: !3) +!24 = !DILocation(line: 9, column: 10, scope: !15) +!25 = !DILocation(line: 9, column: 27, scope: !15) +!26 = !DILocalVariable(name: "i", scope: !27, file: !16, line: 11, type: !4) +!27 = distinct !DILexicalBlock(scope: !15, file: !16, line: 11, column: 5) +!28 = !DILocation(line: 11, column: 14, scope: !27) +!29 = !DILocation(line: 11, column: 10, scope: !27) +!30 = !DILocation(line: 11, column: 21, scope: !31) +!31 = distinct !DILexicalBlock(scope: !27, file: !16, line: 11, column: 5) +!32 = !DILocation(line: 11, column: 23, scope: !31) +!33 = !DILocation(line: 11, column: 5, scope: !27) +!34 = !DILocation(line: 12, column: 18, scope: !35) +!35 = distinct !DILexicalBlock(scope: !31, file: !16, line: 11, column: 33) +!36 = !DILocation(line: 12, column: 9, scope: !35) +!37 = !DILocation(line: 12, column: 13, scope: !35) +!38 = !DILocation(line: 12, column: 16, scope: !35) +!39 = !DILocation(line: 13, column: 5, scope: !35) +!40 = !DILocation(line: 11, column: 29, scope: !31) +!41 = !DILocation(line: 11, column: 5, scope: !31) +!42 = distinct !{!42, !33, !43, !44} +!43 = !DILocation(line: 13, column: 5, scope: !27) +!44 = !{!"llvm.loop.mustprogress"} +!45 = !DILocation(line: 15, column: 19, scope: !15) +!46 = !DILocation(line: 15, column: 36, scope: !15) +!47 = !DILocation(line: 15, column: 5, scope: !15) +!48 = !DILocation(line: 17, column: 15, scope: !15) +!49 = !DILocation(line: 17, column: 5, scope: !15) +!50 = !DILocation(line: 18, column: 15, scope: !15) +!51 = !DILocation(line: 18, column: 5, scope: !15) +!52 = !DILocation(line: 20, column: 10, scope: !15) +!53 = !DILocation(line: 20, column: 5, scope: !15) +!54 = !DILocation(line: 21, column: 17, scope: !15) +!55 = !DILocation(line: 21, column: 5, scope: !15) +!56 = !DILocation(line: 23, column: 10, scope: !15) +!57 = !DILocation(line: 23, column: 5, scope: !15) +!58 = !DILocation(line: 24, column: 17, scope: !15) +!59 = !DILocation(line: 24, column: 5, scope: !15) +!60 = !DILocation(line: 26, column: 5, scope: !15) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_null_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_null_ptr.c.bc new file mode 100644 index 00000000..cd8fe1b2 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_null_ptr.c.bc @@ -0,0 +1,104 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_null_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_null_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !23, metadata !DIExpression()), !dbg !25 + store ptr null, ptr %p, align 8, !dbg !25 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !26, metadata !DIExpression()), !dbg !27 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !28 + store ptr %call, ptr %p_copy, align 8, !dbg !27 + %0 = load ptr, ptr %p_copy, align 8, !dbg !29 + %call1 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !30 + %1 = load ptr, ptr %p, align 8, !dbg !31 + %2 = load ptr, ptr %p_copy, align 8, !dbg !32 + %call2 = call ptr @strcpy(ptr noundef %1, ptr noundef %2) #6, !dbg !33 + %3 = load ptr, ptr %p_copy, align 8, !dbg !34 + call void @free(ptr noundef %3) #6, !dbg !35 + %4 = load ptr, ptr %p_copy, align 8, !dbg !36 + call void @UNSAFE_LOAD(ptr noundef %4), !dbg !37 + %5 = load ptr, ptr %p, align 8, !dbg !38 + call void @free(ptr noundef %5) #6, !dbg !39 + %6 = load ptr, ptr %p, align 8, !dbg !40 + call void @UNSAFE_LOAD(ptr noundef %6), !dbg !41 + ret i32 0, !dbg !42 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 10, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcpy_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "49429632d2d7f37ceffb533a1d7e9971") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_null_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "49429632d2d7f37ceffb533a1d7e9971") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "p", scope: !18, file: !2, line: 7, type: !24) +!24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!25 = !DILocation(line: 7, column: 11, scope: !18) +!26 = !DILocalVariable(name: "p_copy", scope: !18, file: !2, line: 8, type: !24) +!27 = !DILocation(line: 8, column: 11, scope: !18) +!28 = !DILocation(line: 8, column: 20, scope: !18) +!29 = !DILocation(line: 10, column: 12, scope: !18) +!30 = !DILocation(line: 10, column: 5, scope: !18) +!31 = !DILocation(line: 11, column: 12, scope: !18) +!32 = !DILocation(line: 11, column: 15, scope: !18) +!33 = !DILocation(line: 11, column: 5, scope: !18) +!34 = !DILocation(line: 13, column: 10, scope: !18) +!35 = !DILocation(line: 13, column: 5, scope: !18) +!36 = !DILocation(line: 14, column: 17, scope: !18) +!37 = !DILocation(line: 14, column: 5, scope: !18) +!38 = !DILocation(line: 16, column: 10, scope: !18) +!39 = !DILocation(line: 16, column: 5, scope: !18) +!40 = !DILocation(line: 17, column: 17, scope: !18) +!41 = !DILocation(line: 17, column: 5, scope: !18) +!42 = !DILocation(line: 19, column: 5, scope: !18) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_stack_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_stack_ptr.c.bc new file mode 100644 index 00000000..07da0211 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_stack_ptr.c.bc @@ -0,0 +1,112 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_stack_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_stack_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [2 x i8] c"A\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [2 x i8] c"B\00", align 1, !dbg !7 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %c = alloca i8, align 1 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %c, metadata !27, metadata !DIExpression()), !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p, metadata !29, metadata !DIExpression()), !dbg !30 + store ptr %c, ptr %p, align 8, !dbg !30 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !31, metadata !DIExpression()), !dbg !32 + %call = call noalias ptr @malloc(i64 noundef 1) #5, !dbg !33 + store ptr %call, ptr %p_copy, align 8, !dbg !32 + %0 = load ptr, ptr %p_copy, align 8, !dbg !34 + %call1 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !35 + %1 = load ptr, ptr %p_copy, align 8, !dbg !36 + %call2 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str.1) #6, !dbg !37 + %2 = load ptr, ptr %p, align 8, !dbg !38 + call void @SAFE_LOAD(ptr noundef %2), !dbg !39 + %3 = load ptr, ptr %p_copy, align 8, !dbg !40 + call void @SAFE_LOAD(ptr noundef %3), !dbg !41 + %4 = load ptr, ptr %p_copy, align 8, !dbg !42 + call void @free(ptr noundef %4) #6, !dbg !43 + %5 = load ptr, ptr %p_copy, align 8, !dbg !44 + call void @UNSAFE_LOAD(ptr noundef %5), !dbg !45 + ret i32 0, !dbg !46 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!9} +!llvm.module.flags = !{!14, !15, !16, !17, !18, !19, !20} +!llvm.ident = !{!21} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcpy_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "90d36da05d6e3a6c8df0e90857210464") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 16, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 2) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 13, type: !3, isLocal: true, isDefinition: true) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !11, globals: !13, splitDebugInlining: false, nameTableKind: None) +!10 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_stack_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "90d36da05d6e3a6c8df0e90857210464") +!11 = !{!12} +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!13 = !{!0, !7} +!14 = !{i32 7, !"Dwarf Version", i32 5} +!15 = !{i32 2, !"Debug Info Version", i32 3} +!16 = !{i32 1, !"wchar_size", i32 4} +!17 = !{i32 8, !"PIC Level", i32 2} +!18 = !{i32 7, !"PIE Level", i32 2} +!19 = !{i32 7, !"uwtable", i32 2} +!20 = !{i32 7, !"frame-pointer", i32 2} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!22 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !23, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !26) +!23 = !DISubroutineType(types: !24) +!24 = !{!25} +!25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!26 = !{} +!27 = !DILocalVariable(name: "c", scope: !22, file: !2, line: 8, type: !4) +!28 = !DILocation(line: 8, column: 10, scope: !22) +!29 = !DILocalVariable(name: "p", scope: !22, file: !2, line: 9, type: !12) +!30 = !DILocation(line: 9, column: 11, scope: !22) +!31 = !DILocalVariable(name: "p_copy", scope: !22, file: !2, line: 10, type: !12) +!32 = !DILocation(line: 10, column: 11, scope: !22) +!33 = !DILocation(line: 10, column: 27, scope: !22) +!34 = !DILocation(line: 12, column: 12, scope: !22) +!35 = !DILocation(line: 12, column: 5, scope: !22) +!36 = !DILocation(line: 13, column: 12, scope: !22) +!37 = !DILocation(line: 13, column: 5, scope: !22) +!38 = !DILocation(line: 15, column: 15, scope: !22) +!39 = !DILocation(line: 15, column: 5, scope: !22) +!40 = !DILocation(line: 16, column: 15, scope: !22) +!41 = !DILocation(line: 16, column: 5, scope: !22) +!42 = !DILocation(line: 19, column: 10, scope: !22) +!43 = !DILocation(line: 19, column: 5, scope: !22) +!44 = !DILocation(line: 20, column: 17, scope: !22) +!45 = !DILocation(line: 20, column: 5, scope: !22) +!46 = !DILocation(line: 22, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_void_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_void_ptr.c.bc new file mode 100644 index 00000000..1cd7f4c6 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_void_ptr.c.bc @@ -0,0 +1,131 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/ExtAPI_strcpy_void_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_void_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [6 x i8] c"Hello\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [6 x i8] c"World\00", align 1, !dbg !7 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %p = alloca ptr, align 8 + %p_copy = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %p, metadata !27, metadata !DIExpression()), !dbg !29 + %call = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !30 + store ptr %call, ptr %p, align 8, !dbg !29 + call void @llvm.dbg.declare(metadata ptr %p_copy, metadata !31, metadata !DIExpression()), !dbg !32 + %call1 = call noalias ptr @malloc(i64 noundef 20) #5, !dbg !33 + store ptr %call1, ptr %p_copy, align 8, !dbg !32 + %0 = load ptr, ptr %p, align 8, !dbg !34 + %call2 = call ptr @strcpy(ptr noundef %0, ptr noundef @.str) #6, !dbg !35 + %1 = load ptr, ptr %p_copy, align 8, !dbg !36 + %call3 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str.1) #6, !dbg !37 + %2 = load ptr, ptr %p, align 8, !dbg !38 + %3 = load ptr, ptr %p_copy, align 8, !dbg !39 + %call4 = call ptr @strcpy(ptr noundef %2, ptr noundef %3) #6, !dbg !40 + %4 = load ptr, ptr %p_copy, align 8, !dbg !41 + %5 = load ptr, ptr %p, align 8, !dbg !42 + %call5 = call ptr @strcpy(ptr noundef %4, ptr noundef %5) #6, !dbg !43 + %6 = load ptr, ptr %p, align 8, !dbg !44 + call void @SAFE_LOAD(ptr noundef %6), !dbg !45 + %7 = load ptr, ptr %p_copy, align 8, !dbg !46 + call void @SAFE_LOAD(ptr noundef %7), !dbg !47 + %8 = load ptr, ptr %p, align 8, !dbg !48 + call void @free(ptr noundef %8) #6, !dbg !49 + %9 = load ptr, ptr %p, align 8, !dbg !50 + call void @UNSAFE_LOAD(ptr noundef %9), !dbg !51 + %10 = load ptr, ptr %p_copy, align 8, !dbg !52 + call void @free(ptr noundef %10) #6, !dbg !53 + %11 = load ptr, ptr %p_copy, align 8, !dbg !54 + call void @UNSAFE_LOAD(ptr noundef %11), !dbg !55 + ret i32 0, !dbg !56 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!9} +!llvm.module.flags = !{!14, !15, !16, !17, !18, !19, !20} +!llvm.ident = !{!21} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 11, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/ExtAPI_strcpy_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ec16584410cadc4b7e928f0c76d2fff2") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 6) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !11, globals: !13, splitDebugInlining: false, nameTableKind: None) +!10 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/ExtAPI_strcpy_void_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ec16584410cadc4b7e928f0c76d2fff2") +!11 = !{!12} +!12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!13 = !{!0, !7} +!14 = !{i32 7, !"Dwarf Version", i32 5} +!15 = !{i32 2, !"Debug Info Version", i32 3} +!16 = !{i32 1, !"wchar_size", i32 4} +!17 = !{i32 8, !"PIC Level", i32 2} +!18 = !{i32 7, !"PIE Level", i32 2} +!19 = !{i32 7, !"uwtable", i32 2} +!20 = !{i32 7, !"frame-pointer", i32 2} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!22 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !23, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !26) +!23 = !DISubroutineType(types: !24) +!24 = !{!25} +!25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!26 = !{} +!27 = !DILocalVariable(name: "p", scope: !22, file: !2, line: 8, type: !28) +!28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!29 = !DILocation(line: 8, column: 11, scope: !22) +!30 = !DILocation(line: 8, column: 15, scope: !22) +!31 = !DILocalVariable(name: "p_copy", scope: !22, file: !2, line: 9, type: !28) +!32 = !DILocation(line: 9, column: 11, scope: !22) +!33 = !DILocation(line: 9, column: 20, scope: !22) +!34 = !DILocation(line: 11, column: 19, scope: !22) +!35 = !DILocation(line: 11, column: 5, scope: !22) +!36 = !DILocation(line: 12, column: 19, scope: !22) +!37 = !DILocation(line: 12, column: 5, scope: !22) +!38 = !DILocation(line: 14, column: 19, scope: !22) +!39 = !DILocation(line: 14, column: 29, scope: !22) +!40 = !DILocation(line: 14, column: 5, scope: !22) +!41 = !DILocation(line: 15, column: 19, scope: !22) +!42 = !DILocation(line: 15, column: 34, scope: !22) +!43 = !DILocation(line: 15, column: 5, scope: !22) +!44 = !DILocation(line: 17, column: 15, scope: !22) +!45 = !DILocation(line: 17, column: 5, scope: !22) +!46 = !DILocation(line: 18, column: 15, scope: !22) +!47 = !DILocation(line: 18, column: 5, scope: !22) +!48 = !DILocation(line: 20, column: 10, scope: !22) +!49 = !DILocation(line: 20, column: 5, scope: !22) +!50 = !DILocation(line: 21, column: 17, scope: !22) +!51 = !DILocation(line: 21, column: 5, scope: !22) +!52 = !DILocation(line: 23, column: 10, scope: !22) +!53 = !DILocation(line: 23, column: 5, scope: !22) +!54 = !DILocation(line: 24, column: 17, scope: !22) +!55 = !DILocation(line: 24, column: 5, scope: !22) +!56 = !DILocation(line: 26, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/array_2d_big.c.bc b/test_cases_bc/ae_nullptr_deref_tests/array_2d_big.c.bc new file mode 100644 index 00000000..5f9b62bc --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/array_2d_big.c.bc @@ -0,0 +1,211 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/array_2d_big.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_2d_big.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %arr = alloca [100 x [100 x ptr]], align 16 + %i = alloca i32, align 4 + %j = alloca i32, align 4 + %m = alloca i32, align 4 + %n = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !16, metadata !DIExpression()), !dbg !21 + call void @llvm.dbg.declare(metadata ptr %i, metadata !22, metadata !DIExpression()), !dbg !24 + store i32 0, ptr %i, align 4, !dbg !24 + br label %for.cond, !dbg !25 + +for.cond: ; preds = %for.inc6, %entry + %0 = load i32, ptr %i, align 4, !dbg !26 + %cmp = icmp slt i32 %0, 100, !dbg !28 + br i1 %cmp, label %for.body, label %for.end8, !dbg !29 + +for.body: ; preds = %for.cond + call void @llvm.dbg.declare(metadata ptr %j, metadata !30, metadata !DIExpression()), !dbg !33 + store i32 0, ptr %j, align 4, !dbg !33 + br label %for.cond1, !dbg !34 + +for.cond1: ; preds = %for.inc, %for.body + %1 = load i32, ptr %j, align 4, !dbg !35 + %cmp2 = icmp slt i32 %1, 100, !dbg !37 + br i1 %cmp2, label %for.body3, label %for.end, !dbg !38 + +for.body3: ; preds = %for.cond1 + %2 = load i32, ptr %i, align 4, !dbg !39 + %idxprom = sext i32 %2 to i64, !dbg !41 + %arrayidx = getelementptr inbounds [100 x [100 x ptr]], ptr %arr, i64 0, i64 %idxprom, !dbg !41 + %3 = load i32, ptr %j, align 4, !dbg !42 + %idxprom4 = sext i32 %3 to i64, !dbg !41 + %arrayidx5 = getelementptr inbounds [100 x ptr], ptr %arrayidx, i64 0, i64 %idxprom4, !dbg !41 + store ptr null, ptr %arrayidx5, align 8, !dbg !43 + br label %for.inc, !dbg !44 + +for.inc: ; preds = %for.body3 + %4 = load i32, ptr %j, align 4, !dbg !45 + %inc = add nsw i32 %4, 1, !dbg !45 + store i32 %inc, ptr %j, align 4, !dbg !45 + br label %for.cond1, !dbg !46, !llvm.loop !47 + +for.end: ; preds = %for.cond1 + br label %for.inc6, !dbg !50 + +for.inc6: ; preds = %for.end + %5 = load i32, ptr %i, align 4, !dbg !51 + %inc7 = add nsw i32 %5, 1, !dbg !51 + store i32 %inc7, ptr %i, align 4, !dbg !51 + br label %for.cond, !dbg !52, !llvm.loop !53 + +for.end8: ; preds = %for.cond + call void @llvm.dbg.declare(metadata ptr %m, metadata !55, metadata !DIExpression()), !dbg !57 + store i32 0, ptr %m, align 4, !dbg !57 + br label %for.cond9, !dbg !58 + +for.cond9: ; preds = %for.inc22, %for.end8 + %6 = load i32, ptr %m, align 4, !dbg !59 + %cmp10 = icmp slt i32 %6, 100, !dbg !61 + br i1 %cmp10, label %for.body11, label %for.end24, !dbg !62 + +for.body11: ; preds = %for.cond9 + call void @llvm.dbg.declare(metadata ptr %n, metadata !63, metadata !DIExpression()), !dbg !66 + store i32 0, ptr %n, align 4, !dbg !66 + br label %for.cond12, !dbg !67 + +for.cond12: ; preds = %for.inc19, %for.body11 + %7 = load i32, ptr %n, align 4, !dbg !68 + %cmp13 = icmp slt i32 %7, 100, !dbg !70 + br i1 %cmp13, label %for.body14, label %for.end21, !dbg !71 + +for.body14: ; preds = %for.cond12 + %8 = load i32, ptr %m, align 4, !dbg !72 + %idxprom15 = sext i32 %8 to i64, !dbg !74 + %arrayidx16 = getelementptr inbounds [100 x [100 x ptr]], ptr %arr, i64 0, i64 %idxprom15, !dbg !74 + %9 = load i32, ptr %n, align 4, !dbg !75 + %idxprom17 = sext i32 %9 to i64, !dbg !74 + %arrayidx18 = getelementptr inbounds [100 x ptr], ptr %arrayidx16, i64 0, i64 %idxprom17, !dbg !74 + %10 = load ptr, ptr %arrayidx18, align 8, !dbg !74 + call void @UNSAFE_LOAD(ptr noundef %10), !dbg !76 + br label %for.inc19, !dbg !77 + +for.inc19: ; preds = %for.body14 + %11 = load i32, ptr %n, align 4, !dbg !78 + %inc20 = add nsw i32 %11, 1, !dbg !78 + store i32 %inc20, ptr %n, align 4, !dbg !78 + br label %for.cond12, !dbg !79, !llvm.loop !80 + +for.end21: ; preds = %for.cond12 + br label %for.inc22, !dbg !82 + +for.inc22: ; preds = %for.end21 + %12 = load i32, ptr %m, align 4, !dbg !83 + %inc23 = add nsw i32 %12, 1, !dbg !83 + store i32 %inc23, ptr %m, align 4, !dbg !83 + br label %for.cond9, !dbg !84, !llvm.loop !85 + +for.end24: ; preds = %for.cond9 + ret i32 0, !dbg !87 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_2d_big.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "b81f9dfa668b2f21e4d373cc843b00a7") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 7, type: !12, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/array_2d_big.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "b81f9dfa668b2f21e4d373cc843b00a7") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arr", scope: !10, file: !11, line: 8, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !18, size: 640000, elements: !19) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!19 = !{!20, !20} +!20 = !DISubrange(count: 100) +!21 = !DILocation(line: 8, column: 10, scope: !10) +!22 = !DILocalVariable(name: "i", scope: !23, file: !11, line: 10, type: !14) +!23 = distinct !DILexicalBlock(scope: !10, file: !11, line: 10, column: 5) +!24 = !DILocation(line: 10, column: 14, scope: !23) +!25 = !DILocation(line: 10, column: 10, scope: !23) +!26 = !DILocation(line: 10, column: 21, scope: !27) +!27 = distinct !DILexicalBlock(scope: !23, file: !11, line: 10, column: 5) +!28 = !DILocation(line: 10, column: 23, scope: !27) +!29 = !DILocation(line: 10, column: 5, scope: !23) +!30 = !DILocalVariable(name: "j", scope: !31, file: !11, line: 11, type: !14) +!31 = distinct !DILexicalBlock(scope: !32, file: !11, line: 11, column: 9) +!32 = distinct !DILexicalBlock(scope: !27, file: !11, line: 10, column: 36) +!33 = !DILocation(line: 11, column: 18, scope: !31) +!34 = !DILocation(line: 11, column: 14, scope: !31) +!35 = !DILocation(line: 11, column: 25, scope: !36) +!36 = distinct !DILexicalBlock(scope: !31, file: !11, line: 11, column: 9) +!37 = !DILocation(line: 11, column: 27, scope: !36) +!38 = !DILocation(line: 11, column: 9, scope: !31) +!39 = !DILocation(line: 12, column: 17, scope: !40) +!40 = distinct !DILexicalBlock(scope: !36, file: !11, line: 11, column: 40) +!41 = !DILocation(line: 12, column: 13, scope: !40) +!42 = !DILocation(line: 12, column: 20, scope: !40) +!43 = !DILocation(line: 12, column: 23, scope: !40) +!44 = !DILocation(line: 13, column: 9, scope: !40) +!45 = !DILocation(line: 11, column: 36, scope: !36) +!46 = !DILocation(line: 11, column: 9, scope: !36) +!47 = distinct !{!47, !38, !48, !49} +!48 = !DILocation(line: 13, column: 9, scope: !31) +!49 = !{!"llvm.loop.mustprogress"} +!50 = !DILocation(line: 14, column: 5, scope: !32) +!51 = !DILocation(line: 10, column: 32, scope: !27) +!52 = !DILocation(line: 10, column: 5, scope: !27) +!53 = distinct !{!53, !29, !54, !49} +!54 = !DILocation(line: 14, column: 5, scope: !23) +!55 = !DILocalVariable(name: "m", scope: !56, file: !11, line: 16, type: !14) +!56 = distinct !DILexicalBlock(scope: !10, file: !11, line: 16, column: 5) +!57 = !DILocation(line: 16, column: 14, scope: !56) +!58 = !DILocation(line: 16, column: 10, scope: !56) +!59 = !DILocation(line: 16, column: 21, scope: !60) +!60 = distinct !DILexicalBlock(scope: !56, file: !11, line: 16, column: 5) +!61 = !DILocation(line: 16, column: 23, scope: !60) +!62 = !DILocation(line: 16, column: 5, scope: !56) +!63 = !DILocalVariable(name: "n", scope: !64, file: !11, line: 17, type: !14) +!64 = distinct !DILexicalBlock(scope: !65, file: !11, line: 17, column: 9) +!65 = distinct !DILexicalBlock(scope: !60, file: !11, line: 16, column: 36) +!66 = !DILocation(line: 17, column: 18, scope: !64) +!67 = !DILocation(line: 17, column: 14, scope: !64) +!68 = !DILocation(line: 17, column: 25, scope: !69) +!69 = distinct !DILexicalBlock(scope: !64, file: !11, line: 17, column: 9) +!70 = !DILocation(line: 17, column: 27, scope: !69) +!71 = !DILocation(line: 17, column: 9, scope: !64) +!72 = !DILocation(line: 18, column: 29, scope: !73) +!73 = distinct !DILexicalBlock(scope: !69, file: !11, line: 17, column: 40) +!74 = !DILocation(line: 18, column: 25, scope: !73) +!75 = !DILocation(line: 18, column: 32, scope: !73) +!76 = !DILocation(line: 18, column: 13, scope: !73) +!77 = !DILocation(line: 19, column: 9, scope: !73) +!78 = !DILocation(line: 17, column: 36, scope: !69) +!79 = !DILocation(line: 17, column: 9, scope: !69) +!80 = distinct !{!80, !71, !81, !49} +!81 = !DILocation(line: 19, column: 9, scope: !64) +!82 = !DILocation(line: 20, column: 5, scope: !65) +!83 = !DILocation(line: 16, column: 32, scope: !60) +!84 = !DILocation(line: 16, column: 5, scope: !60) +!85 = distinct !{!85, !62, !86, !49} +!86 = !DILocation(line: 20, column: 5, scope: !56) +!87 = !DILocation(line: 22, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/array_2d_small.c.bc b/test_cases_bc/ae_nullptr_deref_tests/array_2d_small.c.bc new file mode 100644 index 00000000..c86ab10b --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/array_2d_small.c.bc @@ -0,0 +1,93 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/array_2d_small.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_2d_small.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %arr = alloca [2 x [2 x ptr]], align 16 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !16, metadata !DIExpression()), !dbg !21 + %arrayidx = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !22 + %arrayidx1 = getelementptr inbounds [2 x ptr], ptr %arrayidx, i64 0, i64 0, !dbg !22 + store ptr null, ptr %arrayidx1, align 16, !dbg !23 + %arrayidx2 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !24 + %arrayidx3 = getelementptr inbounds [2 x ptr], ptr %arrayidx2, i64 0, i64 1, !dbg !24 + store ptr null, ptr %arrayidx3, align 8, !dbg !25 + %arrayidx4 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !26 + %arrayidx5 = getelementptr inbounds [2 x ptr], ptr %arrayidx4, i64 0, i64 0, !dbg !26 + store ptr null, ptr %arrayidx5, align 16, !dbg !27 + %arrayidx6 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !28 + %arrayidx7 = getelementptr inbounds [2 x ptr], ptr %arrayidx6, i64 0, i64 1, !dbg !28 + store ptr null, ptr %arrayidx7, align 8, !dbg !29 + %arrayidx8 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !30 + %arrayidx9 = getelementptr inbounds [2 x ptr], ptr %arrayidx8, i64 0, i64 0, !dbg !30 + %0 = load ptr, ptr %arrayidx9, align 16, !dbg !30 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !31 + %arrayidx10 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !32 + %arrayidx11 = getelementptr inbounds [2 x ptr], ptr %arrayidx10, i64 0, i64 1, !dbg !32 + %1 = load ptr, ptr %arrayidx11, align 8, !dbg !32 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !33 + %arrayidx12 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !34 + %arrayidx13 = getelementptr inbounds [2 x ptr], ptr %arrayidx12, i64 0, i64 0, !dbg !34 + %2 = load ptr, ptr %arrayidx13, align 16, !dbg !34 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !35 + %arrayidx14 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !36 + %arrayidx15 = getelementptr inbounds [2 x ptr], ptr %arrayidx14, i64 0, i64 1, !dbg !36 + %3 = load ptr, ptr %arrayidx15, align 8, !dbg !36 + call void @UNSAFE_LOAD(ptr noundef %3), !dbg !37 + ret i32 0, !dbg !38 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_2d_small.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "6be2db3639e3c873bbe956c538f9d795") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/array_2d_small.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "6be2db3639e3c873bbe956c538f9d795") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arr", scope: !10, file: !11, line: 6, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !18, size: 256, elements: !19) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!19 = !{!20, !20} +!20 = !DISubrange(count: 2) +!21 = !DILocation(line: 6, column: 10, scope: !10) +!22 = !DILocation(line: 7, column: 5, scope: !10) +!23 = !DILocation(line: 7, column: 15, scope: !10) +!24 = !DILocation(line: 8, column: 5, scope: !10) +!25 = !DILocation(line: 8, column: 15, scope: !10) +!26 = !DILocation(line: 9, column: 5, scope: !10) +!27 = !DILocation(line: 9, column: 15, scope: !10) +!28 = !DILocation(line: 10, column: 5, scope: !10) +!29 = !DILocation(line: 10, column: 15, scope: !10) +!30 = !DILocation(line: 12, column: 17, scope: !10) +!31 = !DILocation(line: 12, column: 5, scope: !10) +!32 = !DILocation(line: 13, column: 17, scope: !10) +!33 = !DILocation(line: 13, column: 5, scope: !10) +!34 = !DILocation(line: 14, column: 17, scope: !10) +!35 = !DILocation(line: 14, column: 5, scope: !10) +!36 = !DILocation(line: 15, column: 17, scope: !10) +!37 = !DILocation(line: 15, column: 5, scope: !10) +!38 = !DILocation(line: 16, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/array_2d_small_partial_null.c.bc b/test_cases_bc/ae_nullptr_deref_tests/array_2d_small_partial_null.c.bc new file mode 100644 index 00000000..c20e9751 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/array_2d_small_partial_null.c.bc @@ -0,0 +1,116 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/array_2d_small_partial_null.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_2d_small_partial_null.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %arr = alloca [2 x [2 x ptr]], align 16 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !16, metadata !DIExpression()), !dbg !21 + %arrayidx = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !22 + %arrayidx1 = getelementptr inbounds [2 x ptr], ptr %arrayidx, i64 0, i64 0, !dbg !22 + store ptr null, ptr %arrayidx1, align 16, !dbg !23 + %arrayidx2 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !24 + %arrayidx3 = getelementptr inbounds [2 x ptr], ptr %arrayidx2, i64 0, i64 1, !dbg !24 + store ptr null, ptr %arrayidx3, align 8, !dbg !25 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !26 + %arrayidx4 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !27 + %arrayidx5 = getelementptr inbounds [2 x ptr], ptr %arrayidx4, i64 0, i64 0, !dbg !27 + store ptr %call, ptr %arrayidx5, align 16, !dbg !28 + %call6 = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !29 + %arrayidx7 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !30 + %arrayidx8 = getelementptr inbounds [2 x ptr], ptr %arrayidx7, i64 0, i64 1, !dbg !30 + store ptr %call6, ptr %arrayidx8, align 8, !dbg !31 + %arrayidx9 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !32 + %arrayidx10 = getelementptr inbounds [2 x ptr], ptr %arrayidx9, i64 0, i64 0, !dbg !32 + %0 = load ptr, ptr %arrayidx10, align 16, !dbg !32 + store i32 123, ptr %0, align 4, !dbg !33 + %arrayidx11 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !34 + %arrayidx12 = getelementptr inbounds [2 x ptr], ptr %arrayidx11, i64 0, i64 1, !dbg !34 + %1 = load ptr, ptr %arrayidx12, align 8, !dbg !34 + store i32 456, ptr %1, align 4, !dbg !35 + %arrayidx13 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !36 + %arrayidx14 = getelementptr inbounds [2 x ptr], ptr %arrayidx13, i64 0, i64 0, !dbg !36 + %2 = load ptr, ptr %arrayidx14, align 16, !dbg !36 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !37 + %arrayidx15 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 0, !dbg !38 + %arrayidx16 = getelementptr inbounds [2 x ptr], ptr %arrayidx15, i64 0, i64 1, !dbg !38 + %3 = load ptr, ptr %arrayidx16, align 8, !dbg !38 + call void @UNSAFE_LOAD(ptr noundef %3), !dbg !39 + %arrayidx17 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !40 + %arrayidx18 = getelementptr inbounds [2 x ptr], ptr %arrayidx17, i64 0, i64 0, !dbg !40 + %4 = load ptr, ptr %arrayidx18, align 16, !dbg !40 + call void @SAFE_LOAD(ptr noundef %4), !dbg !41 + %arrayidx19 = getelementptr inbounds [2 x [2 x ptr]], ptr %arr, i64 0, i64 1, !dbg !42 + %arrayidx20 = getelementptr inbounds [2 x ptr], ptr %arrayidx19, i64 0, i64 1, !dbg !42 + %5 = load ptr, ptr %arrayidx20, align 8, !dbg !42 + call void @SAFE_LOAD(ptr noundef %5), !dbg !43 + ret i32 0, !dbg !44 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @UNSAFE_LOAD(ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_2d_small_partial_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "2a3ecac9fdc631d7e80fdbf23cd6d648") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 7, type: !12, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/array_2d_small_partial_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "2a3ecac9fdc631d7e80fdbf23cd6d648") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arr", scope: !10, file: !11, line: 8, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !18, size: 256, elements: !19) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!19 = !{!20, !20} +!20 = !DISubrange(count: 2) +!21 = !DILocation(line: 8, column: 10, scope: !10) +!22 = !DILocation(line: 9, column: 5, scope: !10) +!23 = !DILocation(line: 9, column: 15, scope: !10) +!24 = !DILocation(line: 10, column: 5, scope: !10) +!25 = !DILocation(line: 10, column: 15, scope: !10) +!26 = !DILocation(line: 11, column: 17, scope: !10) +!27 = !DILocation(line: 11, column: 5, scope: !10) +!28 = !DILocation(line: 11, column: 15, scope: !10) +!29 = !DILocation(line: 12, column: 17, scope: !10) +!30 = !DILocation(line: 12, column: 5, scope: !10) +!31 = !DILocation(line: 12, column: 15, scope: !10) +!32 = !DILocation(line: 14, column: 6, scope: !10) +!33 = !DILocation(line: 14, column: 16, scope: !10) +!34 = !DILocation(line: 15, column: 6, scope: !10) +!35 = !DILocation(line: 15, column: 16, scope: !10) +!36 = !DILocation(line: 17, column: 17, scope: !10) +!37 = !DILocation(line: 17, column: 5, scope: !10) +!38 = !DILocation(line: 18, column: 17, scope: !10) +!39 = !DILocation(line: 18, column: 5, scope: !10) +!40 = !DILocation(line: 19, column: 15, scope: !10) +!41 = !DILocation(line: 19, column: 5, scope: !10) +!42 = !DILocation(line: 20, column: 15, scope: !10) +!43 = !DILocation(line: 20, column: 5, scope: !10) +!44 = !DILocation(line: 21, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/array_all_nullptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/array_all_nullptr.c.bc new file mode 100644 index 00000000..a4d5eba6 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/array_all_nullptr.c.bc @@ -0,0 +1,120 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/array_all_nullptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_all_nullptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %n = alloca ptr, align 8 + %ptrs = alloca [5 x ptr], align 16 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %n, metadata !16, metadata !DIExpression()), !dbg !18 + store ptr null, ptr %n, align 8, !dbg !18 + call void @llvm.dbg.declare(metadata ptr %ptrs, metadata !19, metadata !DIExpression()), !dbg !23 + %arrayinit.begin = getelementptr inbounds [5 x ptr], ptr %ptrs, i64 0, i64 0, !dbg !24 + %0 = load ptr, ptr %n, align 8, !dbg !25 + store ptr %0, ptr %arrayinit.begin, align 8, !dbg !24 + %arrayinit.element = getelementptr inbounds ptr, ptr %arrayinit.begin, i64 1, !dbg !24 + %1 = load ptr, ptr %n, align 8, !dbg !26 + store ptr %1, ptr %arrayinit.element, align 8, !dbg !24 + %arrayinit.element1 = getelementptr inbounds ptr, ptr %arrayinit.element, i64 1, !dbg !24 + %2 = load ptr, ptr %n, align 8, !dbg !27 + store ptr %2, ptr %arrayinit.element1, align 8, !dbg !24 + %arrayinit.element2 = getelementptr inbounds ptr, ptr %arrayinit.element1, i64 1, !dbg !24 + %3 = load ptr, ptr %n, align 8, !dbg !28 + store ptr %3, ptr %arrayinit.element2, align 8, !dbg !24 + %arrayinit.element3 = getelementptr inbounds ptr, ptr %arrayinit.element2, i64 1, !dbg !24 + %4 = load ptr, ptr %n, align 8, !dbg !29 + store ptr %4, ptr %arrayinit.element3, align 8, !dbg !24 + call void @llvm.dbg.declare(metadata ptr %i, metadata !30, metadata !DIExpression()), !dbg !32 + store i32 0, ptr %i, align 4, !dbg !32 + br label %for.cond, !dbg !33 + +for.cond: ; preds = %for.inc, %entry + %5 = load i32, ptr %i, align 4, !dbg !34 + %cmp = icmp slt i32 %5, 5, !dbg !36 + br i1 %cmp, label %for.body, label %for.end, !dbg !37 + +for.body: ; preds = %for.cond + %6 = load i32, ptr %i, align 4, !dbg !38 + %idxprom = sext i32 %6 to i64, !dbg !40 + %arrayidx = getelementptr inbounds [5 x ptr], ptr %ptrs, i64 0, i64 %idxprom, !dbg !40 + %7 = load ptr, ptr %arrayidx, align 8, !dbg !40 + call void @UNSAFE_LOAD(ptr noundef %7), !dbg !41 + br label %for.inc, !dbg !42 + +for.inc: ; preds = %for.body + %8 = load i32, ptr %i, align 4, !dbg !43 + %inc = add nsw i32 %8, 1, !dbg !43 + store i32 %inc, ptr %i, align 4, !dbg !43 + br label %for.cond, !dbg !44, !llvm.loop !45 + +for.end: ; preds = %for.cond + ret i32 0, !dbg !48 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_all_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "664f248126dd6b2004947c008bb76997") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/array_all_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "664f248126dd6b2004947c008bb76997") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "n", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 6, column: 10, scope: !10) +!19 = !DILocalVariable(name: "ptrs", scope: !10, file: !11, line: 7, type: !20) +!20 = !DICompositeType(tag: DW_TAG_array_type, baseType: !17, size: 320, elements: !21) +!21 = !{!22} +!22 = !DISubrange(count: 5) +!23 = !DILocation(line: 7, column: 10, scope: !10) +!24 = !DILocation(line: 7, column: 20, scope: !10) +!25 = !DILocation(line: 7, column: 21, scope: !10) +!26 = !DILocation(line: 7, column: 24, scope: !10) +!27 = !DILocation(line: 7, column: 27, scope: !10) +!28 = !DILocation(line: 7, column: 30, scope: !10) +!29 = !DILocation(line: 7, column: 33, scope: !10) +!30 = !DILocalVariable(name: "i", scope: !31, file: !11, line: 8, type: !14) +!31 = distinct !DILexicalBlock(scope: !10, file: !11, line: 8, column: 5) +!32 = !DILocation(line: 8, column: 14, scope: !31) +!33 = !DILocation(line: 8, column: 10, scope: !31) +!34 = !DILocation(line: 8, column: 21, scope: !35) +!35 = distinct !DILexicalBlock(scope: !31, file: !11, line: 8, column: 5) +!36 = !DILocation(line: 8, column: 23, scope: !35) +!37 = !DILocation(line: 8, column: 5, scope: !31) +!38 = !DILocation(line: 9, column: 26, scope: !39) +!39 = distinct !DILexicalBlock(scope: !35, file: !11, line: 8, column: 33) +!40 = !DILocation(line: 9, column: 21, scope: !39) +!41 = !DILocation(line: 9, column: 9, scope: !39) +!42 = !DILocation(line: 10, column: 5, scope: !39) +!43 = !DILocation(line: 8, column: 29, scope: !35) +!44 = !DILocation(line: 8, column: 5, scope: !35) +!45 = distinct !{!45, !37, !46, !47} +!46 = !DILocation(line: 10, column: 5, scope: !31) +!47 = !{!"llvm.loop.mustprogress"} +!48 = !DILocation(line: 12, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/array_of_struct.c.bc b/test_cases_bc/ae_nullptr_deref_tests/array_of_struct.c.bc new file mode 100644 index 00000000..4c50f2a8 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/array_of_struct.c.bc @@ -0,0 +1,105 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/array_of_struct.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_of_struct.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.S = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %arrStruct = alloca [3 x %struct.S], align 16 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arrStruct, metadata !16, metadata !DIExpression()), !dbg !24 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !25 + %arrayidx = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 0, !dbg !26 + %intPtr = getelementptr inbounds %struct.S, ptr %arrayidx, i32 0, i32 0, !dbg !27 + store ptr %call, ptr %intPtr, align 16, !dbg !28 + %arrayidx1 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 0, !dbg !29 + %intPtr2 = getelementptr inbounds %struct.S, ptr %arrayidx1, i32 0, i32 0, !dbg !30 + %0 = load ptr, ptr %intPtr2, align 16, !dbg !30 + store i32 1024, ptr %0, align 4, !dbg !31 + %arrayidx3 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 1, !dbg !32 + %intPtr4 = getelementptr inbounds %struct.S, ptr %arrayidx3, i32 0, i32 0, !dbg !33 + store ptr null, ptr %intPtr4, align 8, !dbg !34 + %arrayidx5 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 0, !dbg !35 + %intPtr6 = getelementptr inbounds %struct.S, ptr %arrayidx5, i32 0, i32 0, !dbg !36 + %1 = load ptr, ptr %intPtr6, align 16, !dbg !36 + call void @SAFE_LOAD(ptr noundef %1), !dbg !37 + %arrayidx7 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 1, !dbg !38 + %intPtr8 = getelementptr inbounds %struct.S, ptr %arrayidx7, i32 0, i32 0, !dbg !39 + %2 = load ptr, ptr %intPtr8, align 8, !dbg !39 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !40 + %arrayidx9 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 2, !dbg !41 + %intPtr10 = getelementptr inbounds %struct.S, ptr %arrayidx9, i32 0, i32 0, !dbg !42 + %3 = load ptr, ptr %intPtr10, align 16, !dbg !42 + call void @UNSAFE_LOAD(ptr noundef %3), !dbg !43 + ret i32 0, !dbg !44 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_of_struct.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f355479eefee6b8122fa65f61baba93f") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/array_of_struct.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f355479eefee6b8122fa65f61baba93f") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arrStruct", scope: !10, file: !11, line: 11, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !18, size: 192, elements: !22) +!18 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !11, line: 6, size: 64, elements: !19) +!19 = !{!20} +!20 = !DIDerivedType(tag: DW_TAG_member, name: "intPtr", scope: !18, file: !11, line: 7, baseType: !21, size: 64) +!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!22 = !{!23} +!23 = !DISubrange(count: 3) +!24 = !DILocation(line: 11, column: 14, scope: !10) +!25 = !DILocation(line: 13, column: 27, scope: !10) +!26 = !DILocation(line: 13, column: 5, scope: !10) +!27 = !DILocation(line: 13, column: 18, scope: !10) +!28 = !DILocation(line: 13, column: 25, scope: !10) +!29 = !DILocation(line: 14, column: 6, scope: !10) +!30 = !DILocation(line: 14, column: 19, scope: !10) +!31 = !DILocation(line: 14, column: 26, scope: !10) +!32 = !DILocation(line: 16, column: 5, scope: !10) +!33 = !DILocation(line: 16, column: 18, scope: !10) +!34 = !DILocation(line: 16, column: 25, scope: !10) +!35 = !DILocation(line: 18, column: 15, scope: !10) +!36 = !DILocation(line: 18, column: 28, scope: !10) +!37 = !DILocation(line: 18, column: 5, scope: !10) +!38 = !DILocation(line: 19, column: 17, scope: !10) +!39 = !DILocation(line: 19, column: 30, scope: !10) +!40 = !DILocation(line: 19, column: 5, scope: !10) +!41 = !DILocation(line: 20, column: 17, scope: !10) +!42 = !DILocation(line: 20, column: 30, scope: !10) +!43 = !DILocation(line: 20, column: 5, scope: !10) +!44 = !DILocation(line: 22, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/array_of_struct_func_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/array_of_struct_func_ptr.c.bc new file mode 100644 index 00000000..2447aa81 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/array_of_struct_func_ptr.c.bc @@ -0,0 +1,116 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/array_of_struct_func_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_of_struct_func_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.S = type { ptr } + +@.str = private unnamed_addr constant [20 x i8] c"This is a function\0A\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @foo() #0 !dbg !18 { +entry: + %call = call i32 (ptr, ...) @printf(ptr noundef @.str), !dbg !22 + ret void, !dbg !23 +} + +declare i32 @printf(ptr noundef, ...) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !24 { +entry: + %retval = alloca i32, align 4 + %arrStruct = alloca [3 x %struct.S], align 16 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arrStruct, metadata !28, metadata !DIExpression()), !dbg !38 + %arrayidx = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 0, !dbg !39 + %funcPtr = getelementptr inbounds %struct.S, ptr %arrayidx, i32 0, i32 0, !dbg !40 + store ptr @foo, ptr %funcPtr, align 16, !dbg !41 + %arrayidx1 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 1, !dbg !42 + %funcPtr2 = getelementptr inbounds %struct.S, ptr %arrayidx1, i32 0, i32 0, !dbg !43 + store ptr null, ptr %funcPtr2, align 8, !dbg !44 + %arrayidx3 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 0, !dbg !45 + %funcPtr4 = getelementptr inbounds %struct.S, ptr %arrayidx3, i32 0, i32 0, !dbg !46 + %0 = load ptr, ptr %funcPtr4, align 16, !dbg !46 + call void @SAFE_LOAD(ptr noundef %0), !dbg !47 + %arrayidx5 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 1, !dbg !48 + %funcPtr6 = getelementptr inbounds %struct.S, ptr %arrayidx5, i32 0, i32 0, !dbg !49 + %1 = load ptr, ptr %funcPtr6, align 8, !dbg !49 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !50 + %arrayidx7 = getelementptr inbounds [3 x %struct.S], ptr %arrStruct, i64 0, i64 2, !dbg !51 + %funcPtr8 = getelementptr inbounds %struct.S, ptr %arrayidx7, i32 0, i32 0, !dbg !52 + %2 = load ptr, ptr %funcPtr8, align 16, !dbg !52 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !53 + ret i32 0, !dbg !54 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 + +declare void @SAFE_LOAD(ptr noundef) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #1 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/array_of_struct_func_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "15dfd404a970ec87e979bccaf265f5a7") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 160, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 20) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/array_of_struct_func_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "15dfd404a970ec87e979bccaf265f5a7") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "foo", scope: !2, file: !2, line: 11, type: !19, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !21) +!19 = !DISubroutineType(types: !20) +!20 = !{null} +!21 = !{} +!22 = !DILocation(line: 12, column: 5, scope: !18) +!23 = !DILocation(line: 13, column: 1, scope: !18) +!24 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 15, type: !25, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !21) +!25 = !DISubroutineType(types: !26) +!26 = !{!27} +!27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!28 = !DILocalVariable(name: "arrStruct", scope: !24, file: !2, line: 16, type: !29) +!29 = !DICompositeType(tag: DW_TAG_array_type, baseType: !30, size: 192, elements: !36) +!30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !2, line: 7, size: 64, elements: !31) +!31 = !{!32} +!32 = !DIDerivedType(tag: DW_TAG_member, name: "funcPtr", scope: !30, file: !2, line: 8, baseType: !33, size: 64) +!33 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !34, size: 64) +!34 = !DISubroutineType(types: !35) +!35 = !{null, null} +!36 = !{!37} +!37 = !DISubrange(count: 3) +!38 = !DILocation(line: 16, column: 14, scope: !24) +!39 = !DILocation(line: 18, column: 5, scope: !24) +!40 = !DILocation(line: 18, column: 18, scope: !24) +!41 = !DILocation(line: 18, column: 26, scope: !24) +!42 = !DILocation(line: 20, column: 5, scope: !24) +!43 = !DILocation(line: 20, column: 18, scope: !24) +!44 = !DILocation(line: 20, column: 26, scope: !24) +!45 = !DILocation(line: 22, column: 15, scope: !24) +!46 = !DILocation(line: 22, column: 28, scope: !24) +!47 = !DILocation(line: 22, column: 5, scope: !24) +!48 = !DILocation(line: 23, column: 17, scope: !24) +!49 = !DILocation(line: 23, column: 30, scope: !24) +!50 = !DILocation(line: 23, column: 5, scope: !24) +!51 = !DILocation(line: 24, column: 17, scope: !24) +!52 = !DILocation(line: 24, column: 30, scope: !24) +!53 = !DILocation(line: 24, column: 5, scope: !24) +!54 = !DILocation(line: 26, column: 5, scope: !24) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arg.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arg.c.bc new file mode 100644 index 00000000..96640dbe --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arg.c.bc @@ -0,0 +1,73 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arg.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_arg.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @foo(ptr noundef %ptr) #0 !dbg !10 { +entry: + %ptr.addr = alloca ptr, align 8 + store ptr %ptr, ptr %ptr.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %ptr.addr, metadata !17, metadata !DIExpression()), !dbg !18 + %0 = load ptr, ptr %ptr.addr, align 8, !dbg !19 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !20 + ret void, !dbg !21 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !26, metadata !DIExpression()), !dbg !27 + store ptr null, ptr %ptr, align 8, !dbg !27 + %0 = load ptr, ptr %ptr, align 8, !dbg !28 + call void @foo(ptr noundef %0), !dbg !29 + ret i32 0, !dbg !30 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_arg.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "0ab012d2c3047e6602665c0443fd1d85") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_arg.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "0ab012d2c3047e6602665c0443fd1d85") +!12 = !DISubroutineType(types: !13) +!13 = !{null, !14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!16 = !{} +!17 = !DILocalVariable(name: "ptr", arg: 1, scope: !10, file: !11, line: 5, type: !14) +!18 = !DILocation(line: 5, column: 16, scope: !10) +!19 = !DILocation(line: 6, column: 17, scope: !10) +!20 = !DILocation(line: 6, column: 5, scope: !10) +!21 = !DILocation(line: 7, column: 1, scope: !10) +!22 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !23, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!23 = !DISubroutineType(types: !24) +!24 = !{!25} +!25 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!26 = !DILocalVariable(name: "ptr", scope: !22, file: !11, line: 10, type: !14) +!27 = !DILocation(line: 10, column: 11, scope: !22) +!28 = !DILocation(line: 12, column: 9, scope: !22) +!29 = !DILocation(line: 12, column: 5, scope: !22) +!30 = !DILocation(line: 14, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arithmetic.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arithmetic.c.bc new file mode 100644 index 00000000..7b1d9d43 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arithmetic.c.bc @@ -0,0 +1,63 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_arithmetic.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_arithmetic.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + %newPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !16, metadata !DIExpression()), !dbg !19 + store ptr null, ptr %ptr, align 8, !dbg !19 + call void @llvm.dbg.declare(metadata ptr %newPtr, metadata !20, metadata !DIExpression()), !dbg !21 + %0 = load ptr, ptr %ptr, align 8, !dbg !22 + %add.ptr = getelementptr inbounds i8, ptr %0, i64 5, !dbg !23 + store ptr %add.ptr, ptr %newPtr, align 8, !dbg !21 + %1 = load ptr, ptr %newPtr, align 8, !dbg !24 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !25 + ret i32 0, !dbg !26 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_arithmetic.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "265584175a9432d3e06216934bd145a0") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_arithmetic.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "265584175a9432d3e06216934bd145a0") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "ptr", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!19 = !DILocation(line: 6, column: 11, scope: !10) +!20 = !DILocalVariable(name: "newPtr", scope: !10, file: !11, line: 8, type: !17) +!21 = !DILocation(line: 8, column: 11, scope: !10) +!22 = !DILocation(line: 8, column: 20, scope: !10) +!23 = !DILocation(line: 8, column: 24, scope: !10) +!24 = !DILocation(line: 10, column: 17, scope: !10) +!25 = !DILocation(line: 10, column: 5, scope: !10) +!26 = !DILocation(line: 12, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_branch.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_branch.c.bc new file mode 100644 index 00000000..0c251250 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_branch.c.bc @@ -0,0 +1,83 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_branch.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_branch.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + %a = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !19, metadata !DIExpression()), !dbg !20 + %call = call noalias ptr @malloc(i64 noundef 1) #4, !dbg !21 + store ptr %call, ptr %ptr, align 8, !dbg !20 + call void @llvm.dbg.declare(metadata ptr %a, metadata !22, metadata !DIExpression()), !dbg !23 + store i32 0, ptr %a, align 4, !dbg !23 + %0 = load i32, ptr %a, align 4, !dbg !24 + %cmp = icmp sge i32 %0, 0, !dbg !26 + br i1 %cmp, label %if.then, label %if.end, !dbg !27 + +if.then: ; preds = %entry + store ptr null, ptr %ptr, align 8, !dbg !28 + br label %if.end, !dbg !30 + +if.end: ; preds = %if.then, %entry + %1 = load ptr, ptr %ptr, align 8, !dbg !31 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !32 + ret i32 0, !dbg !33 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @UNSAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "0d4ae71be823cafaf5956a75b5af7ba6") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 6, type: !15, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "0d4ae71be823cafaf5956a75b5af7ba6") +!15 = !DISubroutineType(types: !16) +!16 = !{!17} +!17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!18 = !{} +!19 = !DILocalVariable(name: "ptr", scope: !13, file: !14, line: 7, type: !3) +!20 = !DILocation(line: 7, column: 11, scope: !13) +!21 = !DILocation(line: 7, column: 25, scope: !13) +!22 = !DILocalVariable(name: "a", scope: !13, file: !14, line: 9, type: !17) +!23 = !DILocation(line: 9, column: 9, scope: !13) +!24 = !DILocation(line: 11, column: 9, scope: !25) +!25 = distinct !DILexicalBlock(scope: !13, file: !14, line: 11, column: 9) +!26 = !DILocation(line: 11, column: 11, scope: !25) +!27 = !DILocation(line: 11, column: 9, scope: !13) +!28 = !DILocation(line: 12, column: 13, scope: !29) +!29 = distinct !DILexicalBlock(scope: !25, file: !14, line: 11, column: 17) +!30 = !DILocation(line: 13, column: 5, scope: !29) +!31 = !DILocation(line: 15, column: 17, scope: !13) +!32 = !DILocation(line: 15, column: 5, scope: !13) +!33 = !DILocation(line: 17, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_doubleptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_doubleptr.c.bc new file mode 100644 index 00000000..07efd7ab --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_doubleptr.c.bc @@ -0,0 +1,55 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_doubleptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_doubleptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %double_ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %double_ptr, metadata !16, metadata !DIExpression()), !dbg !20 + store ptr null, ptr %double_ptr, align 8, !dbg !20 + %0 = load ptr, ptr %double_ptr, align 8, !dbg !21 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !22 + ret i32 0, !dbg !23 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_doubleptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "09373094da7e6e80280d35311814136d") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_doubleptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "09373094da7e6e80280d35311814136d") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "double_ptr", scope: !10, file: !11, line: 7, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !19, size: 64) +!19 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!20 = !DILocation(line: 7, column: 12, scope: !10) +!21 = !DILocation(line: 8, column: 17, scope: !10) +!22 = !DILocation(line: 8, column: 5, scope: !10) +!23 = !DILocation(line: 10, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_func_return_val.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_func_return_val.c.bc new file mode 100644 index 00000000..a5f03ea9 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_func_return_val.c.bc @@ -0,0 +1,66 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_func_return_val.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_func_return_val.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @getNullPointer() #0 !dbg !10 { +entry: + ret ptr null, !dbg !17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !22, metadata !DIExpression()), !dbg !23 + %call = call ptr @getNullPointer(), !dbg !24 + store ptr %call, ptr %ptr, align 8, !dbg !23 + %0 = load ptr, ptr %ptr, align 8, !dbg !25 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !26 + ret i32 0, !dbg !27 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c92c3338265ba33a0bf4f7beddc9f9e6") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "getNullPointer", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c92c3338265ba33a0bf4f7beddc9f9e6") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!16 = !{} +!17 = !DILocation(line: 6, column: 5, scope: !10) +!18 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !19, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!19 = !DISubroutineType(types: !20) +!20 = !{!21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !DILocalVariable(name: "ptr", scope: !18, file: !11, line: 10, type: !14) +!23 = !DILocation(line: 10, column: 11, scope: !18) +!24 = !DILocation(line: 10, column: 17, scope: !18) +!25 = !DILocation(line: 12, column: 17, scope: !18) +!26 = !DILocation(line: 12, column: 5, scope: !18) +!27 = !DILocation(line: 14, column: 5, scope: !18) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_null.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_null.c.bc new file mode 100644 index 00000000..081dcf9a --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_null.c.bc @@ -0,0 +1,63 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_null.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_in_struct_null.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.S = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %myStruct = alloca %struct.S, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %myStruct, metadata !16, metadata !DIExpression()), !dbg !22 + %ptr = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !23 + store ptr null, ptr %ptr, align 8, !dbg !24 + %ptr1 = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !25 + %0 = load ptr, ptr %ptr1, align 8, !dbg !25 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !26 + ret i32 0, !dbg !27 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_in_struct_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c1e1261e90f36f41c9eccabbf13c1b1a") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 13, type: !12, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_in_struct_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c1e1261e90f36f41c9eccabbf13c1b1a") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "myStruct", scope: !10, file: !11, line: 14, type: !17) +!17 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !11, line: 9, size: 64, elements: !18) +!18 = !{!19} +!19 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !17, file: !11, line: 10, baseType: !20, size: 64) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !21, size: 64) +!21 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!22 = !DILocation(line: 14, column: 14, scope: !10) +!23 = !DILocation(line: 15, column: 14, scope: !10) +!24 = !DILocation(line: 15, column: 18, scope: !10) +!25 = !DILocation(line: 17, column: 26, scope: !10) +!26 = !DILocation(line: 17, column: 5, scope: !10) +!27 = !DILocation(line: 19, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c.bc new file mode 100644 index 00000000..95c3d1eb --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c.bc @@ -0,0 +1,59 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.S = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %myStruct = alloca %struct.S, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %myStruct, metadata !16, metadata !DIExpression()), !dbg !22 + %ptr = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !23 + %0 = load ptr, ptr %ptr, align 8, !dbg !23 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !24 + ret i32 0, !dbg !25 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "27815122e789665eefd01da43006ccea") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 13, type: !12, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_in_struct_uninitialized.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "27815122e789665eefd01da43006ccea") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "myStruct", scope: !10, file: !11, line: 14, type: !17) +!17 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !11, line: 9, size: 64, elements: !18) +!18 = !{!19} +!19 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !17, file: !11, line: 10, baseType: !20, size: 64) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !21, size: 64) +!21 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!22 = !DILocation(line: 14, column: 14, scope: !10) +!23 = !DILocation(line: 16, column: 26, scope: !10) +!24 = !DILocation(line: 16, column: 5, scope: !10) +!25 = !DILocation(line: 18, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c.bc new file mode 100644 index 00000000..0caecc68 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c.bc @@ -0,0 +1,83 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @getNullPointer() #0 !dbg !10 { +entry: + ret ptr null, !dbg !17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @foo() #0 !dbg !18 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !19, metadata !DIExpression()), !dbg !20 + %call = call ptr @getNullPointer(), !dbg !21 + store ptr %call, ptr %p, align 8, !dbg !20 + %0 = load ptr, ptr %p, align 8, !dbg !22 + ret ptr %0, !dbg !23 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !24 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !28, metadata !DIExpression()), !dbg !29 + %call = call ptr @foo(), !dbg !30 + store ptr %call, ptr %ptr, align 8, !dbg !29 + %0 = load ptr, ptr %ptr, align 8, !dbg !31 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !32 + ret i32 0, !dbg !33 +} + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "748cf97073c9401df9377feeea6ebaf7") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "getNullPointer", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_indirect_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "748cf97073c9401df9377feeea6ebaf7") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!16 = !{} +!17 = !DILocation(line: 6, column: 5, scope: !10) +!18 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!19 = !DILocalVariable(name: "p", scope: !18, file: !11, line: 10, type: !14) +!20 = !DILocation(line: 10, column: 11, scope: !18) +!21 = !DILocation(line: 10, column: 15, scope: !18) +!22 = !DILocation(line: 11, column: 12, scope: !18) +!23 = !DILocation(line: 11, column: 5, scope: !18) +!24 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 14, type: !25, scopeLine: 14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!25 = !DISubroutineType(types: !26) +!26 = !{!27} +!27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!28 = !DILocalVariable(name: "ptr", scope: !24, file: !11, line: 15, type: !14) +!29 = !DILocation(line: 15, column: 11, scope: !24) +!30 = !DILocation(line: 15, column: 17, scope: !24) +!31 = !DILocation(line: 17, column: 17, scope: !24) +!32 = !DILocation(line: 17, column: 5, scope: !24) +!33 = !DILocation(line: 19, column: 5, scope: !24) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c.bc new file mode 100644 index 00000000..42f6ec33 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c.bc @@ -0,0 +1,74 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 100) #5, !dbg !20 + store ptr %call, ptr %p, align 8, !dbg !19 + %0 = load ptr, ptr %p, align 8, !dbg !21 + store i8 46, ptr %0, align 1, !dbg !22 + %1 = load ptr, ptr %p, align 8, !dbg !23 + call void @free(ptr noundef %1) #6, !dbg !24 + store ptr null, ptr %p, align 8, !dbg !25 + %2 = load ptr, ptr %p, align 8, !dbg !26 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !27 + ret i32 0, !dbg !28 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "37271ae139b23d4a001b99fd6e59ce66") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_partial_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "37271ae139b23d4a001b99fd6e59ce66") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!19 = !DILocation(line: 6, column: 11, scope: !10) +!20 = !DILocation(line: 6, column: 15, scope: !10) +!21 = !DILocation(line: 7, column: 6, scope: !10) +!22 = !DILocation(line: 7, column: 8, scope: !10) +!23 = !DILocation(line: 8, column: 10, scope: !10) +!24 = !DILocation(line: 8, column: 5, scope: !10) +!25 = !DILocation(line: 9, column: 7, scope: !10) +!26 = !DILocation(line: 10, column: 17, scope: !10) +!27 = !DILocation(line: 10, column: 5, scope: !10) +!28 = !DILocation(line: 11, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_simple.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_simple.c.bc new file mode 100644 index 00000000..3f9e2637 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_simple.c.bc @@ -0,0 +1,52 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_simple.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_simple.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !19 + store ptr null, ptr %p, align 8, !dbg !19 + %0 = load ptr, ptr %p, align 8, !dbg !20 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !21 + ret i32 0, !dbg !22 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_simple.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "77e0764e15d5498b3b413430038ff96e") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_simple.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "77e0764e15d5498b3b413430038ff96e") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!19 = !DILocation(line: 6, column: 9, scope: !10) +!20 = !DILocation(line: 7, column: 15, scope: !10) +!21 = !DILocation(line: 7, column: 3, scope: !10) +!22 = !DILocation(line: 8, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c.bc new file mode 100644 index 00000000..91fdc6bd --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c.bc @@ -0,0 +1,51 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !19 + %0 = load ptr, ptr %p, align 8, !dbg !20 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !21 + ret i32 0, !dbg !22 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "87fd8fae3dc4eca3c3774cae7ad90989") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/char_ptr_uninit_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "87fd8fae3dc4eca3c3774cae7ad90989") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 5, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!19 = !DILocation(line: 5, column: 11, scope: !10) +!20 = !DILocation(line: 6, column: 17, scope: !10) +!21 = !DILocation(line: 6, column: 5, scope: !10) +!22 = !DILocation(line: 7, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_branch.c.bc b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_branch.c.bc new file mode 100644 index 00000000..310f2525 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_branch.c.bc @@ -0,0 +1,101 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_branch.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_branch.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %a = alloca i32, align 4 + %myPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !18, metadata !DIExpression()), !dbg !19 + store i32 5, ptr %a, align 4, !dbg !19 + call void @llvm.dbg.declare(metadata ptr %myPtr, metadata !20, metadata !DIExpression()), !dbg !21 + %call = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !22 + store ptr %call, ptr %myPtr, align 8, !dbg !23 + %0 = load ptr, ptr %myPtr, align 8, !dbg !24 + call void @free(ptr noundef %0) #6, !dbg !25 + %1 = load ptr, ptr %myPtr, align 8, !dbg !26 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !27 + %2 = load i32, ptr %a, align 4, !dbg !28 + %cmp = icmp sgt i32 %2, 0, !dbg !30 + br i1 %cmp, label %if.then, label %if.else, !dbg !31 + +if.then: ; preds = %entry + store ptr %a, ptr %myPtr, align 8, !dbg !32 + br label %if.end, !dbg !34 + +if.else: ; preds = %entry + br label %if.end + +if.end: ; preds = %if.else, %if.then + %3 = load ptr, ptr %myPtr, align 8, !dbg !35 + call void @SAFE_LOAD(ptr noundef %3), !dbg !36 + ret i32 0, !dbg !37 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +declare void @SAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a15daa859046d0bdb5ba729fa41fb5d8") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 10, type: !15, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/dangleptr_safe_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a15daa859046d0bdb5ba729fa41fb5d8") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "a", scope: !13, file: !14, line: 11, type: !4) +!19 = !DILocation(line: 11, column: 9, scope: !13) +!20 = !DILocalVariable(name: "myPtr", scope: !13, file: !14, line: 13, type: !3) +!21 = !DILocation(line: 13, column: 10, scope: !13) +!22 = !DILocation(line: 15, column: 19, scope: !13) +!23 = !DILocation(line: 15, column: 11, scope: !13) +!24 = !DILocation(line: 16, column: 10, scope: !13) +!25 = !DILocation(line: 16, column: 5, scope: !13) +!26 = !DILocation(line: 17, column: 17, scope: !13) +!27 = !DILocation(line: 17, column: 5, scope: !13) +!28 = !DILocation(line: 18, column: 9, scope: !29) +!29 = distinct !DILexicalBlock(scope: !13, file: !14, line: 18, column: 9) +!30 = !DILocation(line: 18, column: 11, scope: !29) +!31 = !DILocation(line: 18, column: 9, scope: !13) +!32 = !DILocation(line: 20, column: 15, scope: !33) +!33 = distinct !DILexicalBlock(scope: !29, file: !14, line: 19, column: 5) +!34 = !DILocation(line: 21, column: 5, scope: !33) +!35 = !DILocation(line: 26, column: 15, scope: !13) +!36 = !DILocation(line: 26, column: 5, scope: !13) +!37 = !DILocation(line: 27, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c.bc b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c.bc new file mode 100644 index 00000000..d1f66f35 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c.bc @@ -0,0 +1,78 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %a = alloca i32, align 4 + %myPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !18, metadata !DIExpression()), !dbg !19 + store i32 5, ptr %a, align 4, !dbg !19 + call void @llvm.dbg.declare(metadata ptr %myPtr, metadata !20, metadata !DIExpression()), !dbg !21 + %call = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !22 + store ptr %call, ptr %myPtr, align 8, !dbg !23 + %0 = load ptr, ptr %myPtr, align 8, !dbg !24 + call void @free(ptr noundef %0) #6, !dbg !25 + store ptr %a, ptr %myPtr, align 8, !dbg !26 + %1 = load ptr, ptr %myPtr, align 8, !dbg !27 + call void @SAFE_LOAD(ptr noundef %1), !dbg !28 + ret i32 0, !dbg !29 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @SAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "88f1eaf3fba4573b335927d10a997f56") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 10, type: !15, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/dangleptr_safe_free_and_reassign.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "88f1eaf3fba4573b335927d10a997f56") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "a", scope: !13, file: !14, line: 11, type: !4) +!19 = !DILocation(line: 11, column: 9, scope: !13) +!20 = !DILocalVariable(name: "myPtr", scope: !13, file: !14, line: 13, type: !3) +!21 = !DILocation(line: 13, column: 10, scope: !13) +!22 = !DILocation(line: 15, column: 19, scope: !13) +!23 = !DILocation(line: 15, column: 11, scope: !13) +!24 = !DILocation(line: 16, column: 10, scope: !13) +!25 = !DILocation(line: 16, column: 5, scope: !13) +!26 = !DILocation(line: 18, column: 11, scope: !13) +!27 = !DILocation(line: 19, column: 15, scope: !13) +!28 = !DILocation(line: 19, column: 5, scope: !13) +!29 = !DILocation(line: 20, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c.bc b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c.bc new file mode 100644 index 00000000..302a2656 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c.bc @@ -0,0 +1,84 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %myPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %myPtr, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !20 + store ptr %call, ptr %myPtr, align 8, !dbg !19 + %0 = load ptr, ptr %myPtr, align 8, !dbg !21 + call void @free(ptr noundef %0) #6, !dbg !22 + %1 = load ptr, ptr %myPtr, align 8, !dbg !23 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !24 + %call1 = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !25 + store ptr %call1, ptr %myPtr, align 8, !dbg !26 + %2 = load ptr, ptr %myPtr, align 8, !dbg !27 + store i32 200, ptr %2, align 4, !dbg !28 + %3 = load ptr, ptr %myPtr, align 8, !dbg !29 + call void @SAFE_LOAD(ptr noundef %3), !dbg !30 + ret i32 0, !dbg !31 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +declare void @SAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "749a0d320b4cea57ddd5e79a8f3befd6") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 10, type: !15, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/dangleptr_safe_free_and_remalloc.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "749a0d320b4cea57ddd5e79a8f3befd6") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "myPtr", scope: !13, file: !14, line: 11, type: !3) +!19 = !DILocation(line: 11, column: 10, scope: !13) +!20 = !DILocation(line: 11, column: 24, scope: !13) +!21 = !DILocation(line: 12, column: 10, scope: !13) +!22 = !DILocation(line: 12, column: 5, scope: !13) +!23 = !DILocation(line: 13, column: 17, scope: !13) +!24 = !DILocation(line: 13, column: 5, scope: !13) +!25 = !DILocation(line: 14, column: 19, scope: !13) +!26 = !DILocation(line: 14, column: 11, scope: !13) +!27 = !DILocation(line: 15, column: 6, scope: !13) +!28 = !DILocation(line: 15, column: 12, scope: !13) +!29 = !DILocation(line: 16, column: 15, scope: !13) +!30 = !DILocation(line: 16, column: 5, scope: !13) +!31 = !DILocation(line: 17, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load.c.bc b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load.c.bc new file mode 100644 index 00000000..cac43b29 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load.c.bc @@ -0,0 +1,64 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_load.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %myPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %myPtr, metadata !16, metadata !DIExpression()), !dbg !18 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !19 + store ptr %call, ptr %myPtr, align 8, !dbg !18 + %0 = load ptr, ptr %myPtr, align 8, !dbg !20 + store i32 123, ptr %0, align 4, !dbg !21 + %1 = load ptr, ptr %myPtr, align 8, !dbg !22 + call void @SAFE_LOAD(ptr noundef %1), !dbg !23 + ret i32 0, !dbg !24 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_load.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "4de309611f59869d338cc2d43d8aa8f4") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 8, type: !12, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/dangleptr_safe_load.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "4de309611f59869d338cc2d43d8aa8f4") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "myPtr", scope: !10, file: !11, line: 9, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 9, column: 10, scope: !10) +!19 = !DILocation(line: 9, column: 18, scope: !10) +!20 = !DILocation(line: 10, column: 6, scope: !10) +!21 = !DILocation(line: 10, column: 13, scope: !10) +!22 = !DILocation(line: 11, column: 15, scope: !10) +!23 = !DILocation(line: 11, column: 5, scope: !10) +!24 = !DILocation(line: 12, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c.bc b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c.bc new file mode 100644 index 00000000..95add4b6 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c.bc @@ -0,0 +1,96 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %safePtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %safePtr, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !20 + store ptr %call, ptr %safePtr, align 8, !dbg !19 + %0 = load ptr, ptr %safePtr, align 8, !dbg !21 + store i32 777, ptr %0, align 4, !dbg !22 + %1 = load ptr, ptr %safePtr, align 8, !dbg !23 + call void @SAFE_LOAD(ptr noundef %1), !dbg !24 + %2 = load ptr, ptr %safePtr, align 8, !dbg !25 + call void @free(ptr noundef %2) #6, !dbg !26 + %call1 = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !27 + store ptr %call1, ptr %safePtr, align 8, !dbg !28 + %3 = load ptr, ptr %safePtr, align 8, !dbg !29 + store i32 888, ptr %3, align 4, !dbg !30 + %4 = load ptr, ptr %safePtr, align 8, !dbg !31 + call void @SAFE_LOAD(ptr noundef %4), !dbg !32 + %5 = load ptr, ptr %safePtr, align 8, !dbg !33 + %6 = load i32, ptr %5, align 4, !dbg !34 + %cmp = icmp eq i32 %6, 888, !dbg !35 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !36 + ret i32 0, !dbg !37 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #4 + +declare void @svf_assert(i1 noundef zeroext) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c8bd096ae634b2615c528b0caae7e13b") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 11, type: !15, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/dangleptr_safe_load_reassign.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c8bd096ae634b2615c528b0caae7e13b") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "safePtr", scope: !13, file: !14, line: 12, type: !3) +!19 = !DILocation(line: 12, column: 10, scope: !13) +!20 = !DILocation(line: 12, column: 27, scope: !13) +!21 = !DILocation(line: 13, column: 6, scope: !13) +!22 = !DILocation(line: 13, column: 14, scope: !13) +!23 = !DILocation(line: 14, column: 15, scope: !13) +!24 = !DILocation(line: 14, column: 5, scope: !13) +!25 = !DILocation(line: 16, column: 10, scope: !13) +!26 = !DILocation(line: 16, column: 5, scope: !13) +!27 = !DILocation(line: 18, column: 22, scope: !13) +!28 = !DILocation(line: 18, column: 13, scope: !13) +!29 = !DILocation(line: 19, column: 6, scope: !13) +!30 = !DILocation(line: 19, column: 14, scope: !13) +!31 = !DILocation(line: 20, column: 15, scope: !13) +!32 = !DILocation(line: 20, column: 5, scope: !13) +!33 = !DILocation(line: 21, column: 17, scope: !13) +!34 = !DILocation(line: 21, column: 16, scope: !13) +!35 = !DILocation(line: 21, column: 25, scope: !13) +!36 = !DILocation(line: 21, column: 5, scope: !13) +!37 = !DILocation(line: 23, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c.bc b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c.bc new file mode 100644 index 00000000..109859da --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c.bc @@ -0,0 +1,99 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %a = alloca i32, align 4 + %myPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !18, metadata !DIExpression()), !dbg !19 + store i32 5, ptr %a, align 4, !dbg !19 + call void @llvm.dbg.declare(metadata ptr %myPtr, metadata !20, metadata !DIExpression()), !dbg !21 + %call = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !22 + store ptr %call, ptr %myPtr, align 8, !dbg !23 + %0 = load ptr, ptr %myPtr, align 8, !dbg !24 + call void @free(ptr noundef %0) #6, !dbg !25 + %1 = load ptr, ptr %myPtr, align 8, !dbg !26 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !27 + %2 = load i32, ptr %a, align 4, !dbg !28 + %cmp = icmp slt i32 %2, 0, !dbg !30 + br i1 %cmp, label %if.then, label %if.else, !dbg !31 + +if.then: ; preds = %entry + store ptr %a, ptr %myPtr, align 8, !dbg !32 + br label %if.end, !dbg !34 + +if.else: ; preds = %entry + br label %if.end + +if.end: ; preds = %if.else, %if.then + %3 = load ptr, ptr %myPtr, align 8, !dbg !35 + call void @UNSAFE_LOAD(ptr noundef %3), !dbg !36 + ret i32 0, !dbg !37 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "2e936a0771072b5c24c44bdb86429da4") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 10, type: !15, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/dangleptr_unsafe_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "2e936a0771072b5c24c44bdb86429da4") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "a", scope: !13, file: !14, line: 11, type: !4) +!19 = !DILocation(line: 11, column: 9, scope: !13) +!20 = !DILocalVariable(name: "myPtr", scope: !13, file: !14, line: 13, type: !3) +!21 = !DILocation(line: 13, column: 10, scope: !13) +!22 = !DILocation(line: 15, column: 19, scope: !13) +!23 = !DILocation(line: 15, column: 11, scope: !13) +!24 = !DILocation(line: 16, column: 10, scope: !13) +!25 = !DILocation(line: 16, column: 5, scope: !13) +!26 = !DILocation(line: 17, column: 17, scope: !13) +!27 = !DILocation(line: 17, column: 5, scope: !13) +!28 = !DILocation(line: 18, column: 9, scope: !29) +!29 = distinct !DILexicalBlock(scope: !13, file: !14, line: 18, column: 9) +!30 = !DILocation(line: 18, column: 11, scope: !29) +!31 = !DILocation(line: 18, column: 9, scope: !13) +!32 = !DILocation(line: 20, column: 15, scope: !33) +!33 = distinct !DILexicalBlock(scope: !29, file: !14, line: 19, column: 5) +!34 = !DILocation(line: 21, column: 5, scope: !33) +!35 = !DILocation(line: 26, column: 17, scope: !13) +!36 = !DILocation(line: 26, column: 5, scope: !13) +!37 = !DILocation(line: 27, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c.bc new file mode 100644 index 00000000..cfa9e9ad --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c.bc @@ -0,0 +1,78 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %myPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %myPtr, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !20 + store ptr %call, ptr %myPtr, align 8, !dbg !19 + %0 = load ptr, ptr %myPtr, align 8, !dbg !21 + store i32 200, ptr %0, align 4, !dbg !22 + %1 = load ptr, ptr %myPtr, align 8, !dbg !23 + call void @free(ptr noundef %1) #6, !dbg !24 + %2 = load ptr, ptr %myPtr, align 8, !dbg !25 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !26 + %3 = load ptr, ptr %myPtr, align 8, !dbg !27 + store i32 404, ptr %3, align 4, !dbg !28 + ret i32 0, !dbg !29 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "aa409ef234ccb81eb0837072f1920bcc") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 9, type: !15, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/dangleptr_unsafe_load_dangleptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "aa409ef234ccb81eb0837072f1920bcc") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "myPtr", scope: !13, file: !14, line: 10, type: !3) +!19 = !DILocation(line: 10, column: 10, scope: !13) +!20 = !DILocation(line: 10, column: 24, scope: !13) +!21 = !DILocation(line: 12, column: 6, scope: !13) +!22 = !DILocation(line: 12, column: 12, scope: !13) +!23 = !DILocation(line: 13, column: 10, scope: !13) +!24 = !DILocation(line: 13, column: 5, scope: !13) +!25 = !DILocation(line: 14, column: 17, scope: !13) +!26 = !DILocation(line: 14, column: 5, scope: !13) +!27 = !DILocation(line: 15, column: 6, scope: !13) +!28 = !DILocation(line: 15, column: 12, scope: !13) +!29 = !DILocation(line: 16, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_1.c.bc b/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_1.c.bc new file mode 100644 index 00000000..0efb90fa --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_1.c.bc @@ -0,0 +1,55 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_1.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/func_nullptr_func_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %funcPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %funcPtr, metadata !16, metadata !DIExpression()), !dbg !20 + store ptr null, ptr %funcPtr, align 8, !dbg !20 + %0 = load ptr, ptr %funcPtr, align 8, !dbg !21 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !22 + ret i32 0, !dbg !23 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/func_nullptr_func_1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ffe926affe5757bb0fa708bd7167b708") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/func_nullptr_func_1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ffe926affe5757bb0fa708bd7167b708") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "funcPtr", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DISubroutineType(types: !19) +!19 = !{null, null} +!20 = !DILocation(line: 6, column: 12, scope: !10) +!21 = !DILocation(line: 8, column: 17, scope: !10) +!22 = !DILocation(line: 8, column: 5, scope: !10) +!23 = !DILocation(line: 10, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_2.c.bc b/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_2.c.bc new file mode 100644 index 00000000..cc849b02 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_2.c.bc @@ -0,0 +1,75 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/func_nullptr_func_2.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/func_nullptr_func_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @invokeFunction(ptr noundef %func) #0 !dbg !10 { +entry: + %func.addr = alloca ptr, align 8 + store ptr %func, ptr %func.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %func.addr, metadata !19, metadata !DIExpression()), !dbg !20 + %0 = load ptr, ptr %func.addr, align 8, !dbg !21 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !22 + ret void, !dbg !23 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !24 { +entry: + %retval = alloca i32, align 4 + %funcPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %funcPtr, metadata !28, metadata !DIExpression()), !dbg !29 + store ptr null, ptr %funcPtr, align 8, !dbg !29 + %0 = load ptr, ptr %funcPtr, align 8, !dbg !30 + call void @invokeFunction(ptr noundef %0), !dbg !31 + ret i32 0, !dbg !32 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/func_nullptr_func_2.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "e7751e91d25f23368082eec97fa46466") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "invokeFunction", scope: !11, file: !11, line: 6, type: !12, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/func_nullptr_func_2.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "e7751e91d25f23368082eec97fa46466") +!12 = !DISubroutineType(types: !13) +!13 = !{null, !14} +!14 = !DIDerivedType(tag: DW_TAG_typedef, name: "FuncPtr", file: !11, line: 4, baseType: !15) +!15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !16, size: 64) +!16 = !DISubroutineType(types: !17) +!17 = !{null, null} +!18 = !{} +!19 = !DILocalVariable(name: "func", arg: 1, scope: !10, file: !11, line: 6, type: !14) +!20 = !DILocation(line: 6, column: 29, scope: !10) +!21 = !DILocation(line: 7, column: 17, scope: !10) +!22 = !DILocation(line: 7, column: 5, scope: !10) +!23 = !DILocation(line: 8, column: 1, scope: !10) +!24 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !25, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) +!25 = !DISubroutineType(types: !26) +!26 = !{!27} +!27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!28 = !DILocalVariable(name: "funcPtr", scope: !24, file: !11, line: 11, type: !14) +!29 = !DILocation(line: 11, column: 13, scope: !24) +!30 = !DILocation(line: 13, column: 20, scope: !24) +!31 = !DILocation(line: 13, column: 5, scope: !24) +!32 = !DILocation(line: 15, column: 5, scope: !24) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arg.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arg.c.bc new file mode 100644 index 00000000..2b7480b3 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arg.c.bc @@ -0,0 +1,72 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arg.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_arg.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @foo(ptr noundef %ptr) #0 !dbg !10 { +entry: + %ptr.addr = alloca ptr, align 8 + store ptr %ptr, ptr %ptr.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %ptr.addr, metadata !17, metadata !DIExpression()), !dbg !18 + %0 = load ptr, ptr %ptr.addr, align 8, !dbg !19 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !20 + ret void, !dbg !21 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !25, metadata !DIExpression()), !dbg !26 + store ptr null, ptr %ptr, align 8, !dbg !26 + %0 = load ptr, ptr %ptr, align 8, !dbg !27 + call void @foo(ptr noundef %0), !dbg !28 + ret i32 0, !dbg !29 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_arg.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ccc8e04f9bac9227d05ce9c71beaab8d") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_arg.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ccc8e04f9bac9227d05ce9c71beaab8d") +!12 = !DISubroutineType(types: !13) +!13 = !{null, !14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!16 = !{} +!17 = !DILocalVariable(name: "ptr", arg: 1, scope: !10, file: !11, line: 5, type: !14) +!18 = !DILocation(line: 5, column: 15, scope: !10) +!19 = !DILocation(line: 6, column: 17, scope: !10) +!20 = !DILocation(line: 6, column: 5, scope: !10) +!21 = !DILocation(line: 7, column: 1, scope: !10) +!22 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !23, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!23 = !DISubroutineType(types: !24) +!24 = !{!15} +!25 = !DILocalVariable(name: "ptr", scope: !22, file: !11, line: 10, type: !14) +!26 = !DILocation(line: 10, column: 10, scope: !22) +!27 = !DILocation(line: 12, column: 9, scope: !22) +!28 = !DILocation(line: 12, column: 5, scope: !22) +!29 = !DILocation(line: 14, column: 5, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arithmetic.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arithmetic.c.bc new file mode 100644 index 00000000..f8c762f5 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arithmetic.c.bc @@ -0,0 +1,62 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_arithmetic.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_arithmetic.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + %newPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !16, metadata !DIExpression()), !dbg !18 + store ptr null, ptr %ptr, align 8, !dbg !18 + call void @llvm.dbg.declare(metadata ptr %newPtr, metadata !19, metadata !DIExpression()), !dbg !20 + %0 = load ptr, ptr %ptr, align 8, !dbg !21 + %add.ptr = getelementptr inbounds i32, ptr %0, i64 5, !dbg !22 + store ptr %add.ptr, ptr %newPtr, align 8, !dbg !20 + %1 = load ptr, ptr %newPtr, align 8, !dbg !23 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !24 + ret i32 0, !dbg !25 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_arithmetic.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "e07c4bf9a3f8cba31464cff525faa6c9") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_arithmetic.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "e07c4bf9a3f8cba31464cff525faa6c9") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "ptr", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 6, column: 10, scope: !10) +!19 = !DILocalVariable(name: "newPtr", scope: !10, file: !11, line: 8, type: !17) +!20 = !DILocation(line: 8, column: 10, scope: !10) +!21 = !DILocation(line: 8, column: 19, scope: !10) +!22 = !DILocation(line: 8, column: 23, scope: !10) +!23 = !DILocation(line: 10, column: 17, scope: !10) +!24 = !DILocation(line: 10, column: 5, scope: !10) +!25 = !DILocation(line: 12, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_branch.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_branch.c.bc new file mode 100644 index 00000000..ee4897f6 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_branch.c.bc @@ -0,0 +1,82 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_branch.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_branch.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !13 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + %a = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !18, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !20 + store ptr %call, ptr %ptr, align 8, !dbg !19 + call void @llvm.dbg.declare(metadata ptr %a, metadata !21, metadata !DIExpression()), !dbg !22 + store i32 0, ptr %a, align 4, !dbg !22 + %0 = load i32, ptr %a, align 4, !dbg !23 + %cmp = icmp sge i32 %0, 0, !dbg !25 + br i1 %cmp, label %if.then, label %if.end, !dbg !26 + +if.then: ; preds = %entry + store ptr null, ptr %ptr, align 8, !dbg !27 + br label %if.end, !dbg !29 + +if.end: ; preds = %if.then, %entry + %1 = load ptr, ptr %ptr, align 8, !dbg !30 + call void @UNSAFE_LOAD(ptr noundef %1), !dbg !31 + ret i32 0, !dbg !32 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @UNSAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} +!llvm.ident = !{!12} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d5fc094bbe38568046f525de1b96af2f") +!2 = !{!3} +!3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!5 = !{i32 7, !"Dwarf Version", i32 5} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = !{i32 1, !"wchar_size", i32 4} +!8 = !{i32 8, !"PIC Level", i32 2} +!9 = !{i32 7, !"PIE Level", i32 2} +!10 = !{i32 7, !"uwtable", i32 2} +!11 = !{i32 7, !"frame-pointer", i32 2} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!13 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 6, type: !15, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) +!14 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_branch.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "d5fc094bbe38568046f525de1b96af2f") +!15 = !DISubroutineType(types: !16) +!16 = !{!4} +!17 = !{} +!18 = !DILocalVariable(name: "ptr", scope: !13, file: !14, line: 7, type: !3) +!19 = !DILocation(line: 7, column: 10, scope: !13) +!20 = !DILocation(line: 7, column: 23, scope: !13) +!21 = !DILocalVariable(name: "a", scope: !13, file: !14, line: 9, type: !4) +!22 = !DILocation(line: 9, column: 9, scope: !13) +!23 = !DILocation(line: 11, column: 9, scope: !24) +!24 = distinct !DILexicalBlock(scope: !13, file: !14, line: 11, column: 9) +!25 = !DILocation(line: 11, column: 11, scope: !24) +!26 = !DILocation(line: 11, column: 9, scope: !13) +!27 = !DILocation(line: 12, column: 13, scope: !28) +!28 = distinct !DILexicalBlock(scope: !24, file: !14, line: 11, column: 17) +!29 = !DILocation(line: 13, column: 5, scope: !28) +!30 = !DILocation(line: 15, column: 17, scope: !13) +!31 = !DILocation(line: 15, column: 5, scope: !13) +!32 = !DILocation(line: 17, column: 5, scope: !13) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_doubleptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_doubleptr.c.bc new file mode 100644 index 00000000..c90fe277 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_doubleptr.c.bc @@ -0,0 +1,54 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_doubleptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_doubleptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %double_ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %double_ptr, metadata !16, metadata !DIExpression()), !dbg !19 + store ptr null, ptr %double_ptr, align 8, !dbg !19 + %0 = load ptr, ptr %double_ptr, align 8, !dbg !20 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !21 + ret i32 0, !dbg !22 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_doubleptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "66ee25a972b969c7e5eddd709425c346") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_doubleptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "66ee25a972b969c7e5eddd709425c346") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "double_ptr", scope: !10, file: !11, line: 7, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!19 = !DILocation(line: 7, column: 11, scope: !10) +!20 = !DILocation(line: 8, column: 17, scope: !10) +!21 = !DILocation(line: 8, column: 5, scope: !10) +!22 = !DILocation(line: 10, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_func_return_val.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_func_return_val.c.bc new file mode 100644 index 00000000..978b581c --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_func_return_val.c.bc @@ -0,0 +1,65 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_func_return_val.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_func_return_val.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @getNullPointer() #0 !dbg !10 { +entry: + ret ptr null, !dbg !17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !21, metadata !DIExpression()), !dbg !22 + %call = call ptr @getNullPointer(), !dbg !23 + store ptr %call, ptr %ptr, align 8, !dbg !22 + %0 = load ptr, ptr %ptr, align 8, !dbg !24 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !25 + ret i32 0, !dbg !26 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a2d17ea00b6f756f542fabfc859c73d0") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "getNullPointer", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a2d17ea00b6f756f542fabfc859c73d0") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!16 = !{} +!17 = !DILocation(line: 6, column: 5, scope: !10) +!18 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !19, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!19 = !DISubroutineType(types: !20) +!20 = !{!15} +!21 = !DILocalVariable(name: "ptr", scope: !18, file: !11, line: 10, type: !14) +!22 = !DILocation(line: 10, column: 10, scope: !18) +!23 = !DILocation(line: 10, column: 16, scope: !18) +!24 = !DILocation(line: 12, column: 17, scope: !18) +!25 = !DILocation(line: 12, column: 5, scope: !18) +!26 = !DILocation(line: 14, column: 5, scope: !18) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_null.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_null.c.bc new file mode 100644 index 00000000..82c67b8d --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_null.c.bc @@ -0,0 +1,67 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_null.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_in_struct_null.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.S = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %myStruct = alloca %struct.S, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %myStruct, metadata !16, metadata !DIExpression()), !dbg !21 + %ptr = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !22 + store ptr null, ptr %ptr, align 8, !dbg !23 + %ptr1 = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !24 + %0 = load ptr, ptr %ptr1, align 8, !dbg !24 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !25 + %ptr2 = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !26 + %1 = load ptr, ptr %ptr2, align 8, !dbg !26 + store i32 404, ptr %1, align 4, !dbg !27 + ret i32 0, !dbg !28 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_in_struct_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ccc55984085fd41c254a2383f1c68797") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 13, type: !12, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_in_struct_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ccc55984085fd41c254a2383f1c68797") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "myStruct", scope: !10, file: !11, line: 14, type: !17) +!17 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !11, line: 9, size: 64, elements: !18) +!18 = !{!19} +!19 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !17, file: !11, line: 10, baseType: !20, size: 64) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!21 = !DILocation(line: 14, column: 14, scope: !10) +!22 = !DILocation(line: 15, column: 14, scope: !10) +!23 = !DILocation(line: 15, column: 18, scope: !10) +!24 = !DILocation(line: 17, column: 26, scope: !10) +!25 = !DILocation(line: 17, column: 5, scope: !10) +!26 = !DILocation(line: 18, column: 15, scope: !10) +!27 = !DILocation(line: 18, column: 19, scope: !10) +!28 = !DILocation(line: 20, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c.bc new file mode 100644 index 00000000..0deba440 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c.bc @@ -0,0 +1,63 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.S = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %myStruct = alloca %struct.S, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %myStruct, metadata !16, metadata !DIExpression()), !dbg !21 + %ptr = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !22 + %0 = load ptr, ptr %ptr, align 8, !dbg !22 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !23 + %ptr1 = getelementptr inbounds %struct.S, ptr %myStruct, i32 0, i32 0, !dbg !24 + %1 = load ptr, ptr %ptr1, align 8, !dbg !24 + store i32 404, ptr %1, align 4, !dbg !25 + ret i32 0, !dbg !26 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "8375f32dc13eeb0307293553980b16ae") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 13, type: !12, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_in_struct_uninitialized.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "8375f32dc13eeb0307293553980b16ae") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "myStruct", scope: !10, file: !11, line: 14, type: !17) +!17 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !11, line: 9, size: 64, elements: !18) +!18 = !{!19} +!19 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !17, file: !11, line: 10, baseType: !20, size: 64) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!21 = !DILocation(line: 14, column: 14, scope: !10) +!22 = !DILocation(line: 16, column: 26, scope: !10) +!23 = !DILocation(line: 16, column: 5, scope: !10) +!24 = !DILocation(line: 17, column: 15, scope: !10) +!25 = !DILocation(line: 17, column: 19, scope: !10) +!26 = !DILocation(line: 19, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c.bc new file mode 100644 index 00000000..325ac941 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c.bc @@ -0,0 +1,82 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @getNullPointer() #0 !dbg !10 { +entry: + ret ptr null, !dbg !17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @foo() #0 !dbg !18 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !19, metadata !DIExpression()), !dbg !20 + %call = call ptr @getNullPointer(), !dbg !21 + store ptr %call, ptr %p, align 8, !dbg !20 + %0 = load ptr, ptr %p, align 8, !dbg !22 + ret ptr %0, !dbg !23 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !24 { +entry: + %retval = alloca i32, align 4 + %ptr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %ptr, metadata !27, metadata !DIExpression()), !dbg !28 + %call = call ptr @foo(), !dbg !29 + store ptr %call, ptr %ptr, align 8, !dbg !28 + %0 = load ptr, ptr %ptr, align 8, !dbg !30 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !31 + ret i32 0, !dbg !32 +} + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "8cd481ecacf48918fa2bc8104459fd37") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "getNullPointer", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_indirect_func_return_val.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "8cd481ecacf48918fa2bc8104459fd37") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!16 = !{} +!17 = !DILocation(line: 6, column: 5, scope: !10) +!18 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!19 = !DILocalVariable(name: "p", scope: !18, file: !11, line: 10, type: !14) +!20 = !DILocation(line: 10, column: 10, scope: !18) +!21 = !DILocation(line: 10, column: 14, scope: !18) +!22 = !DILocation(line: 11, column: 12, scope: !18) +!23 = !DILocation(line: 11, column: 5, scope: !18) +!24 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 14, type: !25, scopeLine: 14, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!25 = !DISubroutineType(types: !26) +!26 = !{!15} +!27 = !DILocalVariable(name: "ptr", scope: !24, file: !11, line: 15, type: !14) +!28 = !DILocation(line: 15, column: 10, scope: !24) +!29 = !DILocation(line: 15, column: 16, scope: !24) +!30 = !DILocation(line: 17, column: 17, scope: !24) +!31 = !DILocation(line: 17, column: 5, scope: !24) +!32 = !DILocation(line: 19, column: 5, scope: !24) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c.bc new file mode 100644 index 00000000..dfcea328 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c.bc @@ -0,0 +1,73 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !18 + %call = call noalias ptr @malloc(i64 noundef 4) #5, !dbg !19 + store ptr %call, ptr %p, align 8, !dbg !18 + %0 = load ptr, ptr %p, align 8, !dbg !20 + store i32 1, ptr %0, align 4, !dbg !21 + %1 = load ptr, ptr %p, align 8, !dbg !22 + call void @free(ptr noundef %1) #6, !dbg !23 + store ptr null, ptr %p, align 8, !dbg !24 + %2 = load ptr, ptr %p, align 8, !dbg !25 + call void @UNSAFE_LOAD(ptr noundef %2), !dbg !26 + ret i32 0, !dbg !27 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #3 + +declare void @UNSAFE_LOAD(ptr noundef) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(0) } +attributes #6 = { nounwind } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "beae0ab900067f961bd243a311e4ce7a") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_partial_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "beae0ab900067f961bd243a311e4ce7a") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 6, column: 10, scope: !10) +!19 = !DILocation(line: 6, column: 14, scope: !10) +!20 = !DILocation(line: 7, column: 6, scope: !10) +!21 = !DILocation(line: 7, column: 8, scope: !10) +!22 = !DILocation(line: 8, column: 10, scope: !10) +!23 = !DILocation(line: 8, column: 5, scope: !10) +!24 = !DILocation(line: 9, column: 7, scope: !10) +!25 = !DILocation(line: 10, column: 17, scope: !10) +!26 = !DILocation(line: 10, column: 5, scope: !10) +!27 = !DILocation(line: 11, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_simple.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_simple.c.bc new file mode 100644 index 00000000..95421586 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_simple.c.bc @@ -0,0 +1,51 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_simple.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_simple.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !18 + store ptr null, ptr %p, align 8, !dbg !18 + %0 = load ptr, ptr %p, align 8, !dbg !19 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !20 + ret i32 0, !dbg !21 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_simple.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a0cd2a34c486da4237267f808fbe0858") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_simple.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a0cd2a34c486da4237267f808fbe0858") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 6, column: 8, scope: !10) +!19 = !DILocation(line: 7, column: 15, scope: !10) +!20 = !DILocation(line: 7, column: 3, scope: !10) +!21 = !DILocation(line: 8, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c.bc new file mode 100644 index 00000000..8b62e07d --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c.bc @@ -0,0 +1,50 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !18 + %0 = load ptr, ptr %p, align 8, !dbg !19 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !20 + ret i32 0, !dbg !21 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "8c6f119943650fdc69ba522af8c22238") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/int_ptr_uninit_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "8c6f119943650fdc69ba522af8c22238") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 5, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 5, column: 8, scope: !10) +!19 = !DILocation(line: 6, column: 15, scope: !10) +!20 = !DILocation(line: 6, column: 3, scope: !10) +!21 = !DILocation(line: 7, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/recursive_return_null.c.bc b/test_cases_bc/ae_nullptr_deref_tests/recursive_return_null.c.bc new file mode 100644 index 00000000..4c2b0c95 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/recursive_return_null.c.bc @@ -0,0 +1,98 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/recursive_return_null.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/recursive_return_null.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @recursive_function(i32 noundef %depth) #0 !dbg !10 { +entry: + %retval = alloca ptr, align 8 + %depth.addr = alloca i32, align 4 + store i32 %depth, ptr %depth.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %depth.addr, metadata !17, metadata !DIExpression()), !dbg !18 + %0 = load i32, ptr %depth.addr, align 4, !dbg !19 + %cmp = icmp sgt i32 %0, 0, !dbg !21 + br i1 %cmp, label %if.then, label %if.else, !dbg !22 + +if.then: ; preds = %entry + %1 = load i32, ptr %depth.addr, align 4, !dbg !23 + %sub = sub nsw i32 %1, 1, !dbg !25 + %call = call ptr @recursive_function(i32 noundef %sub), !dbg !26 + br label %if.end, !dbg !27 + +if.else: ; preds = %entry + store ptr null, ptr %retval, align 8, !dbg !28 + br label %if.end, !dbg !28 + +if.end: ; preds = %if.else, %if.then + %2 = load ptr, ptr %retval, align 8, !dbg !30 + ret ptr %2, !dbg !30 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !31 { +entry: + %retval = alloca i32, align 4 + %intPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %intPtr, metadata !34, metadata !DIExpression()), !dbg !35 + %call = call ptr @recursive_function(i32 noundef 5), !dbg !36 + store ptr %call, ptr %intPtr, align 8, !dbg !35 + %0 = load ptr, ptr %intPtr, align 8, !dbg !37 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !38 + ret i32 0, !dbg !39 +} + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/recursive_return_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "4f03f96ca513555198ae22c9d48bd8cb") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "recursive_function", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/recursive_return_null.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "4f03f96ca513555198ae22c9d48bd8cb") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !15} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!16 = !{} +!17 = !DILocalVariable(name: "depth", arg: 1, scope: !10, file: !11, line: 5, type: !15) +!18 = !DILocation(line: 5, column: 29, scope: !10) +!19 = !DILocation(line: 6, column: 9, scope: !20) +!20 = distinct !DILexicalBlock(scope: !10, file: !11, line: 6, column: 9) +!21 = !DILocation(line: 6, column: 15, scope: !20) +!22 = !DILocation(line: 6, column: 9, scope: !10) +!23 = !DILocation(line: 8, column: 28, scope: !24) +!24 = distinct !DILexicalBlock(scope: !20, file: !11, line: 6, column: 20) +!25 = !DILocation(line: 8, column: 34, scope: !24) +!26 = !DILocation(line: 8, column: 9, scope: !24) +!27 = !DILocation(line: 9, column: 5, scope: !24) +!28 = !DILocation(line: 11, column: 9, scope: !29) +!29 = distinct !DILexicalBlock(scope: !20, file: !11, line: 9, column: 12) +!30 = !DILocation(line: 13, column: 1, scope: !10) +!31 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !32, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!32 = !DISubroutineType(types: !33) +!33 = !{!15} +!34 = !DILocalVariable(name: "intPtr", scope: !31, file: !11, line: 16, type: !14) +!35 = !DILocation(line: 16, column: 10, scope: !31) +!36 = !DILocation(line: 16, column: 19, scope: !31) +!37 = !DILocation(line: 18, column: 17, scope: !31) +!38 = !DILocation(line: 18, column: 5, scope: !31) +!39 = !DILocation(line: 20, column: 5, scope: !31) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_array_access.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_array_access.c.bc new file mode 100644 index 00000000..482a718b --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_array_access.c.bc @@ -0,0 +1,96 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_array_access.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_array_access.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %arr = alloca [10 x i32], align 16 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !16, metadata !DIExpression()), !dbg !20 + call void @llvm.memset.p0.i64(ptr align 16 %arr, i8 0, i64 40, i1 false), !dbg !20 + call void @llvm.dbg.declare(metadata ptr %i, metadata !21, metadata !DIExpression()), !dbg !23 + store i32 0, ptr %i, align 4, !dbg !23 + br label %for.cond, !dbg !24 + +for.cond: ; preds = %for.inc, %entry + %0 = load i32, ptr %i, align 4, !dbg !25 + %cmp = icmp slt i32 %0, 10, !dbg !27 + br i1 %cmp, label %for.body, label %for.end, !dbg !28 + +for.body: ; preds = %for.cond + %1 = load i32, ptr %i, align 4, !dbg !29 + %idxprom = sext i32 %1 to i64, !dbg !30 + %arrayidx = getelementptr inbounds [10 x i32], ptr %arr, i64 0, i64 %idxprom, !dbg !30 + call void @SAFE_LOAD(ptr noundef %arrayidx), !dbg !31 + br label %for.inc, !dbg !31 + +for.inc: ; preds = %for.body + %2 = load i32, ptr %i, align 4, !dbg !32 + %inc = add nsw i32 %2, 1, !dbg !32 + store i32 %inc, ptr %i, align 4, !dbg !32 + br label %for.cond, !dbg !33, !llvm.loop !34 + +for.end: ; preds = %for.cond + %3 = load i32, ptr %retval, align 4, !dbg !37 + ret i32 %3, !dbg !37 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_array_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "733c915b0626a9573c6689c5fa8d414d") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_array_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "733c915b0626a9573c6689c5fa8d414d") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arr", scope: !10, file: !11, line: 6, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !14, size: 320, elements: !18) +!18 = !{!19} +!19 = !DISubrange(count: 10) +!20 = !DILocation(line: 6, column: 7, scope: !10) +!21 = !DILocalVariable(name: "i", scope: !22, file: !11, line: 7, type: !14) +!22 = distinct !DILexicalBlock(scope: !10, file: !11, line: 7, column: 3) +!23 = !DILocation(line: 7, column: 12, scope: !22) +!24 = !DILocation(line: 7, column: 8, scope: !22) +!25 = !DILocation(line: 7, column: 19, scope: !26) +!26 = distinct !DILexicalBlock(scope: !22, file: !11, line: 7, column: 3) +!27 = !DILocation(line: 7, column: 21, scope: !26) +!28 = !DILocation(line: 7, column: 3, scope: !22) +!29 = !DILocation(line: 8, column: 22, scope: !26) +!30 = !DILocation(line: 8, column: 18, scope: !26) +!31 = !DILocation(line: 8, column: 7, scope: !26) +!32 = !DILocation(line: 7, column: 27, scope: !26) +!33 = !DILocation(line: 7, column: 3, scope: !26) +!34 = distinct !{!34, !28, !35, !36} +!35 = !DILocation(line: 8, column: 24, scope: !22) +!36 = !{!"llvm.loop.mustprogress"} +!37 = !DILocation(line: 9, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_1.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_1.c.bc new file mode 100644 index 00000000..4734191a --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_1.c.bc @@ -0,0 +1,116 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_1.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_array_of_struct_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.Data = type { i32, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %arr = alloca [10 x %struct.Data], align 16 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !16, metadata !DIExpression()), !dbg !25 + call void @llvm.memset.p0.i64(ptr align 16 %arr, i8 0, i64 80, i1 false), !dbg !25 + call void @llvm.dbg.declare(metadata ptr %i, metadata !26, metadata !DIExpression()), !dbg !28 + store i32 0, ptr %i, align 4, !dbg !28 + br label %for.cond, !dbg !29 + +for.cond: ; preds = %for.inc, %entry + %0 = load i32, ptr %i, align 4, !dbg !30 + %cmp = icmp slt i32 %0, 10, !dbg !32 + br i1 %cmp, label %for.body, label %for.end, !dbg !33 + +for.body: ; preds = %for.cond + %1 = load i32, ptr %i, align 4, !dbg !34 + %idxprom = sext i32 %1 to i64, !dbg !36 + %arrayidx = getelementptr inbounds [10 x %struct.Data], ptr %arr, i64 0, i64 %idxprom, !dbg !36 + %number = getelementptr inbounds %struct.Data, ptr %arrayidx, i32 0, i32 0, !dbg !37 + call void @SAFE_LOAD(ptr noundef %number), !dbg !38 + %2 = load i32, ptr %i, align 4, !dbg !39 + %idxprom1 = sext i32 %2 to i64, !dbg !40 + %arrayidx2 = getelementptr inbounds [10 x %struct.Data], ptr %arr, i64 0, i64 %idxprom1, !dbg !40 + %character = getelementptr inbounds %struct.Data, ptr %arrayidx2, i32 0, i32 1, !dbg !41 + call void @SAFE_LOAD(ptr noundef %character), !dbg !42 + br label %for.inc, !dbg !43 + +for.inc: ; preds = %for.body + %3 = load i32, ptr %i, align 4, !dbg !44 + %inc = add nsw i32 %3, 1, !dbg !44 + store i32 %inc, ptr %i, align 4, !dbg !44 + br label %for.cond, !dbg !45, !llvm.loop !46 + +for.end: ; preds = %for.cond + %4 = load i32, ptr %retval, align 4, !dbg !49 + ret i32 %4, !dbg !49 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_array_of_struct_1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "92ff29eaa690ea26a2f8729482cc2420") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_array_of_struct_1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "92ff29eaa690ea26a2f8729482cc2420") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arr", scope: !10, file: !11, line: 11, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !18, size: 640, elements: !23) +!18 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Data", file: !11, line: 5, size: 64, elements: !19) +!19 = !{!20, !21} +!20 = !DIDerivedType(tag: DW_TAG_member, name: "number", scope: !18, file: !11, line: 6, baseType: !14, size: 32) +!21 = !DIDerivedType(tag: DW_TAG_member, name: "character", scope: !18, file: !11, line: 7, baseType: !22, size: 8, offset: 32) +!22 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!23 = !{!24} +!24 = !DISubrange(count: 10) +!25 = !DILocation(line: 11, column: 15, scope: !10) +!26 = !DILocalVariable(name: "i", scope: !27, file: !11, line: 12, type: !14) +!27 = distinct !DILexicalBlock(scope: !10, file: !11, line: 12, column: 3) +!28 = !DILocation(line: 12, column: 12, scope: !27) +!29 = !DILocation(line: 12, column: 8, scope: !27) +!30 = !DILocation(line: 12, column: 19, scope: !31) +!31 = distinct !DILexicalBlock(scope: !27, file: !11, line: 12, column: 3) +!32 = !DILocation(line: 12, column: 21, scope: !31) +!33 = !DILocation(line: 12, column: 3, scope: !27) +!34 = !DILocation(line: 13, column: 22, scope: !35) +!35 = distinct !DILexicalBlock(scope: !31, file: !11, line: 12, column: 32) +!36 = !DILocation(line: 13, column: 18, scope: !35) +!37 = !DILocation(line: 13, column: 25, scope: !35) +!38 = !DILocation(line: 13, column: 7, scope: !35) +!39 = !DILocation(line: 14, column: 22, scope: !35) +!40 = !DILocation(line: 14, column: 18, scope: !35) +!41 = !DILocation(line: 14, column: 25, scope: !35) +!42 = !DILocation(line: 14, column: 7, scope: !35) +!43 = !DILocation(line: 15, column: 3, scope: !35) +!44 = !DILocation(line: 12, column: 27, scope: !31) +!45 = !DILocation(line: 12, column: 3, scope: !31) +!46 = distinct !{!46, !33, !47, !48} +!47 = !DILocation(line: 15, column: 3, scope: !27) +!48 = !{!"llvm.loop.mustprogress"} +!49 = !DILocation(line: 16, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_2.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_2.c.bc new file mode 100644 index 00000000..24e0a327 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_2.c.bc @@ -0,0 +1,118 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_array_of_struct_2.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_array_of_struct_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.Data = type { ptr, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %arr = alloca [10 x %struct.Data], align 16 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !16, metadata !DIExpression()), !dbg !26 + call void @llvm.memset.p0.i64(ptr align 16 %arr, i8 0, i64 160, i1 false), !dbg !26 + call void @llvm.dbg.declare(metadata ptr %i, metadata !27, metadata !DIExpression()), !dbg !29 + store i32 0, ptr %i, align 4, !dbg !29 + br label %for.cond, !dbg !30 + +for.cond: ; preds = %for.inc, %entry + %0 = load i32, ptr %i, align 4, !dbg !31 + %cmp = icmp slt i32 %0, 10, !dbg !33 + br i1 %cmp, label %for.body, label %for.end, !dbg !34 + +for.body: ; preds = %for.cond + %1 = load i32, ptr %i, align 4, !dbg !35 + %idxprom = sext i32 %1 to i64, !dbg !37 + %arrayidx = getelementptr inbounds [10 x %struct.Data], ptr %arr, i64 0, i64 %idxprom, !dbg !37 + %number = getelementptr inbounds %struct.Data, ptr %arrayidx, i32 0, i32 0, !dbg !38 + %2 = load ptr, ptr %number, align 16, !dbg !38 + store i32 0, ptr %2, align 4, !dbg !39 + %3 = load i32, ptr %i, align 4, !dbg !40 + %idxprom1 = sext i32 %3 to i64, !dbg !41 + %arrayidx2 = getelementptr inbounds [10 x %struct.Data], ptr %arr, i64 0, i64 %idxprom1, !dbg !41 + %number3 = getelementptr inbounds %struct.Data, ptr %arrayidx2, i32 0, i32 0, !dbg !42 + call void @SAFE_LOAD(ptr noundef %number3), !dbg !43 + br label %for.inc, !dbg !44 + +for.inc: ; preds = %for.body + %4 = load i32, ptr %i, align 4, !dbg !45 + %inc = add nsw i32 %4, 1, !dbg !45 + store i32 %inc, ptr %i, align 4, !dbg !45 + br label %for.cond, !dbg !46, !llvm.loop !47 + +for.end: ; preds = %for.cond + %5 = load i32, ptr %retval, align 4, !dbg !50 + ret i32 %5, !dbg !50 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_array_of_struct_2.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a66fb02b7aa71c380b637af19a810f56") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_array_of_struct_2.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "a66fb02b7aa71c380b637af19a810f56") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arr", scope: !10, file: !11, line: 11, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !18, size: 1280, elements: !24) +!18 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Data", file: !11, line: 5, size: 128, elements: !19) +!19 = !{!20, !22} +!20 = !DIDerivedType(tag: DW_TAG_member, name: "number", scope: !18, file: !11, line: 6, baseType: !21, size: 64) +!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!22 = !DIDerivedType(tag: DW_TAG_member, name: "character", scope: !18, file: !11, line: 7, baseType: !23, size: 8, offset: 64) +!23 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!24 = !{!25} +!25 = !DISubrange(count: 10) +!26 = !DILocation(line: 11, column: 15, scope: !10) +!27 = !DILocalVariable(name: "i", scope: !28, file: !11, line: 12, type: !14) +!28 = distinct !DILexicalBlock(scope: !10, file: !11, line: 12, column: 3) +!29 = !DILocation(line: 12, column: 12, scope: !28) +!30 = !DILocation(line: 12, column: 8, scope: !28) +!31 = !DILocation(line: 12, column: 19, scope: !32) +!32 = distinct !DILexicalBlock(scope: !28, file: !11, line: 12, column: 3) +!33 = !DILocation(line: 12, column: 21, scope: !32) +!34 = !DILocation(line: 12, column: 3, scope: !28) +!35 = !DILocation(line: 13, column: 13, scope: !36) +!36 = distinct !DILexicalBlock(scope: !32, file: !11, line: 12, column: 32) +!37 = !DILocation(line: 13, column: 9, scope: !36) +!38 = !DILocation(line: 13, column: 16, scope: !36) +!39 = !DILocation(line: 13, column: 24, scope: !36) +!40 = !DILocation(line: 14, column: 22, scope: !36) +!41 = !DILocation(line: 14, column: 18, scope: !36) +!42 = !DILocation(line: 14, column: 25, scope: !36) +!43 = !DILocation(line: 14, column: 7, scope: !36) +!44 = !DILocation(line: 15, column: 3, scope: !36) +!45 = !DILocation(line: 12, column: 27, scope: !32) +!46 = !DILocation(line: 12, column: 3, scope: !32) +!47 = distinct !{!47, !34, !48, !49} +!48 = !DILocation(line: 15, column: 3, scope: !28) +!49 = !{!"llvm.loop.mustprogress"} +!50 = !DILocation(line: 16, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_double_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_double_ptr.c.bc new file mode 100644 index 00000000..eee938e0 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_double_ptr.c.bc @@ -0,0 +1,77 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_double_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_double_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %dp = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %dp, metadata !16, metadata !DIExpression()), !dbg !19 + %call = call noalias ptr @malloc(i64 noundef 8) #4, !dbg !20 + store ptr %call, ptr %dp, align 8, !dbg !19 + %call1 = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !21 + %0 = load ptr, ptr %dp, align 8, !dbg !22 + store ptr %call1, ptr %0, align 8, !dbg !23 + %1 = load ptr, ptr %dp, align 8, !dbg !24 + %2 = load ptr, ptr %1, align 8, !dbg !25 + store i32 1, ptr %2, align 4, !dbg !26 + %3 = load ptr, ptr %dp, align 8, !dbg !27 + call void @SAFE_LOAD(ptr noundef %3), !dbg !28 + %4 = load ptr, ptr %dp, align 8, !dbg !29 + %5 = load ptr, ptr %4, align 8, !dbg !30 + call void @SAFE_LOAD(ptr noundef %5), !dbg !31 + ret i32 0, !dbg !32 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_double_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "e29e36646384b04ebdee61e95c1dced6") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_double_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "e29e36646384b04ebdee61e95c1dced6") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "dp", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!19 = !DILocation(line: 6, column: 11, scope: !10) +!20 = !DILocation(line: 6, column: 16, scope: !10) +!21 = !DILocation(line: 7, column: 11, scope: !10) +!22 = !DILocation(line: 7, column: 6, scope: !10) +!23 = !DILocation(line: 7, column: 9, scope: !10) +!24 = !DILocation(line: 8, column: 7, scope: !10) +!25 = !DILocation(line: 8, column: 6, scope: !10) +!26 = !DILocation(line: 8, column: 10, scope: !10) +!27 = !DILocation(line: 9, column: 15, scope: !10) +!28 = !DILocation(line: 9, column: 5, scope: !10) +!29 = !DILocation(line: 10, column: 16, scope: !10) +!30 = !DILocation(line: 10, column: 15, scope: !10) +!31 = !DILocation(line: 10, column: 5, scope: !10) +!32 = !DILocation(line: 11, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_func_arg.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_func_arg.c.bc new file mode 100644 index 00000000..93fb14d0 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_func_arg.c.bc @@ -0,0 +1,81 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_func_arg.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_func_arg.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @foo(ptr noundef %a) #0 !dbg !10 { +entry: + %a.addr = alloca ptr, align 8 + store ptr %a, ptr %a.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !17, metadata !DIExpression()), !dbg !18 + %0 = load ptr, ptr %a.addr, align 8, !dbg !19 + call void @SAFE_LOAD(ptr noundef %0), !dbg !20 + ret void, !dbg !21 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @SAFE_LOAD(ptr noundef) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !22 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !25, metadata !DIExpression()), !dbg !26 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !27 + store ptr %call, ptr %p, align 8, !dbg !26 + %0 = load ptr, ptr %p, align 8, !dbg !28 + store i32 1, ptr %0, align 4, !dbg !29 + %1 = load ptr, ptr %p, align 8, !dbg !30 + call void @foo(ptr noundef %1), !dbg !31 + ret i32 0, !dbg !32 +} + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_func_arg.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "71caf3a8dd27fa0043b922a9d3a56b71") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_func_arg.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "71caf3a8dd27fa0043b922a9d3a56b71") +!12 = !DISubroutineType(types: !13) +!13 = !{null, !14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!16 = !{} +!17 = !DILocalVariable(name: "a", arg: 1, scope: !10, file: !11, line: 5, type: !14) +!18 = !DILocation(line: 5, column: 15, scope: !10) +!19 = !DILocation(line: 6, column: 15, scope: !10) +!20 = !DILocation(line: 6, column: 5, scope: !10) +!21 = !DILocation(line: 7, column: 1, scope: !10) +!22 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !23, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!23 = !DISubroutineType(types: !24) +!24 = !{!15} +!25 = !DILocalVariable(name: "p", scope: !22, file: !11, line: 10, type: !14) +!26 = !DILocation(line: 10, column: 10, scope: !22) +!27 = !DILocation(line: 10, column: 14, scope: !22) +!28 = !DILocation(line: 11, column: 6, scope: !22) +!29 = !DILocation(line: 11, column: 8, scope: !22) +!30 = !DILocation(line: 12, column: 9, scope: !22) +!31 = !DILocation(line: 12, column: 5, scope: !22) +!32 = !DILocation(line: 13, column: 1, scope: !22) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_func_ptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_func_ptr.c.bc new file mode 100644 index 00000000..b623b697 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_func_ptr.c.bc @@ -0,0 +1,80 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_func_ptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_func_ptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [22 x i8] c"Test function called\0A\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @testFunction() #0 !dbg !18 { +entry: + %call = call i32 (ptr, ...) @printf(ptr noundef @.str), !dbg !22 + ret void, !dbg !23 +} + +declare i32 @printf(ptr noundef, ...) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !24 { +entry: + %retval = alloca i32, align 4 + %funcPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %funcPtr, metadata !28, metadata !DIExpression()), !dbg !32 + store ptr @testFunction, ptr %funcPtr, align 8, !dbg !33 + %call = call i32 (ptr, ...) @SAFE_LOAD(ptr noundef %funcPtr), !dbg !34 + %0 = load ptr, ptr %funcPtr, align 8, !dbg !35 + call void (...) %0(), !dbg !35 + ret i32 0, !dbg !36 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 + +declare i32 @SAFE_LOAD(...) #1 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 4, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_func_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "319d769af939a7dcc524d1cf1307d27f") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 176, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 22) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_func_ptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "319d769af939a7dcc524d1cf1307d27f") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "testFunction", scope: !2, file: !2, line: 3, type: !19, scopeLine: 3, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !21) +!19 = !DISubroutineType(types: !20) +!20 = !{null} +!21 = !{} +!22 = !DILocation(line: 4, column: 5, scope: !18) +!23 = !DILocation(line: 5, column: 1, scope: !18) +!24 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 7, type: !25, scopeLine: 7, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !21) +!25 = !DISubroutineType(types: !26) +!26 = !{!27} +!27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!28 = !DILocalVariable(name: "funcPtr", scope: !24, file: !2, line: 8, type: !29) +!29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !30, size: 64) +!30 = !DISubroutineType(types: !31) +!31 = !{null, null} +!32 = !DILocation(line: 8, column: 12, scope: !24) +!33 = !DILocation(line: 9, column: 13, scope: !24) +!34 = !DILocation(line: 10, column: 5, scope: !24) +!35 = !DILocation(line: 11, column: 5, scope: !24) +!36 = !DILocation(line: 13, column: 5, scope: !24) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_func_return.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_func_return.c.bc new file mode 100644 index 00000000..907a9061 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_func_return.c.bc @@ -0,0 +1,81 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_func_return.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_func_return.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local ptr @foo() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !17, metadata !DIExpression()), !dbg !18 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !19 + store ptr %call, ptr %p, align 8, !dbg !18 + %0 = load ptr, ptr %p, align 8, !dbg !20 + store i32 1, ptr %0, align 4, !dbg !21 + %1 = load ptr, ptr %p, align 8, !dbg !22 + ret ptr %1, !dbg !23 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !24 { +entry: + %myPtr = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %myPtr, metadata !27, metadata !DIExpression()), !dbg !28 + %call = call ptr @foo(), !dbg !29 + store ptr %call, ptr %myPtr, align 8, !dbg !28 + %0 = load ptr, ptr %myPtr, align 8, !dbg !30 + call void @SAFE_LOAD(ptr noundef %0), !dbg !31 + ret i32 0, !dbg !32 +} + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_func_return.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "99cddce0d553a5bf5795d56f36b3a373") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "foo", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_func_return.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "99cddce0d553a5bf5795d56f36b3a373") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64) +!15 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!16 = !{} +!17 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 6, type: !14) +!18 = !DILocation(line: 6, column: 10, scope: !10) +!19 = !DILocation(line: 6, column: 14, scope: !10) +!20 = !DILocation(line: 7, column: 6, scope: !10) +!21 = !DILocation(line: 7, column: 8, scope: !10) +!22 = !DILocation(line: 8, column: 12, scope: !10) +!23 = !DILocation(line: 8, column: 5, scope: !10) +!24 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 11, type: !25, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) +!25 = !DISubroutineType(types: !26) +!26 = !{!15} +!27 = !DILocalVariable(name: "myPtr", scope: !24, file: !11, line: 12, type: !14) +!28 = !DILocation(line: 12, column: 10, scope: !24) +!29 = !DILocation(line: 12, column: 18, scope: !24) +!30 = !DILocation(line: 13, column: 15, scope: !24) +!31 = !DILocation(line: 13, column: 5, scope: !24) +!32 = !DILocation(line: 14, column: 1, scope: !24) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_loop_access.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_loop_access.c.bc new file mode 100644 index 00000000..f65cc012 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_loop_access.c.bc @@ -0,0 +1,189 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_loop_access.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_loop_access.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [26 x i8] c"Memory allocation failed\0A\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !20 { +entry: + %retval = alloca i32, align 4 + %arr = alloca [3 x ptr], align 16 + %i = alloca i32, align 4 + %j = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !25, metadata !DIExpression()), !dbg !30 + call void @llvm.dbg.declare(metadata ptr %i, metadata !31, metadata !DIExpression()), !dbg !33 + store i32 0, ptr %i, align 4, !dbg !33 + br label %for.cond, !dbg !34 + +for.cond: ; preds = %for.inc, %entry + %0 = load i32, ptr %i, align 4, !dbg !35 + %cmp = icmp slt i32 %0, 3, !dbg !37 + br i1 %cmp, label %for.body, label %for.end, !dbg !38 + +for.body: ; preds = %for.cond + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !39 + %1 = load i32, ptr %i, align 4, !dbg !41 + %idxprom = sext i32 %1 to i64, !dbg !42 + %arrayidx = getelementptr inbounds [3 x ptr], ptr %arr, i64 0, i64 %idxprom, !dbg !42 + store ptr %call, ptr %arrayidx, align 8, !dbg !43 + %2 = load i32, ptr %i, align 4, !dbg !44 + %idxprom1 = sext i32 %2 to i64, !dbg !46 + %arrayidx2 = getelementptr inbounds [3 x ptr], ptr %arr, i64 0, i64 %idxprom1, !dbg !46 + %3 = load ptr, ptr %arrayidx2, align 8, !dbg !46 + %cmp3 = icmp eq ptr %3, null, !dbg !47 + br i1 %cmp3, label %if.then, label %if.end, !dbg !48 + +if.then: ; preds = %for.body + %call4 = call i32 (ptr, ...) @printf(ptr noundef @.str), !dbg !49 + store i32 1, ptr %retval, align 4, !dbg !51 + br label %return, !dbg !51 + +if.end: ; preds = %for.body + %4 = load i32, ptr %i, align 4, !dbg !52 + %idxprom5 = sext i32 %4 to i64, !dbg !53 + %arrayidx6 = getelementptr inbounds [3 x ptr], ptr %arr, i64 0, i64 %idxprom5, !dbg !53 + %5 = load ptr, ptr %arrayidx6, align 8, !dbg !53 + store i32 0, ptr %5, align 4, !dbg !54 + br label %for.inc, !dbg !55 + +for.inc: ; preds = %if.end + %6 = load i32, ptr %i, align 4, !dbg !56 + %inc = add nsw i32 %6, 1, !dbg !56 + store i32 %inc, ptr %i, align 4, !dbg !56 + br label %for.cond, !dbg !57, !llvm.loop !58 + +for.end: ; preds = %for.cond + call void @llvm.dbg.declare(metadata ptr %j, metadata !61, metadata !DIExpression()), !dbg !63 + store i32 0, ptr %j, align 4, !dbg !63 + br label %for.cond7, !dbg !64 + +for.cond7: ; preds = %for.inc12, %for.end + %7 = load i32, ptr %j, align 4, !dbg !65 + %cmp8 = icmp slt i32 %7, 3, !dbg !67 + br i1 %cmp8, label %for.body9, label %for.end14, !dbg !68 + +for.body9: ; preds = %for.cond7 + %8 = load i32, ptr %j, align 4, !dbg !69 + %idxprom10 = sext i32 %8 to i64, !dbg !71 + %arrayidx11 = getelementptr inbounds [3 x ptr], ptr %arr, i64 0, i64 %idxprom10, !dbg !71 + call void @SAFE_LOAD(ptr noundef %arrayidx11), !dbg !72 + br label %for.inc12, !dbg !73 + +for.inc12: ; preds = %for.body9 + %9 = load i32, ptr %j, align 4, !dbg !74 + %inc13 = add nsw i32 %9, 1, !dbg !74 + store i32 %inc13, ptr %j, align 4, !dbg !74 + br label %for.cond7, !dbg !75, !llvm.loop !76 + +for.end14: ; preds = %for.cond7 + store i32 0, ptr %retval, align 4, !dbg !78 + br label %return, !dbg !78 + +return: ; preds = %for.end14, %if.then + %10 = load i32, ptr %retval, align 4, !dbg !79 + ret i32 %10, !dbg !79 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare i32 @printf(ptr noundef, ...) #3 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!12, !13, !14, !15, !16, !17, !18} +!llvm.ident = !{!19} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 15, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_loop_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ae0c4eebf232c7f3f076d4082b69669e") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 208, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 26) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_loop_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "ae0c4eebf232c7f3f076d4082b69669e") +!9 = !{!10} +!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!11 = !{!0} +!12 = !{i32 7, !"Dwarf Version", i32 5} +!13 = !{i32 2, !"Debug Info Version", i32 3} +!14 = !{i32 1, !"wchar_size", i32 4} +!15 = !{i32 8, !"PIC Level", i32 2} +!16 = !{i32 7, !"PIE Level", i32 2} +!17 = !{i32 7, !"uwtable", i32 2} +!18 = !{i32 7, !"frame-pointer", i32 2} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!20 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 8, type: !21, scopeLine: 8, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) +!21 = !DISubroutineType(types: !22) +!22 = !{!23} +!23 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!24 = !{} +!25 = !DILocalVariable(name: "arr", scope: !20, file: !2, line: 9, type: !26) +!26 = !DICompositeType(tag: DW_TAG_array_type, baseType: !27, size: 192, elements: !28) +!27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !23, size: 64) +!28 = !{!29} +!29 = !DISubrange(count: 3) +!30 = !DILocation(line: 9, column: 10, scope: !20) +!31 = !DILocalVariable(name: "i", scope: !32, file: !2, line: 11, type: !23) +!32 = distinct !DILexicalBlock(scope: !20, file: !2, line: 11, column: 5) +!33 = !DILocation(line: 11, column: 14, scope: !32) +!34 = !DILocation(line: 11, column: 10, scope: !32) +!35 = !DILocation(line: 11, column: 21, scope: !36) +!36 = distinct !DILexicalBlock(scope: !32, file: !2, line: 11, column: 5) +!37 = !DILocation(line: 11, column: 23, scope: !36) +!38 = !DILocation(line: 11, column: 5, scope: !32) +!39 = !DILocation(line: 13, column: 18, scope: !40) +!40 = distinct !DILexicalBlock(scope: !36, file: !2, line: 12, column: 5) +!41 = !DILocation(line: 13, column: 13, scope: !40) +!42 = !DILocation(line: 13, column: 9, scope: !40) +!43 = !DILocation(line: 13, column: 16, scope: !40) +!44 = !DILocation(line: 14, column: 17, scope: !45) +!45 = distinct !DILexicalBlock(scope: !40, file: !2, line: 14, column: 13) +!46 = !DILocation(line: 14, column: 13, scope: !45) +!47 = !DILocation(line: 14, column: 20, scope: !45) +!48 = !DILocation(line: 14, column: 13, scope: !40) +!49 = !DILocation(line: 15, column: 13, scope: !50) +!50 = distinct !DILexicalBlock(scope: !45, file: !2, line: 14, column: 29) +!51 = !DILocation(line: 16, column: 13, scope: !50) +!52 = !DILocation(line: 18, column: 14, scope: !40) +!53 = !DILocation(line: 18, column: 10, scope: !40) +!54 = !DILocation(line: 18, column: 17, scope: !40) +!55 = !DILocation(line: 19, column: 5, scope: !40) +!56 = !DILocation(line: 11, column: 31, scope: !36) +!57 = !DILocation(line: 11, column: 5, scope: !36) +!58 = distinct !{!58, !38, !59, !60} +!59 = !DILocation(line: 19, column: 5, scope: !32) +!60 = !{!"llvm.loop.mustprogress"} +!61 = !DILocalVariable(name: "j", scope: !62, file: !2, line: 21, type: !23) +!62 = distinct !DILexicalBlock(scope: !20, file: !2, line: 21, column: 5) +!63 = !DILocation(line: 21, column: 14, scope: !62) +!64 = !DILocation(line: 21, column: 10, scope: !62) +!65 = !DILocation(line: 21, column: 21, scope: !66) +!66 = distinct !DILexicalBlock(scope: !62, file: !2, line: 21, column: 5) +!67 = !DILocation(line: 21, column: 23, scope: !66) +!68 = !DILocation(line: 21, column: 5, scope: !62) +!69 = !DILocation(line: 23, column: 24, scope: !70) +!70 = distinct !DILexicalBlock(scope: !66, file: !2, line: 22, column: 5) +!71 = !DILocation(line: 23, column: 20, scope: !70) +!72 = !DILocation(line: 23, column: 9, scope: !70) +!73 = !DILocation(line: 24, column: 5, scope: !70) +!74 = !DILocation(line: 21, column: 31, scope: !66) +!75 = !DILocation(line: 21, column: 5, scope: !66) +!76 = distinct !{!76, !68, !77, !60} +!77 = !DILocation(line: 24, column: 5, scope: !62) +!78 = !DILocation(line: 26, column: 5, scope: !20) +!79 = !DILocation(line: 27, column: 1, scope: !20) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_pointer_access.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_pointer_access.c.bc new file mode 100644 index 00000000..7708d928 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_pointer_access.c.bc @@ -0,0 +1,62 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_pointer_access.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_pointer_access.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %p = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %p, metadata !16, metadata !DIExpression()), !dbg !18 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !19 + store ptr %call, ptr %p, align 8, !dbg !18 + %0 = load ptr, ptr %p, align 8, !dbg !20 + store i32 1, ptr %0, align 4, !dbg !21 + %1 = load ptr, ptr %p, align 8, !dbg !22 + call void @SAFE_LOAD(ptr noundef %1), !dbg !23 + ret i32 0, !dbg !24 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_pointer_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "1bc6867ddcf677e50a2aa6ed991c61ce") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_pointer_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "1bc6867ddcf677e50a2aa6ed991c61ce") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 6, column: 8, scope: !10) +!19 = !DILocation(line: 6, column: 12, scope: !10) +!20 = !DILocation(line: 7, column: 4, scope: !10) +!21 = !DILocation(line: 7, column: 6, scope: !10) +!22 = !DILocation(line: 8, column: 13, scope: !10) +!23 = !DILocation(line: 8, column: 3, scope: !10) +!24 = !DILocation(line: 9, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_array_access.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_array_access.c.bc new file mode 100644 index 00000000..b74d0455 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_array_access.c.bc @@ -0,0 +1,139 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_array_access.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_ptr_array_access.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %n = alloca ptr, align 8 + %ptrs = alloca [5 x ptr], align 16 + %i = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %n, metadata !16, metadata !DIExpression()), !dbg !18 + %call = call noalias ptr @malloc(i64 noundef 4) #4, !dbg !19 + store ptr %call, ptr %n, align 8, !dbg !18 + %0 = load ptr, ptr %n, align 8, !dbg !20 + store i32 0, ptr %0, align 4, !dbg !21 + call void @llvm.dbg.declare(metadata ptr %ptrs, metadata !22, metadata !DIExpression()), !dbg !26 + %arrayinit.begin = getelementptr inbounds [5 x ptr], ptr %ptrs, i64 0, i64 0, !dbg !27 + %1 = load ptr, ptr %n, align 8, !dbg !28 + store ptr %1, ptr %arrayinit.begin, align 8, !dbg !27 + %arrayinit.element = getelementptr inbounds ptr, ptr %arrayinit.begin, i64 1, !dbg !27 + %2 = load ptr, ptr %n, align 8, !dbg !29 + store ptr %2, ptr %arrayinit.element, align 8, !dbg !27 + %arrayinit.element1 = getelementptr inbounds ptr, ptr %arrayinit.element, i64 1, !dbg !27 + %3 = load ptr, ptr %n, align 8, !dbg !30 + store ptr %3, ptr %arrayinit.element1, align 8, !dbg !27 + %arrayinit.element2 = getelementptr inbounds ptr, ptr %arrayinit.element1, i64 1, !dbg !27 + %4 = load ptr, ptr %n, align 8, !dbg !31 + store ptr %4, ptr %arrayinit.element2, align 8, !dbg !27 + %arrayinit.element3 = getelementptr inbounds ptr, ptr %arrayinit.element2, i64 1, !dbg !27 + %5 = load ptr, ptr %n, align 8, !dbg !32 + store ptr %5, ptr %arrayinit.element3, align 8, !dbg !27 + call void @llvm.dbg.declare(metadata ptr %i, metadata !33, metadata !DIExpression()), !dbg !35 + store i32 0, ptr %i, align 4, !dbg !35 + br label %for.cond, !dbg !36 + +for.cond: ; preds = %for.inc, %entry + %6 = load i32, ptr %i, align 4, !dbg !37 + %cmp = icmp slt i32 %6, 5, !dbg !39 + br i1 %cmp, label %for.body, label %for.end, !dbg !40 + +for.body: ; preds = %for.cond + %7 = load i32, ptr %i, align 4, !dbg !41 + %idxprom = sext i32 %7 to i64, !dbg !43 + %arrayidx = getelementptr inbounds [5 x ptr], ptr %ptrs, i64 0, i64 %idxprom, !dbg !43 + %8 = load ptr, ptr %arrayidx, align 8, !dbg !43 + call void @SAFE_LOAD(ptr noundef %8), !dbg !44 + %9 = load i32, ptr %i, align 4, !dbg !45 + %idxprom4 = sext i32 %9 to i64, !dbg !46 + %arrayidx5 = getelementptr inbounds [5 x ptr], ptr %ptrs, i64 0, i64 %idxprom4, !dbg !46 + %10 = load ptr, ptr %arrayidx5, align 8, !dbg !46 + store i32 1, ptr %10, align 4, !dbg !47 + br label %for.inc, !dbg !48 + +for.inc: ; preds = %for.body + %11 = load i32, ptr %i, align 4, !dbg !49 + %inc = add nsw i32 %11, 1, !dbg !49 + store i32 %inc, ptr %i, align 4, !dbg !49 + br label %for.cond, !dbg !50, !llvm.loop !51 + +for.end: ; preds = %for.cond + ret i32 0, !dbg !54 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_ptr_array_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c83073b3c7cf8e37461b060b5b9911bd") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_ptr_array_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "c83073b3c7cf8e37461b060b5b9911bd") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "n", scope: !10, file: !11, line: 6, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!18 = !DILocation(line: 6, column: 10, scope: !10) +!19 = !DILocation(line: 6, column: 14, scope: !10) +!20 = !DILocation(line: 7, column: 6, scope: !10) +!21 = !DILocation(line: 7, column: 8, scope: !10) +!22 = !DILocalVariable(name: "ptrs", scope: !10, file: !11, line: 8, type: !23) +!23 = !DICompositeType(tag: DW_TAG_array_type, baseType: !17, size: 320, elements: !24) +!24 = !{!25} +!25 = !DISubrange(count: 5) +!26 = !DILocation(line: 8, column: 10, scope: !10) +!27 = !DILocation(line: 8, column: 20, scope: !10) +!28 = !DILocation(line: 8, column: 21, scope: !10) +!29 = !DILocation(line: 8, column: 24, scope: !10) +!30 = !DILocation(line: 8, column: 27, scope: !10) +!31 = !DILocation(line: 8, column: 30, scope: !10) +!32 = !DILocation(line: 8, column: 33, scope: !10) +!33 = !DILocalVariable(name: "i", scope: !34, file: !11, line: 9, type: !14) +!34 = distinct !DILexicalBlock(scope: !10, file: !11, line: 9, column: 5) +!35 = !DILocation(line: 9, column: 14, scope: !34) +!36 = !DILocation(line: 9, column: 10, scope: !34) +!37 = !DILocation(line: 9, column: 21, scope: !38) +!38 = distinct !DILexicalBlock(scope: !34, file: !11, line: 9, column: 5) +!39 = !DILocation(line: 9, column: 23, scope: !38) +!40 = !DILocation(line: 9, column: 5, scope: !34) +!41 = !DILocation(line: 10, column: 24, scope: !42) +!42 = distinct !DILexicalBlock(scope: !38, file: !11, line: 9, column: 33) +!43 = !DILocation(line: 10, column: 19, scope: !42) +!44 = !DILocation(line: 10, column: 9, scope: !42) +!45 = !DILocation(line: 11, column: 15, scope: !42) +!46 = !DILocation(line: 11, column: 10, scope: !42) +!47 = !DILocation(line: 11, column: 18, scope: !42) +!48 = !DILocation(line: 12, column: 5, scope: !42) +!49 = !DILocation(line: 9, column: 29, scope: !38) +!50 = !DILocation(line: 9, column: 5, scope: !38) +!51 = distinct !{!51, !40, !52, !53} +!52 = !DILocation(line: 12, column: 5, scope: !34) +!53 = !{!"llvm.loop.mustprogress"} +!54 = !DILocation(line: 14, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_assign.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_assign.c.bc new file mode 100644 index 00000000..afee2277 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_assign.c.bc @@ -0,0 +1,63 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_ptr_assign.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_ptr_assign.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %myPtr2 = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 6, ptr %x, align 4, !dbg !17 + call void @llvm.dbg.declare(metadata ptr %myPtr2, metadata !18, metadata !DIExpression()), !dbg !20 + store ptr %x, ptr %myPtr2, align 8, !dbg !21 + %0 = load ptr, ptr %myPtr2, align 8, !dbg !22 + call void @SAFE_LOAD(ptr noundef %0), !dbg !23 + %1 = load ptr, ptr %myPtr2, align 8, !dbg !24 + store i32 5, ptr %1, align 4, !dbg !25 + ret i32 0, !dbg !26 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @SAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_ptr_assign.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "7b418cbf0915ce6662fd107f5d172847") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_ptr_assign.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "7b418cbf0915ce6662fd107f5d172847") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "x", scope: !10, file: !11, line: 10, type: !14) +!17 = !DILocation(line: 10, column: 9, scope: !10) +!18 = !DILocalVariable(name: "myPtr2", scope: !10, file: !11, line: 11, type: !19) +!19 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!20 = !DILocation(line: 11, column: 10, scope: !10) +!21 = !DILocation(line: 12, column: 12, scope: !10) +!22 = !DILocation(line: 13, column: 15, scope: !10) +!23 = !DILocation(line: 13, column: 5, scope: !10) +!24 = !DILocation(line: 14, column: 6, scope: !10) +!25 = !DILocation(line: 14, column: 13, scope: !10) +!26 = !DILocation(line: 16, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_single_array_access.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_single_array_access.c.bc new file mode 100644 index 00000000..574df9c3 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_single_array_access.c.bc @@ -0,0 +1,57 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_single_array_access.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_single_array_access.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %arr = alloca [1 x i32], align 4 + call void @llvm.dbg.declare(metadata ptr %arr, metadata !16, metadata !DIExpression()), !dbg !20 + call void @llvm.memset.p0.i64(ptr align 4 %arr, i8 0, i64 4, i1 false), !dbg !20 + %arraydecay = getelementptr inbounds [1 x i32], ptr %arr, i64 0, i64 0, !dbg !21 + call void @SAFE_LOAD(ptr noundef %arraydecay), !dbg !22 + ret i32 0, !dbg !23 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_single_array_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "58e07ff3a8b62e402b252ba285960084") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_single_array_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "58e07ff3a8b62e402b252ba285960084") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "arr", scope: !10, file: !11, line: 6, type: !17) +!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !14, size: 32, elements: !18) +!18 = !{!19} +!19 = !DISubrange(count: 1) +!20 = !DILocation(line: 6, column: 7, scope: !10) +!21 = !DILocation(line: 7, column: 13, scope: !10) +!22 = !DILocation(line: 7, column: 3, scope: !10) +!23 = !DILocation(line: 8, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/safe_struct_access.c.bc b/test_cases_bc/ae_nullptr_deref_tests/safe_struct_access.c.bc new file mode 100644 index 00000000..71d6a9f5 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/safe_struct_access.c.bc @@ -0,0 +1,87 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/safe_struct_access.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_struct_access.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.Data = type { i32, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %dataPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %dataPtr, metadata !16, metadata !DIExpression()), !dbg !23 + %call = call noalias ptr @malloc(i64 noundef 8) #4, !dbg !24 + store ptr %call, ptr %dataPtr, align 8, !dbg !23 + %0 = load ptr, ptr %dataPtr, align 8, !dbg !25 + %number = getelementptr inbounds %struct.Data, ptr %0, i32 0, i32 0, !dbg !26 + store i32 0, ptr %number, align 4, !dbg !27 + %1 = load ptr, ptr %dataPtr, align 8, !dbg !28 + %character = getelementptr inbounds %struct.Data, ptr %1, i32 0, i32 1, !dbg !29 + store i8 97, ptr %character, align 4, !dbg !30 + %2 = load ptr, ptr %dataPtr, align 8, !dbg !31 + %number1 = getelementptr inbounds %struct.Data, ptr %2, i32 0, i32 0, !dbg !32 + call void @SAFE_LOAD(ptr noundef %number1), !dbg !33 + %3 = load ptr, ptr %dataPtr, align 8, !dbg !34 + %character2 = getelementptr inbounds %struct.Data, ptr %3, i32 0, i32 1, !dbg !35 + call void @SAFE_LOAD(ptr noundef %character2), !dbg !36 + ret i32 0, !dbg !37 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +declare void @SAFE_LOAD(ptr noundef) #3 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind allocsize(0) } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/safe_struct_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "744b5b61f80a221fed1e93b2ae852e0f") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/safe_struct_access.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "744b5b61f80a221fed1e93b2ae852e0f") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "dataPtr", scope: !10, file: !11, line: 11, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Data", file: !11, line: 5, size: 64, elements: !19) +!19 = !{!20, !21} +!20 = !DIDerivedType(tag: DW_TAG_member, name: "number", scope: !18, file: !11, line: 6, baseType: !14, size: 32) +!21 = !DIDerivedType(tag: DW_TAG_member, name: "character", scope: !18, file: !11, line: 7, baseType: !22, size: 8, offset: 32) +!22 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!23 = !DILocation(line: 11, column: 18, scope: !10) +!24 = !DILocation(line: 11, column: 28, scope: !10) +!25 = !DILocation(line: 13, column: 5, scope: !10) +!26 = !DILocation(line: 13, column: 14, scope: !10) +!27 = !DILocation(line: 13, column: 21, scope: !10) +!28 = !DILocation(line: 14, column: 5, scope: !10) +!29 = !DILocation(line: 14, column: 14, scope: !10) +!30 = !DILocation(line: 14, column: 24, scope: !10) +!31 = !DILocation(line: 16, column: 16, scope: !10) +!32 = !DILocation(line: 16, column: 25, scope: !10) +!33 = !DILocation(line: 16, column: 5, scope: !10) +!34 = !DILocation(line: 17, column: 16, scope: !10) +!35 = !DILocation(line: 17, column: 25, scope: !10) +!36 = !DILocation(line: 17, column: 5, scope: !10) +!37 = !DILocation(line: 19, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_1.c.bc b/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_1.c.bc new file mode 100644 index 00000000..0d812dc1 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_1.c.bc @@ -0,0 +1,62 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_1.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_func_ptr_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.Operations = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %ops = alloca %struct.Operations, align 8 + call void @llvm.dbg.declare(metadata ptr %ops, metadata !16, metadata !DIExpression()), !dbg !23 + %op_function = getelementptr inbounds %struct.Operations, ptr %ops, i32 0, i32 0, !dbg !24 + store ptr null, ptr %op_function, align 8, !dbg !25 + %op_function1 = getelementptr inbounds %struct.Operations, ptr %ops, i32 0, i32 0, !dbg !26 + %0 = load ptr, ptr %op_function1, align 8, !dbg !26 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !27 + ret i32 0, !dbg !28 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_func_ptr_1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "651a80f457006a5bc75f8639e2c32976") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/struct_func_ptr_1.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "651a80f457006a5bc75f8639e2c32976") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "ops", scope: !10, file: !11, line: 10, type: !17) +!17 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Operations", file: !11, line: 5, size: 64, elements: !18) +!18 = !{!19} +!19 = !DIDerivedType(tag: DW_TAG_member, name: "op_function", scope: !17, file: !11, line: 6, baseType: !20, size: 64) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !21, size: 64) +!21 = !DISubroutineType(types: !22) +!22 = !{null, !14} +!23 = !DILocation(line: 10, column: 23, scope: !10) +!24 = !DILocation(line: 11, column: 9, scope: !10) +!25 = !DILocation(line: 11, column: 21, scope: !10) +!26 = !DILocation(line: 12, column: 21, scope: !10) +!27 = !DILocation(line: 12, column: 5, scope: !10) +!28 = !DILocation(line: 13, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_2.c.bc b/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_2.c.bc new file mode 100644 index 00000000..eb141548 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_2.c.bc @@ -0,0 +1,61 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/struct_func_ptr_2.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_func_ptr_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.Operations = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %ops = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %ops, metadata !16, metadata !DIExpression()), !dbg !24 + store ptr null, ptr %ops, align 8, !dbg !24 + %0 = load ptr, ptr %ops, align 8, !dbg !25 + %op_function = getelementptr inbounds %struct.Operations, ptr %0, i32 0, i32 0, !dbg !26 + call void @UNSAFE_LOAD(ptr noundef %op_function), !dbg !27 + ret i32 0, !dbg !28 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_func_ptr_2.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "03406f5e1d0d54d37e6833a09bad240f") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 9, type: !12, scopeLine: 9, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/struct_func_ptr_2.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "03406f5e1d0d54d37e6833a09bad240f") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "ops", scope: !10, file: !11, line: 10, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Operations", file: !11, line: 5, size: 64, elements: !19) +!19 = !{!20} +!20 = !DIDerivedType(tag: DW_TAG_member, name: "op_function", scope: !18, file: !11, line: 6, baseType: !21, size: 64) +!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !22, size: 64) +!22 = !DISubroutineType(types: !23) +!23 = !{null, !14} +!24 = !DILocation(line: 10, column: 24, scope: !10) +!25 = !DILocation(line: 11, column: 18, scope: !10) +!26 = !DILocation(line: 11, column: 23, scope: !10) +!27 = !DILocation(line: 11, column: 5, scope: !10) +!28 = !DILocation(line: 12, column: 1, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/struct_nullptr.c.bc b/test_cases_bc/ae_nullptr_deref_tests/struct_nullptr.c.bc new file mode 100644 index 00000000..bdd060e6 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/struct_nullptr.c.bc @@ -0,0 +1,68 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/struct_nullptr.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_nullptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.Data = type { i32, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %dataPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %dataPtr, metadata !16, metadata !DIExpression()), !dbg !23 + store ptr null, ptr %dataPtr, align 8, !dbg !23 + %0 = load ptr, ptr %dataPtr, align 8, !dbg !24 + %number = getelementptr inbounds %struct.Data, ptr %0, i32 0, i32 0, !dbg !25 + call void @UNSAFE_LOAD(ptr noundef %number), !dbg !26 + %1 = load ptr, ptr %dataPtr, align 8, !dbg !27 + %character = getelementptr inbounds %struct.Data, ptr %1, i32 0, i32 1, !dbg !28 + call void @UNSAFE_LOAD(ptr noundef %character), !dbg !29 + ret i32 0, !dbg !30 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f382cb93a190234ffc530fd90bb5c724") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/struct_nullptr.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f382cb93a190234ffc530fd90bb5c724") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "dataPtr", scope: !10, file: !11, line: 11, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Data", file: !11, line: 5, size: 64, elements: !19) +!19 = !{!20, !21} +!20 = !DIDerivedType(tag: DW_TAG_member, name: "number", scope: !18, file: !11, line: 6, baseType: !14, size: 32) +!21 = !DIDerivedType(tag: DW_TAG_member, name: "character", scope: !18, file: !11, line: 7, baseType: !22, size: 8, offset: 32) +!22 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!23 = !DILocation(line: 11, column: 18, scope: !10) +!24 = !DILocation(line: 13, column: 18, scope: !10) +!25 = !DILocation(line: 13, column: 27, scope: !10) +!26 = !DILocation(line: 13, column: 5, scope: !10) +!27 = !DILocation(line: 14, column: 18, scope: !10) +!28 = !DILocation(line: 14, column: 27, scope: !10) +!29 = !DILocation(line: 14, column: 5, scope: !10) +!30 = !DILocation(line: 16, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/struct_uninit_struct.c.bc b/test_cases_bc/ae_nullptr_deref_tests/struct_uninit_struct.c.bc new file mode 100644 index 00000000..688c83e0 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/struct_uninit_struct.c.bc @@ -0,0 +1,67 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/struct_uninit_struct.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_uninit_struct.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.Data = type { i32, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %dataPtr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %dataPtr, metadata !16, metadata !DIExpression()), !dbg !23 + %0 = load ptr, ptr %dataPtr, align 8, !dbg !24 + %number = getelementptr inbounds %struct.Data, ptr %0, i32 0, i32 0, !dbg !25 + call void @UNSAFE_LOAD(ptr noundef %number), !dbg !26 + %1 = load ptr, ptr %dataPtr, align 8, !dbg !27 + %character = getelementptr inbounds %struct.Data, ptr %1, i32 0, i32 1, !dbg !28 + call void @UNSAFE_LOAD(ptr noundef %character), !dbg !29 + ret i32 0, !dbg !30 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/struct_uninit_struct.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5b607f576aeb3e1b1c561bc9f536ec89") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/struct_uninit_struct.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "5b607f576aeb3e1b1c561bc9f536ec89") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "dataPtr", scope: !10, file: !11, line: 11, type: !17) +!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !18, size: 64) +!18 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Data", file: !11, line: 5, size: 64, elements: !19) +!19 = !{!20, !21} +!20 = !DIDerivedType(tag: DW_TAG_member, name: "number", scope: !18, file: !11, line: 6, baseType: !14, size: 32) +!21 = !DIDerivedType(tag: DW_TAG_member, name: "character", scope: !18, file: !11, line: 7, baseType: !22, size: 8, offset: 32) +!22 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!23 = !DILocation(line: 11, column: 18, scope: !10) +!24 = !DILocation(line: 13, column: 18, scope: !10) +!25 = !DILocation(line: 13, column: 27, scope: !10) +!26 = !DILocation(line: 13, column: 5, scope: !10) +!27 = !DILocation(line: 14, column: 18, scope: !10) +!28 = !DILocation(line: 14, column: 27, scope: !10) +!29 = !DILocation(line: 14, column: 5, scope: !10) +!30 = !DILocation(line: 16, column: 5, scope: !10) diff --git a/test_cases_bc/ae_nullptr_deref_tests/union_nullptr_member.c.bc b/test_cases_bc/ae_nullptr_deref_tests/union_nullptr_member.c.bc new file mode 100644 index 00000000..f79678d5 --- /dev/null +++ b/test_cases_bc/ae_nullptr_deref_tests/union_nullptr_member.c.bc @@ -0,0 +1,62 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_nullptr_deref_tests/union_nullptr_member.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/union_nullptr_member.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%union.Data = type { ptr } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %data = alloca %union.Data, align 8 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %data, metadata !16, metadata !DIExpression()), !dbg !24 + store ptr null, ptr %data, align 8, !dbg !25 + %0 = load ptr, ptr %data, align 8, !dbg !26 + call void @UNSAFE_LOAD(ptr noundef %0), !dbg !27 + ret i32 0, !dbg !28 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +declare void @UNSAFE_LOAD(ptr noundef) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_nullptr_deref_tests/union_nullptr_member.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f0c3fef6c8fca15d129bc43f70f93641") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 10, type: !12, scopeLine: 10, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_nullptr_deref_tests/union_nullptr_member.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "f0c3fef6c8fca15d129bc43f70f93641") +!12 = !DISubroutineType(types: !13) +!13 = !{!14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "data", scope: !10, file: !11, line: 11, type: !17) +!17 = distinct !DICompositeType(tag: DW_TAG_union_type, name: "Data", file: !11, line: 5, size: 64, elements: !18) +!18 = !{!19, !21} +!19 = !DIDerivedType(tag: DW_TAG_member, name: "int_ptr", scope: !17, file: !11, line: 6, baseType: !20, size: 64) +!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64) +!21 = !DIDerivedType(tag: DW_TAG_member, name: "float_ptr", scope: !17, file: !11, line: 7, baseType: !22, size: 64) +!22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !23, size: 64) +!23 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float) +!24 = !DILocation(line: 11, column: 16, scope: !10) +!25 = !DILocation(line: 12, column: 18, scope: !10) +!26 = !DILocation(line: 13, column: 22, scope: !10) +!27 = !DILocation(line: 13, column: 5, scope: !10) +!28 = !DILocation(line: 15, column: 5, scope: !10) diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c.bc index 3fb7ebcd..22584c17 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c.bc @@ -338,7 +338,7 @@ attributes #7 = { nounwind } !31 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 288, elements: !32) !32 = !{!33} !33 = !DISubrange(count: 36) -!34 = distinct !DICompileUnit(language: DW_LANG_C11, file: !35, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !36, globals: !39, splitDebugInlining: false, nameTableKind: None) +!34 = distinct !DICompileUnit(language: DW_LANG_C11, file: !35, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !36, globals: !39, splitDebugInlining: false, nameTableKind: None) !35 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4f7916fb21ff176bd7ff7d40728c5c13") !36 = !{!37, !38} !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -351,7 +351,7 @@ attributes #7 = { nounwind } !44 = !{i32 7, !"PIE Level", i32 2} !45 = !{i32 7, !"uwtable", i32 2} !46 = !{i32 7, !"frame-pointer", i32 2} -!47 = !{!"clang version 16.0.0"} +!47 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !48 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE129_fgets_01_bad", scope: !2, file: !2, line: 24, type: !49, scopeLine: 25, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !51) !49 = !DISubroutineType(types: !50) !50 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c.bc index 683c1311..d5ffb977 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c.bc @@ -14,7 +14,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.5 = private unnamed_addr constant [36 x i8] c"ERROR: Array index is out-of-bounds\00", align 1, !dbg !27 ; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad() #0 !dbg !104 { +define dso_local void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad() #0 !dbg !107 { entry: %data = alloca i32, align 4 %recvResult = alloca i32, align 4 @@ -24,163 +24,163 @@ entry: %inputBuffer = alloca [14 x i8], align 1 %i = alloca i32, align 4 %buffer = alloca [10 x i32], align 16 - call void @llvm.dbg.declare(metadata ptr %data, metadata !108, metadata !DIExpression()), !dbg !110 - store i32 -1, ptr %data, align 4, !dbg !111 - call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !112, metadata !DIExpression()), !dbg !114 - call void @llvm.dbg.declare(metadata ptr %service, metadata !115, metadata !DIExpression()), !dbg !132 - call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !133, metadata !DIExpression()), !dbg !134 - store i32 -1, ptr %listenSocket, align 4, !dbg !134 - call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !135, metadata !DIExpression()), !dbg !136 - store i32 -1, ptr %acceptSocket, align 4, !dbg !136 - call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !137, metadata !DIExpression()), !dbg !138 - br label %do.body, !dbg !139 + call void @llvm.dbg.declare(metadata ptr %data, metadata !111, metadata !DIExpression()), !dbg !113 + store i32 -1, ptr %data, align 4, !dbg !114 + call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !115, metadata !DIExpression()), !dbg !117 + call void @llvm.dbg.declare(metadata ptr %service, metadata !118, metadata !DIExpression()), !dbg !135 + call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !136, metadata !DIExpression()), !dbg !137 + store i32 -1, ptr %listenSocket, align 4, !dbg !137 + call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !138, metadata !DIExpression()), !dbg !139 + store i32 -1, ptr %acceptSocket, align 4, !dbg !139 + call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !140, metadata !DIExpression()), !dbg !141 + br label %do.body, !dbg !142 do.body: ; preds = %entry - %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !140 - store i32 %call, ptr %listenSocket, align 4, !dbg !142 - %0 = load i32, ptr %listenSocket, align 4, !dbg !143 - %cmp = icmp eq i32 %0, -1, !dbg !145 - br i1 %cmp, label %if.then, label %if.end, !dbg !146 + %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !143 + store i32 %call, ptr %listenSocket, align 4, !dbg !145 + %0 = load i32, ptr %listenSocket, align 4, !dbg !146 + %cmp = icmp eq i32 %0, -1, !dbg !148 + br i1 %cmp, label %if.then, label %if.end, !dbg !149 if.then: ; preds = %do.body - br label %do.end, !dbg !147 + br label %do.end, !dbg !150 if.end: ; preds = %do.body - call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !149 - %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !150 - store i16 2, ptr %sin_family, align 4, !dbg !151 - %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !152 - %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !153 - store i32 0, ptr %s_addr, align 4, !dbg !154 - %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !155 - %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !156 - store i16 %call1, ptr %sin_port, align 2, !dbg !157 - %1 = load i32, ptr %listenSocket, align 4, !dbg !158 - %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !160 - %cmp3 = icmp eq i32 %call2, -1, !dbg !161 - br i1 %cmp3, label %if.then4, label %if.end5, !dbg !162 + call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !152 + %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !153 + store i16 2, ptr %sin_family, align 4, !dbg !154 + %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !155 + %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !156 + store i32 0, ptr %s_addr, align 4, !dbg !157 + %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !158 + %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !159 + store i16 %call1, ptr %sin_port, align 2, !dbg !160 + %1 = load i32, ptr %listenSocket, align 4, !dbg !161 + %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !163 + %cmp3 = icmp eq i32 %call2, -1, !dbg !164 + br i1 %cmp3, label %if.then4, label %if.end5, !dbg !165 if.then4: ; preds = %if.end - br label %do.end, !dbg !163 + br label %do.end, !dbg !166 if.end5: ; preds = %if.end - %2 = load i32, ptr %listenSocket, align 4, !dbg !165 - %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !167 - %cmp7 = icmp eq i32 %call6, -1, !dbg !168 - br i1 %cmp7, label %if.then8, label %if.end9, !dbg !169 + %2 = load i32, ptr %listenSocket, align 4, !dbg !168 + %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !170 + %cmp7 = icmp eq i32 %call6, -1, !dbg !171 + br i1 %cmp7, label %if.then8, label %if.end9, !dbg !172 if.then8: ; preds = %if.end5 - br label %do.end, !dbg !170 + br label %do.end, !dbg !173 if.end9: ; preds = %if.end5 - %3 = load i32, ptr %listenSocket, align 4, !dbg !172 - %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !173 - store i32 %call10, ptr %acceptSocket, align 4, !dbg !174 - %4 = load i32, ptr %acceptSocket, align 4, !dbg !175 - %cmp11 = icmp eq i32 %4, -1, !dbg !177 - br i1 %cmp11, label %if.then12, label %if.end13, !dbg !178 + %3 = load i32, ptr %listenSocket, align 4, !dbg !175 + %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !176 + store i32 %call10, ptr %acceptSocket, align 4, !dbg !177 + %4 = load i32, ptr %acceptSocket, align 4, !dbg !178 + %cmp11 = icmp eq i32 %4, -1, !dbg !180 + br i1 %cmp11, label %if.then12, label %if.end13, !dbg !181 if.then12: ; preds = %if.end9 - br label %do.end, !dbg !179 + br label %do.end, !dbg !182 if.end13: ; preds = %if.end9 - %5 = load i32, ptr %acceptSocket, align 4, !dbg !181 - %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !182 - %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !183 - %conv = trunc i64 %call14 to i32, !dbg !183 - store i32 %conv, ptr %recvResult, align 4, !dbg !184 - %6 = load i32, ptr %recvResult, align 4, !dbg !185 - %cmp15 = icmp eq i32 %6, -1, !dbg !187 - br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !188 + %5 = load i32, ptr %acceptSocket, align 4, !dbg !184 + %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !185 + %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !186 + %conv = trunc i64 %call14 to i32, !dbg !186 + store i32 %conv, ptr %recvResult, align 4, !dbg !187 + %6 = load i32, ptr %recvResult, align 4, !dbg !188 + %cmp15 = icmp eq i32 %6, -1, !dbg !190 + br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !191 lor.lhs.false: ; preds = %if.end13 - %7 = load i32, ptr %recvResult, align 4, !dbg !189 - %cmp17 = icmp eq i32 %7, 0, !dbg !190 - br i1 %cmp17, label %if.then19, label %if.end20, !dbg !191 + %7 = load i32, ptr %recvResult, align 4, !dbg !192 + %cmp17 = icmp eq i32 %7, 0, !dbg !193 + br i1 %cmp17, label %if.then19, label %if.end20, !dbg !194 if.then19: ; preds = %lor.lhs.false, %if.end13 - br label %do.end, !dbg !192 + br label %do.end, !dbg !195 if.end20: ; preds = %lor.lhs.false - %8 = load i32, ptr %recvResult, align 4, !dbg !194 - %idxprom = sext i32 %8 to i64, !dbg !195 - %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !195 - store i8 0, ptr %arrayidx, align 1, !dbg !196 - %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !197 - %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !198 - store i32 %call22, ptr %data, align 4, !dbg !199 - br label %do.end, !dbg !200 + %8 = load i32, ptr %recvResult, align 4, !dbg !197 + %idxprom = sext i32 %8 to i64, !dbg !198 + %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !198 + store i8 0, ptr %arrayidx, align 1, !dbg !199 + %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !200 + %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !201 + store i32 %call22, ptr %data, align 4, !dbg !202 + br label %do.end, !dbg !203 do.end: ; preds = %if.end20, %if.then19, %if.then12, %if.then8, %if.then4, %if.then - %9 = load i32, ptr %listenSocket, align 4, !dbg !201 - %cmp23 = icmp ne i32 %9, -1, !dbg !203 - br i1 %cmp23, label %if.then25, label %if.end27, !dbg !204 + %9 = load i32, ptr %listenSocket, align 4, !dbg !204 + %cmp23 = icmp ne i32 %9, -1, !dbg !206 + br i1 %cmp23, label %if.then25, label %if.end27, !dbg !207 if.then25: ; preds = %do.end - %10 = load i32, ptr %listenSocket, align 4, !dbg !205 - %call26 = call i32 @close(i32 noundef %10), !dbg !207 - br label %if.end27, !dbg !208 + %10 = load i32, ptr %listenSocket, align 4, !dbg !208 + %call26 = call i32 @close(i32 noundef %10), !dbg !210 + br label %if.end27, !dbg !211 if.end27: ; preds = %if.then25, %do.end - %11 = load i32, ptr %acceptSocket, align 4, !dbg !209 - %cmp28 = icmp ne i32 %11, -1, !dbg !211 - br i1 %cmp28, label %if.then30, label %if.end32, !dbg !212 + %11 = load i32, ptr %acceptSocket, align 4, !dbg !212 + %cmp28 = icmp ne i32 %11, -1, !dbg !214 + br i1 %cmp28, label %if.then30, label %if.end32, !dbg !215 if.then30: ; preds = %if.end27 - %12 = load i32, ptr %acceptSocket, align 4, !dbg !213 - %call31 = call i32 @close(i32 noundef %12), !dbg !215 - br label %if.end32, !dbg !216 + %12 = load i32, ptr %acceptSocket, align 4, !dbg !216 + %call31 = call i32 @close(i32 noundef %12), !dbg !218 + br label %if.end32, !dbg !219 if.end32: ; preds = %if.then30, %if.end27 - call void @llvm.dbg.declare(metadata ptr %i, metadata !217, metadata !DIExpression()), !dbg !219 - call void @llvm.dbg.declare(metadata ptr %buffer, metadata !220, metadata !DIExpression()), !dbg !224 - call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !224 - %13 = load i32, ptr %data, align 4, !dbg !225 - %cmp33 = icmp sge i32 %13, 0, !dbg !227 - br i1 %cmp33, label %if.then35, label %if.else, !dbg !228 + call void @llvm.dbg.declare(metadata ptr %i, metadata !220, metadata !DIExpression()), !dbg !222 + call void @llvm.dbg.declare(metadata ptr %buffer, metadata !223, metadata !DIExpression()), !dbg !227 + call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !227 + %13 = load i32, ptr %data, align 4, !dbg !228 + %cmp33 = icmp sge i32 %13, 0, !dbg !230 + br i1 %cmp33, label %if.then35, label %if.else, !dbg !231 if.then35: ; preds = %if.end32 - %14 = load i32, ptr %data, align 4, !dbg !229 - %idxprom36 = sext i32 %14 to i64, !dbg !231 - %arrayidx37 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom36, !dbg !231 - store i32 1, ptr %arrayidx37, align 4, !dbg !232 - %arraydecay38 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !233 - %15 = load i32, ptr %data, align 4, !dbg !234 - %conv39 = sext i32 %15 to i64, !dbg !234 - %mul = mul i64 %conv39, 4, !dbg !235 - %sub = sub i64 %mul, 1, !dbg !236 - %call40 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %arraydecay38, i64 noundef %sub), !dbg !237 - store i32 0, ptr %i, align 4, !dbg !238 - br label %for.cond, !dbg !240 + %14 = load i32, ptr %data, align 4, !dbg !232 + %idxprom36 = sext i32 %14 to i64, !dbg !234 + %arrayidx37 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom36, !dbg !234 + store i32 1, ptr %arrayidx37, align 4, !dbg !235 + %arraydecay38 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !236 + %15 = load i32, ptr %data, align 4, !dbg !237 + %conv39 = sext i32 %15 to i64, !dbg !237 + %mul = mul i64 %conv39, 4, !dbg !238 + %sub = sub i64 %mul, 1, !dbg !239 + %call40 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %arraydecay38, i64 noundef %sub), !dbg !240 + store i32 0, ptr %i, align 4, !dbg !241 + br label %for.cond, !dbg !243 for.cond: ; preds = %for.inc, %if.then35 - %16 = load i32, ptr %i, align 4, !dbg !241 - %cmp41 = icmp slt i32 %16, 10, !dbg !243 - br i1 %cmp41, label %for.body, label %for.end, !dbg !244 + %16 = load i32, ptr %i, align 4, !dbg !244 + %cmp41 = icmp slt i32 %16, 10, !dbg !246 + br i1 %cmp41, label %for.body, label %for.end, !dbg !247 for.body: ; preds = %for.cond - %17 = load i32, ptr %i, align 4, !dbg !245 - %idxprom43 = sext i32 %17 to i64, !dbg !247 - %arrayidx44 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom43, !dbg !247 - %18 = load i32, ptr %arrayidx44, align 4, !dbg !247 - call void @printIntLine(i32 noundef %18), !dbg !248 - br label %for.inc, !dbg !249 + %17 = load i32, ptr %i, align 4, !dbg !248 + %idxprom43 = sext i32 %17 to i64, !dbg !250 + %arrayidx44 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom43, !dbg !250 + %18 = load i32, ptr %arrayidx44, align 4, !dbg !250 + call void @printIntLine(i32 noundef %18), !dbg !251 + br label %for.inc, !dbg !252 for.inc: ; preds = %for.body - %19 = load i32, ptr %i, align 4, !dbg !250 - %inc = add nsw i32 %19, 1, !dbg !250 - store i32 %inc, ptr %i, align 4, !dbg !250 - br label %for.cond, !dbg !251, !llvm.loop !252 + %19 = load i32, ptr %i, align 4, !dbg !253 + %inc = add nsw i32 %19, 1, !dbg !253 + store i32 %inc, ptr %i, align 4, !dbg !253 + br label %for.cond, !dbg !254, !llvm.loop !255 for.end: ; preds = %for.cond - br label %if.end45, !dbg !255 + br label %if.end45, !dbg !258 if.else: ; preds = %if.end32 - call void @printLine(ptr noundef @.str), !dbg !256 + call void @printLine(ptr noundef @.str), !dbg !259 br label %if.end45 if.end45: ; preds = %if.else, %for.end - ret void, !dbg !258 + ret void, !dbg !261 } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) @@ -217,34 +217,34 @@ declare void @printIntLine(i32 noundef) #5 declare void @printLine(ptr noundef) #5 ; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good() #0 !dbg !259 { +define dso_local void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good() #0 !dbg !262 { entry: - call void @goodG2B(), !dbg !260 - call void @goodB2G(), !dbg !261 - ret void, !dbg !262 + call void @goodG2B(), !dbg !263 + call void @goodB2G(), !dbg !264 + ret void, !dbg !265 } ; Function Attrs: noinline nounwind optnone uwtable -define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !263 { +define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !266 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 %argv.addr = alloca ptr, align 8 store i32 0, ptr %retval, align 4 store i32 %argc, ptr %argc.addr, align 4 - call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !268, metadata !DIExpression()), !dbg !269 + call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !271, metadata !DIExpression()), !dbg !272 store ptr %argv, ptr %argv.addr, align 8 - call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !270, metadata !DIExpression()), !dbg !271 - %call = call i64 @time(ptr noundef null) #7, !dbg !272 - %conv = trunc i64 %call to i32, !dbg !273 - call void @srand(i32 noundef %conv) #7, !dbg !274 - call void @printLine(ptr noundef @.str.1), !dbg !275 - call void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good(), !dbg !276 - call void @printLine(ptr noundef @.str.2), !dbg !277 - call void @printLine(ptr noundef @.str.3), !dbg !278 - call void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad(), !dbg !279 - call void @printLine(ptr noundef @.str.4), !dbg !280 - ret i32 0, !dbg !281 + call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !273, metadata !DIExpression()), !dbg !274 + %call = call i64 @time(ptr noundef null) #7, !dbg !275 + %conv = trunc i64 %call to i32, !dbg !276 + call void @srand(i32 noundef %conv) #7, !dbg !277 + call void @printLine(ptr noundef @.str.1), !dbg !278 + call void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good(), !dbg !279 + call void @printLine(ptr noundef @.str.2), !dbg !280 + call void @printLine(ptr noundef @.str.3), !dbg !281 + call void @CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad(), !dbg !282 + call void @printLine(ptr noundef @.str.4), !dbg !283 + ret i32 0, !dbg !284 } ; Function Attrs: nounwind @@ -254,68 +254,68 @@ declare void @srand(i32 noundef) #2 declare i64 @time(ptr noundef) #2 ; Function Attrs: noinline nounwind optnone uwtable -define internal void @goodG2B() #0 !dbg !282 { +define internal void @goodG2B() #0 !dbg !285 { entry: %data = alloca i32, align 4 %i = alloca i32, align 4 %buffer = alloca [10 x i32], align 16 - call void @llvm.dbg.declare(metadata ptr %data, metadata !283, metadata !DIExpression()), !dbg !284 - store i32 -1, ptr %data, align 4, !dbg !285 - store i32 7, ptr %data, align 4, !dbg !286 - call void @llvm.dbg.declare(metadata ptr %i, metadata !287, metadata !DIExpression()), !dbg !289 - call void @llvm.dbg.declare(metadata ptr %buffer, metadata !290, metadata !DIExpression()), !dbg !291 - call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !291 - %0 = load i32, ptr %data, align 4, !dbg !292 - %cmp = icmp sge i32 %0, 0, !dbg !294 - br i1 %cmp, label %if.then, label %if.else, !dbg !295 + call void @llvm.dbg.declare(metadata ptr %data, metadata !286, metadata !DIExpression()), !dbg !287 + store i32 -1, ptr %data, align 4, !dbg !288 + store i32 7, ptr %data, align 4, !dbg !289 + call void @llvm.dbg.declare(metadata ptr %i, metadata !290, metadata !DIExpression()), !dbg !292 + call void @llvm.dbg.declare(metadata ptr %buffer, metadata !293, metadata !DIExpression()), !dbg !294 + call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !294 + %0 = load i32, ptr %data, align 4, !dbg !295 + %cmp = icmp sge i32 %0, 0, !dbg !297 + br i1 %cmp, label %if.then, label %if.else, !dbg !298 if.then: ; preds = %entry - %arraydecay = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !296 - %1 = load i32, ptr %data, align 4, !dbg !298 - %conv = sext i32 %1 to i64, !dbg !298 - %mul = mul i64 %conv, 4, !dbg !299 - %call = call i32 (ptr, i64, i32, ...) @BOF_CHECK_GEP(ptr noundef %arraydecay, i64 noundef %mul, i32 noundef 0), !dbg !300 - %2 = load i32, ptr %data, align 4, !dbg !301 - %idxprom = sext i32 %2 to i64, !dbg !302 - %arrayidx = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom, !dbg !302 - store i32 1, ptr %arrayidx, align 4, !dbg !303 - store i32 0, ptr %i, align 4, !dbg !304 - br label %for.cond, !dbg !306 + %arraydecay = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !299 + %1 = load i32, ptr %data, align 4, !dbg !301 + %conv = sext i32 %1 to i64, !dbg !301 + %mul = mul i64 %conv, 4, !dbg !302 + %call = call i32 (ptr, i64, i32, ...) @BOF_CHECK_GEP(ptr noundef %arraydecay, i64 noundef %mul, i32 noundef 0), !dbg !303 + %2 = load i32, ptr %data, align 4, !dbg !304 + %idxprom = sext i32 %2 to i64, !dbg !305 + %arrayidx = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom, !dbg !305 + store i32 1, ptr %arrayidx, align 4, !dbg !306 + store i32 0, ptr %i, align 4, !dbg !307 + br label %for.cond, !dbg !309 for.cond: ; preds = %for.inc, %if.then - %3 = load i32, ptr %i, align 4, !dbg !307 - %cmp1 = icmp slt i32 %3, 10, !dbg !309 - br i1 %cmp1, label %for.body, label %for.end, !dbg !310 + %3 = load i32, ptr %i, align 4, !dbg !310 + %cmp1 = icmp slt i32 %3, 10, !dbg !312 + br i1 %cmp1, label %for.body, label %for.end, !dbg !313 for.body: ; preds = %for.cond - %4 = load i32, ptr %i, align 4, !dbg !311 - %idxprom3 = sext i32 %4 to i64, !dbg !313 - %arrayidx4 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom3, !dbg !313 - %5 = load i32, ptr %arrayidx4, align 4, !dbg !313 - call void @printIntLine(i32 noundef %5), !dbg !314 - br label %for.inc, !dbg !315 + %4 = load i32, ptr %i, align 4, !dbg !314 + %idxprom3 = sext i32 %4 to i64, !dbg !316 + %arrayidx4 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom3, !dbg !316 + %5 = load i32, ptr %arrayidx4, align 4, !dbg !316 + call void @printIntLine(i32 noundef %5), !dbg !317 + br label %for.inc, !dbg !318 for.inc: ; preds = %for.body - %6 = load i32, ptr %i, align 4, !dbg !316 - %inc = add nsw i32 %6, 1, !dbg !316 - store i32 %inc, ptr %i, align 4, !dbg !316 - br label %for.cond, !dbg !317, !llvm.loop !318 + %6 = load i32, ptr %i, align 4, !dbg !319 + %inc = add nsw i32 %6, 1, !dbg !319 + store i32 %inc, ptr %i, align 4, !dbg !319 + br label %for.cond, !dbg !320, !llvm.loop !321 for.end: ; preds = %for.cond - br label %if.end, !dbg !320 + br label %if.end, !dbg !323 if.else: ; preds = %entry - call void @printLine(ptr noundef @.str), !dbg !321 + call void @printLine(ptr noundef @.str), !dbg !324 br label %if.end if.end: ; preds = %if.else, %for.end - ret void, !dbg !323 + ret void, !dbg !326 } declare i32 @BOF_CHECK_GEP(...) #5 ; Function Attrs: noinline nounwind optnone uwtable -define internal void @goodB2G() #0 !dbg !324 { +define internal void @goodB2G() #0 !dbg !327 { entry: %data = alloca i32, align 4 %recvResult = alloca i32, align 4 @@ -325,162 +325,162 @@ entry: %inputBuffer = alloca [14 x i8], align 1 %i = alloca i32, align 4 %buffer = alloca [10 x i32], align 16 - call void @llvm.dbg.declare(metadata ptr %data, metadata !325, metadata !DIExpression()), !dbg !326 - store i32 -1, ptr %data, align 4, !dbg !327 - call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !328, metadata !DIExpression()), !dbg !330 - call void @llvm.dbg.declare(metadata ptr %service, metadata !331, metadata !DIExpression()), !dbg !332 - call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !333, metadata !DIExpression()), !dbg !334 - store i32 -1, ptr %listenSocket, align 4, !dbg !334 - call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !335, metadata !DIExpression()), !dbg !336 - store i32 -1, ptr %acceptSocket, align 4, !dbg !336 - call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !337, metadata !DIExpression()), !dbg !338 - br label %do.body, !dbg !339 + call void @llvm.dbg.declare(metadata ptr %data, metadata !328, metadata !DIExpression()), !dbg !329 + store i32 -1, ptr %data, align 4, !dbg !330 + call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !331, metadata !DIExpression()), !dbg !333 + call void @llvm.dbg.declare(metadata ptr %service, metadata !334, metadata !DIExpression()), !dbg !335 + call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !336, metadata !DIExpression()), !dbg !337 + store i32 -1, ptr %listenSocket, align 4, !dbg !337 + call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !338, metadata !DIExpression()), !dbg !339 + store i32 -1, ptr %acceptSocket, align 4, !dbg !339 + call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !340, metadata !DIExpression()), !dbg !341 + br label %do.body, !dbg !342 do.body: ; preds = %entry - %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !340 - store i32 %call, ptr %listenSocket, align 4, !dbg !342 - %0 = load i32, ptr %listenSocket, align 4, !dbg !343 - %cmp = icmp eq i32 %0, -1, !dbg !345 - br i1 %cmp, label %if.then, label %if.end, !dbg !346 + %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !343 + store i32 %call, ptr %listenSocket, align 4, !dbg !345 + %0 = load i32, ptr %listenSocket, align 4, !dbg !346 + %cmp = icmp eq i32 %0, -1, !dbg !348 + br i1 %cmp, label %if.then, label %if.end, !dbg !349 if.then: ; preds = %do.body - br label %do.end, !dbg !347 + br label %do.end, !dbg !350 if.end: ; preds = %do.body - call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !349 - %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !350 - store i16 2, ptr %sin_family, align 4, !dbg !351 - %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !352 - %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !353 - store i32 0, ptr %s_addr, align 4, !dbg !354 - %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !355 - %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !356 - store i16 %call1, ptr %sin_port, align 2, !dbg !357 - %1 = load i32, ptr %listenSocket, align 4, !dbg !358 - %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !360 - %cmp3 = icmp eq i32 %call2, -1, !dbg !361 - br i1 %cmp3, label %if.then4, label %if.end5, !dbg !362 + call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !352 + %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !353 + store i16 2, ptr %sin_family, align 4, !dbg !354 + %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !355 + %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !356 + store i32 0, ptr %s_addr, align 4, !dbg !357 + %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !358 + %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !359 + store i16 %call1, ptr %sin_port, align 2, !dbg !360 + %1 = load i32, ptr %listenSocket, align 4, !dbg !361 + %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !363 + %cmp3 = icmp eq i32 %call2, -1, !dbg !364 + br i1 %cmp3, label %if.then4, label %if.end5, !dbg !365 if.then4: ; preds = %if.end - br label %do.end, !dbg !363 + br label %do.end, !dbg !366 if.end5: ; preds = %if.end - %2 = load i32, ptr %listenSocket, align 4, !dbg !365 - %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !367 - %cmp7 = icmp eq i32 %call6, -1, !dbg !368 - br i1 %cmp7, label %if.then8, label %if.end9, !dbg !369 + %2 = load i32, ptr %listenSocket, align 4, !dbg !368 + %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !370 + %cmp7 = icmp eq i32 %call6, -1, !dbg !371 + br i1 %cmp7, label %if.then8, label %if.end9, !dbg !372 if.then8: ; preds = %if.end5 - br label %do.end, !dbg !370 + br label %do.end, !dbg !373 if.end9: ; preds = %if.end5 - %3 = load i32, ptr %listenSocket, align 4, !dbg !372 - %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !373 - store i32 %call10, ptr %acceptSocket, align 4, !dbg !374 - %4 = load i32, ptr %acceptSocket, align 4, !dbg !375 - %cmp11 = icmp eq i32 %4, -1, !dbg !377 - br i1 %cmp11, label %if.then12, label %if.end13, !dbg !378 + %3 = load i32, ptr %listenSocket, align 4, !dbg !375 + %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !376 + store i32 %call10, ptr %acceptSocket, align 4, !dbg !377 + %4 = load i32, ptr %acceptSocket, align 4, !dbg !378 + %cmp11 = icmp eq i32 %4, -1, !dbg !380 + br i1 %cmp11, label %if.then12, label %if.end13, !dbg !381 if.then12: ; preds = %if.end9 - br label %do.end, !dbg !379 + br label %do.end, !dbg !382 if.end13: ; preds = %if.end9 - %5 = load i32, ptr %acceptSocket, align 4, !dbg !381 - %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !382 - %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !383 - %conv = trunc i64 %call14 to i32, !dbg !383 - store i32 %conv, ptr %recvResult, align 4, !dbg !384 - %6 = load i32, ptr %recvResult, align 4, !dbg !385 - %cmp15 = icmp eq i32 %6, -1, !dbg !387 - br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !388 + %5 = load i32, ptr %acceptSocket, align 4, !dbg !384 + %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !385 + %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !386 + %conv = trunc i64 %call14 to i32, !dbg !386 + store i32 %conv, ptr %recvResult, align 4, !dbg !387 + %6 = load i32, ptr %recvResult, align 4, !dbg !388 + %cmp15 = icmp eq i32 %6, -1, !dbg !390 + br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !391 lor.lhs.false: ; preds = %if.end13 - %7 = load i32, ptr %recvResult, align 4, !dbg !389 - %cmp17 = icmp eq i32 %7, 0, !dbg !390 - br i1 %cmp17, label %if.then19, label %if.end20, !dbg !391 + %7 = load i32, ptr %recvResult, align 4, !dbg !392 + %cmp17 = icmp eq i32 %7, 0, !dbg !393 + br i1 %cmp17, label %if.then19, label %if.end20, !dbg !394 if.then19: ; preds = %lor.lhs.false, %if.end13 - br label %do.end, !dbg !392 + br label %do.end, !dbg !395 if.end20: ; preds = %lor.lhs.false - %8 = load i32, ptr %recvResult, align 4, !dbg !394 - %idxprom = sext i32 %8 to i64, !dbg !395 - %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !395 - store i8 0, ptr %arrayidx, align 1, !dbg !396 - %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !397 - %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !398 - store i32 %call22, ptr %data, align 4, !dbg !399 - br label %do.end, !dbg !400 + %8 = load i32, ptr %recvResult, align 4, !dbg !397 + %idxprom = sext i32 %8 to i64, !dbg !398 + %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !398 + store i8 0, ptr %arrayidx, align 1, !dbg !399 + %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !400 + %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !401 + store i32 %call22, ptr %data, align 4, !dbg !402 + br label %do.end, !dbg !403 do.end: ; preds = %if.end20, %if.then19, %if.then12, %if.then8, %if.then4, %if.then - %9 = load i32, ptr %listenSocket, align 4, !dbg !401 - %cmp23 = icmp ne i32 %9, -1, !dbg !403 - br i1 %cmp23, label %if.then25, label %if.end27, !dbg !404 + %9 = load i32, ptr %listenSocket, align 4, !dbg !404 + %cmp23 = icmp ne i32 %9, -1, !dbg !406 + br i1 %cmp23, label %if.then25, label %if.end27, !dbg !407 if.then25: ; preds = %do.end - %10 = load i32, ptr %listenSocket, align 4, !dbg !405 - %call26 = call i32 @close(i32 noundef %10), !dbg !407 - br label %if.end27, !dbg !408 + %10 = load i32, ptr %listenSocket, align 4, !dbg !408 + %call26 = call i32 @close(i32 noundef %10), !dbg !410 + br label %if.end27, !dbg !411 if.end27: ; preds = %if.then25, %do.end - %11 = load i32, ptr %acceptSocket, align 4, !dbg !409 - %cmp28 = icmp ne i32 %11, -1, !dbg !411 - br i1 %cmp28, label %if.then30, label %if.end32, !dbg !412 + %11 = load i32, ptr %acceptSocket, align 4, !dbg !412 + %cmp28 = icmp ne i32 %11, -1, !dbg !414 + br i1 %cmp28, label %if.then30, label %if.end32, !dbg !415 if.then30: ; preds = %if.end27 - %12 = load i32, ptr %acceptSocket, align 4, !dbg !413 - %call31 = call i32 @close(i32 noundef %12), !dbg !415 - br label %if.end32, !dbg !416 + %12 = load i32, ptr %acceptSocket, align 4, !dbg !416 + %call31 = call i32 @close(i32 noundef %12), !dbg !418 + br label %if.end32, !dbg !419 if.end32: ; preds = %if.then30, %if.end27 - call void @llvm.dbg.declare(metadata ptr %i, metadata !417, metadata !DIExpression()), !dbg !419 - call void @llvm.dbg.declare(metadata ptr %buffer, metadata !420, metadata !DIExpression()), !dbg !421 - call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !421 - %13 = load i32, ptr %data, align 4, !dbg !422 - %cmp33 = icmp sge i32 %13, 0, !dbg !424 - br i1 %cmp33, label %land.lhs.true, label %if.else, !dbg !425 + call void @llvm.dbg.declare(metadata ptr %i, metadata !420, metadata !DIExpression()), !dbg !422 + call void @llvm.dbg.declare(metadata ptr %buffer, metadata !423, metadata !DIExpression()), !dbg !424 + call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !424 + %13 = load i32, ptr %data, align 4, !dbg !425 + %cmp33 = icmp sge i32 %13, 0, !dbg !427 + br i1 %cmp33, label %land.lhs.true, label %if.else, !dbg !428 land.lhs.true: ; preds = %if.end32 - %14 = load i32, ptr %data, align 4, !dbg !426 - %cmp35 = icmp slt i32 %14, 10, !dbg !427 - br i1 %cmp35, label %if.then37, label %if.else, !dbg !428 + %14 = load i32, ptr %data, align 4, !dbg !429 + %cmp35 = icmp slt i32 %14, 10, !dbg !430 + br i1 %cmp35, label %if.then37, label %if.else, !dbg !431 if.then37: ; preds = %land.lhs.true - %15 = load i32, ptr %data, align 4, !dbg !429 - %idxprom38 = sext i32 %15 to i64, !dbg !431 - %arrayidx39 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom38, !dbg !431 - store i32 1, ptr %arrayidx39, align 4, !dbg !432 - store i32 0, ptr %i, align 4, !dbg !433 - br label %for.cond, !dbg !435 + %15 = load i32, ptr %data, align 4, !dbg !432 + %idxprom38 = sext i32 %15 to i64, !dbg !434 + %arrayidx39 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom38, !dbg !434 + store i32 1, ptr %arrayidx39, align 4, !dbg !435 + store i32 0, ptr %i, align 4, !dbg !436 + br label %for.cond, !dbg !438 for.cond: ; preds = %for.inc, %if.then37 - %16 = load i32, ptr %i, align 4, !dbg !436 - %cmp40 = icmp slt i32 %16, 10, !dbg !438 - br i1 %cmp40, label %for.body, label %for.end, !dbg !439 + %16 = load i32, ptr %i, align 4, !dbg !439 + %cmp40 = icmp slt i32 %16, 10, !dbg !441 + br i1 %cmp40, label %for.body, label %for.end, !dbg !442 for.body: ; preds = %for.cond - %17 = load i32, ptr %i, align 4, !dbg !440 - %idxprom42 = sext i32 %17 to i64, !dbg !442 - %arrayidx43 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom42, !dbg !442 - %18 = load i32, ptr %arrayidx43, align 4, !dbg !442 - call void @printIntLine(i32 noundef %18), !dbg !443 - br label %for.inc, !dbg !444 + %17 = load i32, ptr %i, align 4, !dbg !443 + %idxprom42 = sext i32 %17 to i64, !dbg !445 + %arrayidx43 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom42, !dbg !445 + %18 = load i32, ptr %arrayidx43, align 4, !dbg !445 + call void @printIntLine(i32 noundef %18), !dbg !446 + br label %for.inc, !dbg !447 for.inc: ; preds = %for.body - %19 = load i32, ptr %i, align 4, !dbg !445 - %inc = add nsw i32 %19, 1, !dbg !445 - store i32 %inc, ptr %i, align 4, !dbg !445 - br label %for.cond, !dbg !446, !llvm.loop !447 + %19 = load i32, ptr %i, align 4, !dbg !448 + %inc = add nsw i32 %19, 1, !dbg !448 + store i32 %inc, ptr %i, align 4, !dbg !448 + br label %for.cond, !dbg !449, !llvm.loop !450 for.end: ; preds = %for.cond - br label %if.end44, !dbg !449 + br label %if.end44, !dbg !452 if.else: ; preds = %land.lhs.true, %if.end32 - call void @printLine(ptr noundef @.str.5), !dbg !450 + call void @printLine(ptr noundef @.str.5), !dbg !453 br label %if.end44 if.end44: ; preds = %if.else, %for.end - ret void, !dbg !452 + ret void, !dbg !455 } attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -495,8 +495,8 @@ attributes #8 = { nounwind willreturn memory(none) } attributes #9 = { nounwind willreturn memory(read) } !llvm.dbg.cu = !{!32} -!llvm.module.flags = !{!96, !97, !98, !99, !100, !101, !102} -!llvm.ident = !{!103} +!llvm.module.flags = !{!99, !100, !101, !102, !103, !104, !105} +!llvm.ident = !{!106} !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 135, type: !3, isLocal: true, isDefinition: true) @@ -530,11 +530,11 @@ attributes #9 = { nounwind willreturn memory(read) } !29 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 288, elements: !30) !30 = !{!31} !31 = !DISubrange(count: 36) -!32 = distinct !DICompileUnit(language: DW_LANG_C11, file: !33, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !34, retainedTypes: !77, globals: !95, splitDebugInlining: false, nameTableKind: None) +!32 = distinct !DICompileUnit(language: DW_LANG_C11, file: !33, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !34, retainedTypes: !80, globals: !98, splitDebugInlining: false, nameTableKind: None) !33 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "bc6442840ca07fe15026cbc1fffe8fa0") !34 = !{!35, !48} !35 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "__socket_type", file: !36, line: 24, baseType: !37, size: 32, elements: !38) -!36 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket_type.h", directory: "", checksumkind: CSK_MD5, checksum: "630d972ab4324a8e936ce28b39a40b01") +!36 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket_type.h", directory: "", checksumkind: CSK_MD5, checksum: "5ca1da466a04f4b8f6d88ec84b75042e") !37 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) !38 = !{!39, !40, !41, !42, !43, !44, !45, !46, !47} !39 = !DIEnumerator(name: "SOCK_STREAM", value: 1) @@ -547,8 +547,8 @@ attributes #9 = { nounwind willreturn memory(read) } !46 = !DIEnumerator(name: "SOCK_CLOEXEC", value: 524288) !47 = !DIEnumerator(name: "SOCK_NONBLOCK", value: 2048) !48 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !49, line: 40, baseType: !37, size: 32, elements: !50) -!49 = !DIFile(filename: "/usr/include/netinet/in.h", directory: "", checksumkind: CSK_MD5, checksum: "6a5254a491bcdb8c3253de75bf3571c1") -!50 = !{!51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76} +!49 = !DIFile(filename: "/usr/include/netinet/in.h", directory: "", checksumkind: CSK_MD5, checksum: "fbd766480c8cb9a8fe07ee7aa568ee60") +!50 = !{!51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79} !51 = !DIEnumerator(name: "IPPROTO_IP", value: 0) !52 = !DIEnumerator(name: "IPPROTO_ICMP", value: 1) !53 = !DIEnumerator(name: "IPPROTO_IGMP", value: 2) @@ -570,384 +570,387 @@ attributes #9 = { nounwind willreturn memory(read) } !69 = !DIEnumerator(name: "IPPROTO_ENCAP", value: 98) !70 = !DIEnumerator(name: "IPPROTO_PIM", value: 103) !71 = !DIEnumerator(name: "IPPROTO_COMP", value: 108) -!72 = !DIEnumerator(name: "IPPROTO_SCTP", value: 132) -!73 = !DIEnumerator(name: "IPPROTO_UDPLITE", value: 136) -!74 = !DIEnumerator(name: "IPPROTO_MPLS", value: 137) -!75 = !DIEnumerator(name: "IPPROTO_RAW", value: 255) -!76 = !DIEnumerator(name: "IPPROTO_MAX", value: 256) -!77 = !{!78, !83, !37} -!78 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_addr_t", file: !49, line: 30, baseType: !79) -!79 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !80, line: 26, baseType: !81) -!80 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "d3ea318a915682aaf6645ec16ac9f991") -!81 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !82, line: 42, baseType: !37) -!82 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") -!83 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !84, size: 64) -!84 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr", file: !85, line: 178, size: 128, elements: !86) -!85 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket.h", directory: "", checksumkind: CSK_MD5, checksum: "b1d3343a573cbf39b225111209e02966") -!86 = !{!87, !91} -!87 = !DIDerivedType(tag: DW_TAG_member, name: "sa_family", scope: !84, file: !85, line: 180, baseType: !88, size: 16) -!88 = !DIDerivedType(tag: DW_TAG_typedef, name: "sa_family_t", file: !89, line: 28, baseType: !90) -!89 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/sockaddr.h", directory: "", checksumkind: CSK_MD5, checksum: "b70cbaf07ffb7e8bf11ee98d9a21e2fc") -!90 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned) -!91 = !DIDerivedType(tag: DW_TAG_member, name: "sa_data", scope: !84, file: !85, line: 181, baseType: !92, size: 112, offset: 16) -!92 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 112, elements: !93) -!93 = !{!94} -!94 = !DISubrange(count: 14) -!95 = !{!0, !7, !12, !17, !22, !27} -!96 = !{i32 7, !"Dwarf Version", i32 5} -!97 = !{i32 2, !"Debug Info Version", i32 3} -!98 = !{i32 1, !"wchar_size", i32 4} -!99 = !{i32 8, !"PIC Level", i32 2} -!100 = !{i32 7, !"PIE Level", i32 2} -!101 = !{i32 7, !"uwtable", i32 2} -!102 = !{i32 7, !"frame-pointer", i32 2} -!103 = !{!"clang version 16.0.0"} -!104 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad", scope: !2, file: !2, line: 44, type: !105, scopeLine: 45, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !107) -!105 = !DISubroutineType(types: !106) -!106 = !{null} -!107 = !{} -!108 = !DILocalVariable(name: "data", scope: !104, file: !2, line: 46, type: !109) -!109 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!110 = !DILocation(line: 46, column: 9, scope: !104) -!111 = !DILocation(line: 48, column: 10, scope: !104) -!112 = !DILocalVariable(name: "recvResult", scope: !113, file: !2, line: 54, type: !109) -!113 = distinct !DILexicalBlock(scope: !104, file: !2, line: 49, column: 5) -!114 = !DILocation(line: 54, column: 13, scope: !113) -!115 = !DILocalVariable(name: "service", scope: !113, file: !2, line: 55, type: !116) -!116 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr_in", file: !49, line: 238, size: 128, elements: !117) -!117 = !{!118, !119, !123, !127} -!118 = !DIDerivedType(tag: DW_TAG_member, name: "sin_family", scope: !116, file: !49, line: 240, baseType: !88, size: 16) -!119 = !DIDerivedType(tag: DW_TAG_member, name: "sin_port", scope: !116, file: !49, line: 241, baseType: !120, size: 16, offset: 16) -!120 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_port_t", file: !49, line: 119, baseType: !121) -!121 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint16_t", file: !80, line: 25, baseType: !122) -!122 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint16_t", file: !82, line: 40, baseType: !90) -!123 = !DIDerivedType(tag: DW_TAG_member, name: "sin_addr", scope: !116, file: !49, line: 242, baseType: !124, size: 32, offset: 32) -!124 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "in_addr", file: !49, line: 31, size: 32, elements: !125) -!125 = !{!126} -!126 = !DIDerivedType(tag: DW_TAG_member, name: "s_addr", scope: !124, file: !49, line: 33, baseType: !78, size: 32) -!127 = !DIDerivedType(tag: DW_TAG_member, name: "sin_zero", scope: !116, file: !49, line: 245, baseType: !128, size: 64, offset: 64) -!128 = !DICompositeType(tag: DW_TAG_array_type, baseType: !129, size: 64, elements: !130) -!129 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char) -!130 = !{!131} -!131 = !DISubrange(count: 8) -!132 = !DILocation(line: 55, column: 28, scope: !113) -!133 = !DILocalVariable(name: "listenSocket", scope: !113, file: !2, line: 56, type: !109) -!134 = !DILocation(line: 56, column: 16, scope: !113) -!135 = !DILocalVariable(name: "acceptSocket", scope: !113, file: !2, line: 57, type: !109) -!136 = !DILocation(line: 57, column: 16, scope: !113) -!137 = !DILocalVariable(name: "inputBuffer", scope: !113, file: !2, line: 58, type: !92) -!138 = !DILocation(line: 58, column: 14, scope: !113) -!139 = !DILocation(line: 59, column: 9, scope: !113) -!140 = !DILocation(line: 69, column: 28, scope: !141) -!141 = distinct !DILexicalBlock(scope: !113, file: !2, line: 60, column: 9) -!142 = !DILocation(line: 69, column: 26, scope: !141) -!143 = !DILocation(line: 70, column: 17, scope: !144) -!144 = distinct !DILexicalBlock(scope: !141, file: !2, line: 70, column: 17) -!145 = !DILocation(line: 70, column: 30, scope: !144) -!146 = !DILocation(line: 70, column: 17, scope: !141) -!147 = !DILocation(line: 72, column: 17, scope: !148) -!148 = distinct !DILexicalBlock(scope: !144, file: !2, line: 71, column: 13) -!149 = !DILocation(line: 74, column: 13, scope: !141) -!150 = !DILocation(line: 75, column: 21, scope: !141) -!151 = !DILocation(line: 75, column: 32, scope: !141) -!152 = !DILocation(line: 76, column: 21, scope: !141) -!153 = !DILocation(line: 76, column: 30, scope: !141) -!154 = !DILocation(line: 76, column: 37, scope: !141) -!155 = !DILocation(line: 77, column: 32, scope: !141) -!156 = !DILocation(line: 77, column: 21, scope: !141) -!157 = !DILocation(line: 77, column: 30, scope: !141) -!158 = !DILocation(line: 78, column: 22, scope: !159) -!159 = distinct !DILexicalBlock(scope: !141, file: !2, line: 78, column: 17) -!160 = !DILocation(line: 78, column: 17, scope: !159) -!161 = !DILocation(line: 78, column: 81, scope: !159) -!162 = !DILocation(line: 78, column: 17, scope: !141) -!163 = !DILocation(line: 80, column: 17, scope: !164) -!164 = distinct !DILexicalBlock(scope: !159, file: !2, line: 79, column: 13) -!165 = !DILocation(line: 82, column: 24, scope: !166) -!166 = distinct !DILexicalBlock(scope: !141, file: !2, line: 82, column: 17) -!167 = !DILocation(line: 82, column: 17, scope: !166) -!168 = !DILocation(line: 82, column: 54, scope: !166) -!169 = !DILocation(line: 82, column: 17, scope: !141) -!170 = !DILocation(line: 84, column: 17, scope: !171) -!171 = distinct !DILexicalBlock(scope: !166, file: !2, line: 83, column: 13) -!172 = !DILocation(line: 86, column: 35, scope: !141) -!173 = !DILocation(line: 86, column: 28, scope: !141) -!174 = !DILocation(line: 86, column: 26, scope: !141) -!175 = !DILocation(line: 87, column: 17, scope: !176) -!176 = distinct !DILexicalBlock(scope: !141, file: !2, line: 87, column: 17) -!177 = !DILocation(line: 87, column: 30, scope: !176) -!178 = !DILocation(line: 87, column: 17, scope: !141) -!179 = !DILocation(line: 89, column: 17, scope: !180) -!180 = distinct !DILexicalBlock(scope: !176, file: !2, line: 88, column: 13) -!181 = !DILocation(line: 92, column: 31, scope: !141) -!182 = !DILocation(line: 92, column: 45, scope: !141) -!183 = !DILocation(line: 92, column: 26, scope: !141) -!184 = !DILocation(line: 92, column: 24, scope: !141) -!185 = !DILocation(line: 93, column: 17, scope: !186) -!186 = distinct !DILexicalBlock(scope: !141, file: !2, line: 93, column: 17) -!187 = !DILocation(line: 93, column: 28, scope: !186) -!188 = !DILocation(line: 93, column: 44, scope: !186) -!189 = !DILocation(line: 93, column: 47, scope: !186) -!190 = !DILocation(line: 93, column: 58, scope: !186) -!191 = !DILocation(line: 93, column: 17, scope: !141) -!192 = !DILocation(line: 95, column: 17, scope: !193) -!193 = distinct !DILexicalBlock(scope: !186, file: !2, line: 94, column: 13) -!194 = !DILocation(line: 98, column: 25, scope: !141) -!195 = !DILocation(line: 98, column: 13, scope: !141) -!196 = !DILocation(line: 98, column: 37, scope: !141) -!197 = !DILocation(line: 100, column: 25, scope: !141) -!198 = !DILocation(line: 100, column: 20, scope: !141) -!199 = !DILocation(line: 100, column: 18, scope: !141) -!200 = !DILocation(line: 101, column: 9, scope: !141) -!201 = !DILocation(line: 103, column: 13, scope: !202) -!202 = distinct !DILexicalBlock(scope: !113, file: !2, line: 103, column: 13) -!203 = !DILocation(line: 103, column: 26, scope: !202) -!204 = !DILocation(line: 103, column: 13, scope: !113) -!205 = !DILocation(line: 105, column: 26, scope: !206) -!206 = distinct !DILexicalBlock(scope: !202, file: !2, line: 104, column: 9) -!207 = !DILocation(line: 105, column: 13, scope: !206) -!208 = !DILocation(line: 106, column: 9, scope: !206) -!209 = !DILocation(line: 107, column: 13, scope: !210) -!210 = distinct !DILexicalBlock(scope: !113, file: !2, line: 107, column: 13) -!211 = !DILocation(line: 107, column: 26, scope: !210) -!212 = !DILocation(line: 107, column: 13, scope: !113) -!213 = !DILocation(line: 109, column: 26, scope: !214) -!214 = distinct !DILexicalBlock(scope: !210, file: !2, line: 108, column: 9) -!215 = !DILocation(line: 109, column: 13, scope: !214) -!216 = !DILocation(line: 110, column: 9, scope: !214) -!217 = !DILocalVariable(name: "i", scope: !218, file: !2, line: 119, type: !109) -!218 = distinct !DILexicalBlock(scope: !104, file: !2, line: 118, column: 5) -!219 = !DILocation(line: 119, column: 13, scope: !218) -!220 = !DILocalVariable(name: "buffer", scope: !218, file: !2, line: 120, type: !221) -!221 = !DICompositeType(tag: DW_TAG_array_type, baseType: !109, size: 320, elements: !222) -!222 = !{!223} -!223 = !DISubrange(count: 10) -!224 = !DILocation(line: 120, column: 13, scope: !218) -!225 = !DILocation(line: 123, column: 13, scope: !226) -!226 = distinct !DILexicalBlock(scope: !218, file: !2, line: 123, column: 13) -!227 = !DILocation(line: 123, column: 18, scope: !226) -!228 = !DILocation(line: 123, column: 13, scope: !218) -!229 = !DILocation(line: 125, column: 20, scope: !230) -!230 = distinct !DILexicalBlock(scope: !226, file: !2, line: 124, column: 9) -!231 = !DILocation(line: 125, column: 13, scope: !230) -!232 = !DILocation(line: 125, column: 26, scope: !230) -!233 = !DILocation(line: 126, column: 30, scope: !230) -!234 = !DILocation(line: 126, column: 38, scope: !230) -!235 = !DILocation(line: 126, column: 43, scope: !230) -!236 = !DILocation(line: 126, column: 57, scope: !230) -!237 = !DILocation(line: 126, column: 13, scope: !230) -!238 = !DILocation(line: 128, column: 19, scope: !239) -!239 = distinct !DILexicalBlock(scope: !230, file: !2, line: 128, column: 13) -!240 = !DILocation(line: 128, column: 17, scope: !239) -!241 = !DILocation(line: 128, column: 24, scope: !242) -!242 = distinct !DILexicalBlock(scope: !239, file: !2, line: 128, column: 13) -!243 = !DILocation(line: 128, column: 26, scope: !242) -!244 = !DILocation(line: 128, column: 13, scope: !239) -!245 = !DILocation(line: 130, column: 37, scope: !246) -!246 = distinct !DILexicalBlock(scope: !242, file: !2, line: 129, column: 13) -!247 = !DILocation(line: 130, column: 30, scope: !246) -!248 = !DILocation(line: 130, column: 17, scope: !246) -!249 = !DILocation(line: 131, column: 13, scope: !246) -!250 = !DILocation(line: 128, column: 33, scope: !242) -!251 = !DILocation(line: 128, column: 13, scope: !242) -!252 = distinct !{!252, !244, !253, !254} -!253 = !DILocation(line: 131, column: 13, scope: !239) -!254 = !{!"llvm.loop.mustprogress"} -!255 = !DILocation(line: 132, column: 9, scope: !230) -!256 = !DILocation(line: 135, column: 13, scope: !257) -!257 = distinct !DILexicalBlock(scope: !226, file: !2, line: 134, column: 9) -!258 = !DILocation(line: 138, column: 1, scope: !104) -!259 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good", scope: !2, file: !2, line: 270, type: !105, scopeLine: 271, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !107) -!260 = !DILocation(line: 272, column: 5, scope: !259) -!261 = !DILocation(line: 273, column: 5, scope: !259) -!262 = !DILocation(line: 274, column: 1, scope: !259) -!263 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 285, type: !264, scopeLine: 286, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !107) -!264 = !DISubroutineType(types: !265) -!265 = !{!109, !109, !266} -!266 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !267, size: 64) -!267 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) -!268 = !DILocalVariable(name: "argc", arg: 1, scope: !263, file: !2, line: 285, type: !109) -!269 = !DILocation(line: 285, column: 14, scope: !263) -!270 = !DILocalVariable(name: "argv", arg: 2, scope: !263, file: !2, line: 285, type: !266) -!271 = !DILocation(line: 285, column: 27, scope: !263) -!272 = !DILocation(line: 288, column: 22, scope: !263) -!273 = !DILocation(line: 288, column: 12, scope: !263) -!274 = !DILocation(line: 288, column: 5, scope: !263) -!275 = !DILocation(line: 290, column: 5, scope: !263) -!276 = !DILocation(line: 291, column: 5, scope: !263) -!277 = !DILocation(line: 292, column: 5, scope: !263) -!278 = !DILocation(line: 295, column: 5, scope: !263) -!279 = !DILocation(line: 296, column: 5, scope: !263) -!280 = !DILocation(line: 297, column: 5, scope: !263) -!281 = !DILocation(line: 299, column: 5, scope: !263) -!282 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 145, type: !105, scopeLine: 146, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !107) -!283 = !DILocalVariable(name: "data", scope: !282, file: !2, line: 147, type: !109) -!284 = !DILocation(line: 147, column: 9, scope: !282) -!285 = !DILocation(line: 149, column: 10, scope: !282) -!286 = !DILocation(line: 152, column: 10, scope: !282) -!287 = !DILocalVariable(name: "i", scope: !288, file: !2, line: 154, type: !109) -!288 = distinct !DILexicalBlock(scope: !282, file: !2, line: 153, column: 5) -!289 = !DILocation(line: 154, column: 13, scope: !288) -!290 = !DILocalVariable(name: "buffer", scope: !288, file: !2, line: 155, type: !221) -!291 = !DILocation(line: 155, column: 13, scope: !288) -!292 = !DILocation(line: 158, column: 13, scope: !293) -!293 = distinct !DILexicalBlock(scope: !288, file: !2, line: 158, column: 13) -!294 = !DILocation(line: 158, column: 18, scope: !293) -!295 = !DILocation(line: 158, column: 13, scope: !288) -!296 = !DILocation(line: 160, column: 27, scope: !297) -!297 = distinct !DILexicalBlock(scope: !293, file: !2, line: 159, column: 9) -!298 = !DILocation(line: 160, column: 35, scope: !297) -!299 = !DILocation(line: 160, column: 40, scope: !297) -!300 = !DILocation(line: 160, column: 13, scope: !297) -!301 = !DILocation(line: 161, column: 20, scope: !297) -!302 = !DILocation(line: 161, column: 13, scope: !297) -!303 = !DILocation(line: 161, column: 26, scope: !297) -!304 = !DILocation(line: 163, column: 19, scope: !305) -!305 = distinct !DILexicalBlock(scope: !297, file: !2, line: 163, column: 13) -!306 = !DILocation(line: 163, column: 17, scope: !305) -!307 = !DILocation(line: 163, column: 24, scope: !308) -!308 = distinct !DILexicalBlock(scope: !305, file: !2, line: 163, column: 13) -!309 = !DILocation(line: 163, column: 26, scope: !308) -!310 = !DILocation(line: 163, column: 13, scope: !305) -!311 = !DILocation(line: 165, column: 37, scope: !312) -!312 = distinct !DILexicalBlock(scope: !308, file: !2, line: 164, column: 13) -!313 = !DILocation(line: 165, column: 30, scope: !312) -!314 = !DILocation(line: 165, column: 17, scope: !312) -!315 = !DILocation(line: 166, column: 13, scope: !312) -!316 = !DILocation(line: 163, column: 33, scope: !308) -!317 = !DILocation(line: 163, column: 13, scope: !308) -!318 = distinct !{!318, !310, !319, !254} -!319 = !DILocation(line: 166, column: 13, scope: !305) -!320 = !DILocation(line: 167, column: 9, scope: !297) -!321 = !DILocation(line: 170, column: 13, scope: !322) -!322 = distinct !DILexicalBlock(scope: !293, file: !2, line: 169, column: 9) -!323 = !DILocation(line: 173, column: 1, scope: !282) -!324 = distinct !DISubprogram(name: "goodB2G", scope: !2, file: !2, line: 176, type: !105, scopeLine: 177, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !107) -!325 = !DILocalVariable(name: "data", scope: !324, file: !2, line: 178, type: !109) -!326 = !DILocation(line: 178, column: 9, scope: !324) -!327 = !DILocation(line: 180, column: 10, scope: !324) -!328 = !DILocalVariable(name: "recvResult", scope: !329, file: !2, line: 186, type: !109) -!329 = distinct !DILexicalBlock(scope: !324, file: !2, line: 181, column: 5) -!330 = !DILocation(line: 186, column: 13, scope: !329) -!331 = !DILocalVariable(name: "service", scope: !329, file: !2, line: 187, type: !116) -!332 = !DILocation(line: 187, column: 28, scope: !329) -!333 = !DILocalVariable(name: "listenSocket", scope: !329, file: !2, line: 188, type: !109) -!334 = !DILocation(line: 188, column: 16, scope: !329) -!335 = !DILocalVariable(name: "acceptSocket", scope: !329, file: !2, line: 189, type: !109) -!336 = !DILocation(line: 189, column: 16, scope: !329) -!337 = !DILocalVariable(name: "inputBuffer", scope: !329, file: !2, line: 190, type: !92) -!338 = !DILocation(line: 190, column: 14, scope: !329) -!339 = !DILocation(line: 191, column: 9, scope: !329) -!340 = !DILocation(line: 201, column: 28, scope: !341) -!341 = distinct !DILexicalBlock(scope: !329, file: !2, line: 192, column: 9) -!342 = !DILocation(line: 201, column: 26, scope: !341) -!343 = !DILocation(line: 202, column: 17, scope: !344) -!344 = distinct !DILexicalBlock(scope: !341, file: !2, line: 202, column: 17) -!345 = !DILocation(line: 202, column: 30, scope: !344) -!346 = !DILocation(line: 202, column: 17, scope: !341) -!347 = !DILocation(line: 204, column: 17, scope: !348) -!348 = distinct !DILexicalBlock(scope: !344, file: !2, line: 203, column: 13) -!349 = !DILocation(line: 206, column: 13, scope: !341) -!350 = !DILocation(line: 207, column: 21, scope: !341) -!351 = !DILocation(line: 207, column: 32, scope: !341) -!352 = !DILocation(line: 208, column: 21, scope: !341) -!353 = !DILocation(line: 208, column: 30, scope: !341) -!354 = !DILocation(line: 208, column: 37, scope: !341) -!355 = !DILocation(line: 209, column: 32, scope: !341) -!356 = !DILocation(line: 209, column: 21, scope: !341) -!357 = !DILocation(line: 209, column: 30, scope: !341) -!358 = !DILocation(line: 210, column: 22, scope: !359) -!359 = distinct !DILexicalBlock(scope: !341, file: !2, line: 210, column: 17) -!360 = !DILocation(line: 210, column: 17, scope: !359) -!361 = !DILocation(line: 210, column: 81, scope: !359) -!362 = !DILocation(line: 210, column: 17, scope: !341) -!363 = !DILocation(line: 212, column: 17, scope: !364) -!364 = distinct !DILexicalBlock(scope: !359, file: !2, line: 211, column: 13) -!365 = !DILocation(line: 214, column: 24, scope: !366) -!366 = distinct !DILexicalBlock(scope: !341, file: !2, line: 214, column: 17) -!367 = !DILocation(line: 214, column: 17, scope: !366) -!368 = !DILocation(line: 214, column: 54, scope: !366) -!369 = !DILocation(line: 214, column: 17, scope: !341) -!370 = !DILocation(line: 216, column: 17, scope: !371) -!371 = distinct !DILexicalBlock(scope: !366, file: !2, line: 215, column: 13) -!372 = !DILocation(line: 218, column: 35, scope: !341) -!373 = !DILocation(line: 218, column: 28, scope: !341) -!374 = !DILocation(line: 218, column: 26, scope: !341) -!375 = !DILocation(line: 219, column: 17, scope: !376) -!376 = distinct !DILexicalBlock(scope: !341, file: !2, line: 219, column: 17) -!377 = !DILocation(line: 219, column: 30, scope: !376) -!378 = !DILocation(line: 219, column: 17, scope: !341) -!379 = !DILocation(line: 221, column: 17, scope: !380) -!380 = distinct !DILexicalBlock(scope: !376, file: !2, line: 220, column: 13) -!381 = !DILocation(line: 224, column: 31, scope: !341) -!382 = !DILocation(line: 224, column: 45, scope: !341) -!383 = !DILocation(line: 224, column: 26, scope: !341) -!384 = !DILocation(line: 224, column: 24, scope: !341) -!385 = !DILocation(line: 225, column: 17, scope: !386) -!386 = distinct !DILexicalBlock(scope: !341, file: !2, line: 225, column: 17) -!387 = !DILocation(line: 225, column: 28, scope: !386) -!388 = !DILocation(line: 225, column: 44, scope: !386) -!389 = !DILocation(line: 225, column: 47, scope: !386) -!390 = !DILocation(line: 225, column: 58, scope: !386) -!391 = !DILocation(line: 225, column: 17, scope: !341) -!392 = !DILocation(line: 227, column: 17, scope: !393) -!393 = distinct !DILexicalBlock(scope: !386, file: !2, line: 226, column: 13) -!394 = !DILocation(line: 230, column: 25, scope: !341) -!395 = !DILocation(line: 230, column: 13, scope: !341) -!396 = !DILocation(line: 230, column: 37, scope: !341) -!397 = !DILocation(line: 232, column: 25, scope: !341) -!398 = !DILocation(line: 232, column: 20, scope: !341) -!399 = !DILocation(line: 232, column: 18, scope: !341) -!400 = !DILocation(line: 233, column: 9, scope: !341) -!401 = !DILocation(line: 235, column: 13, scope: !402) -!402 = distinct !DILexicalBlock(scope: !329, file: !2, line: 235, column: 13) -!403 = !DILocation(line: 235, column: 26, scope: !402) -!404 = !DILocation(line: 235, column: 13, scope: !329) -!405 = !DILocation(line: 237, column: 26, scope: !406) -!406 = distinct !DILexicalBlock(scope: !402, file: !2, line: 236, column: 9) -!407 = !DILocation(line: 237, column: 13, scope: !406) -!408 = !DILocation(line: 238, column: 9, scope: !406) -!409 = !DILocation(line: 239, column: 13, scope: !410) -!410 = distinct !DILexicalBlock(scope: !329, file: !2, line: 239, column: 13) -!411 = !DILocation(line: 239, column: 26, scope: !410) -!412 = !DILocation(line: 239, column: 13, scope: !329) -!413 = !DILocation(line: 241, column: 26, scope: !414) -!414 = distinct !DILexicalBlock(scope: !410, file: !2, line: 240, column: 9) -!415 = !DILocation(line: 241, column: 13, scope: !414) -!416 = !DILocation(line: 242, column: 9, scope: !414) -!417 = !DILocalVariable(name: "i", scope: !418, file: !2, line: 251, type: !109) -!418 = distinct !DILexicalBlock(scope: !324, file: !2, line: 250, column: 5) -!419 = !DILocation(line: 251, column: 13, scope: !418) -!420 = !DILocalVariable(name: "buffer", scope: !418, file: !2, line: 252, type: !221) -!421 = !DILocation(line: 252, column: 13, scope: !418) -!422 = !DILocation(line: 254, column: 13, scope: !423) -!423 = distinct !DILexicalBlock(scope: !418, file: !2, line: 254, column: 13) -!424 = !DILocation(line: 254, column: 18, scope: !423) -!425 = !DILocation(line: 254, column: 23, scope: !423) -!426 = !DILocation(line: 254, column: 26, scope: !423) -!427 = !DILocation(line: 254, column: 31, scope: !423) -!428 = !DILocation(line: 254, column: 13, scope: !418) -!429 = !DILocation(line: 256, column: 20, scope: !430) -!430 = distinct !DILexicalBlock(scope: !423, file: !2, line: 255, column: 9) -!431 = !DILocation(line: 256, column: 13, scope: !430) -!432 = !DILocation(line: 256, column: 26, scope: !430) -!433 = !DILocation(line: 258, column: 19, scope: !434) -!434 = distinct !DILexicalBlock(scope: !430, file: !2, line: 258, column: 13) -!435 = !DILocation(line: 258, column: 17, scope: !434) -!436 = !DILocation(line: 258, column: 24, scope: !437) -!437 = distinct !DILexicalBlock(scope: !434, file: !2, line: 258, column: 13) -!438 = !DILocation(line: 258, column: 26, scope: !437) -!439 = !DILocation(line: 258, column: 13, scope: !434) -!440 = !DILocation(line: 260, column: 37, scope: !441) -!441 = distinct !DILexicalBlock(scope: !437, file: !2, line: 259, column: 13) -!442 = !DILocation(line: 260, column: 30, scope: !441) -!443 = !DILocation(line: 260, column: 17, scope: !441) -!444 = !DILocation(line: 261, column: 13, scope: !441) -!445 = !DILocation(line: 258, column: 33, scope: !437) -!446 = !DILocation(line: 258, column: 13, scope: !437) -!447 = distinct !{!447, !439, !448, !254} -!448 = !DILocation(line: 261, column: 13, scope: !434) -!449 = !DILocation(line: 262, column: 9, scope: !430) -!450 = !DILocation(line: 265, column: 13, scope: !451) -!451 = distinct !DILexicalBlock(scope: !423, file: !2, line: 264, column: 9) -!452 = !DILocation(line: 268, column: 1, scope: !324) +!72 = !DIEnumerator(name: "IPPROTO_L2TP", value: 115) +!73 = !DIEnumerator(name: "IPPROTO_SCTP", value: 132) +!74 = !DIEnumerator(name: "IPPROTO_UDPLITE", value: 136) +!75 = !DIEnumerator(name: "IPPROTO_MPLS", value: 137) +!76 = !DIEnumerator(name: "IPPROTO_ETHERNET", value: 143) +!77 = !DIEnumerator(name: "IPPROTO_RAW", value: 255) +!78 = !DIEnumerator(name: "IPPROTO_MPTCP", value: 262) +!79 = !DIEnumerator(name: "IPPROTO_MAX", value: 263) +!80 = !{!81, !86, !37} +!81 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_addr_t", file: !49, line: 30, baseType: !82) +!82 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !83, line: 26, baseType: !84) +!83 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "256fcabbefa27ca8cf5e6d37525e6e16") +!84 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !85, line: 42, baseType: !37) +!85 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") +!86 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !87, size: 64) +!87 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr", file: !88, line: 183, size: 128, elements: !89) +!88 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket.h", directory: "", checksumkind: CSK_MD5, checksum: "71a09f67661e8e55cf505c19b5ddbb85") +!89 = !{!90, !94} +!90 = !DIDerivedType(tag: DW_TAG_member, name: "sa_family", scope: !87, file: !88, line: 185, baseType: !91, size: 16) +!91 = !DIDerivedType(tag: DW_TAG_typedef, name: "sa_family_t", file: !92, line: 28, baseType: !93) +!92 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/sockaddr.h", directory: "", checksumkind: CSK_MD5, checksum: "5066b774f0f3cdb5cbbb5467306060db") +!93 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned) +!94 = !DIDerivedType(tag: DW_TAG_member, name: "sa_data", scope: !87, file: !88, line: 186, baseType: !95, size: 112, offset: 16) +!95 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 112, elements: !96) +!96 = !{!97} +!97 = !DISubrange(count: 14) +!98 = !{!0, !7, !12, !17, !22, !27} +!99 = !{i32 7, !"Dwarf Version", i32 5} +!100 = !{i32 2, !"Debug Info Version", i32 3} +!101 = !{i32 1, !"wchar_size", i32 4} +!102 = !{i32 8, !"PIC Level", i32 2} +!103 = !{i32 7, !"PIE Level", i32 2} +!104 = !{i32 7, !"uwtable", i32 2} +!105 = !{i32 7, !"frame-pointer", i32 2} +!106 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!107 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_bad", scope: !2, file: !2, line: 44, type: !108, scopeLine: 45, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !110) +!108 = !DISubroutineType(types: !109) +!109 = !{null} +!110 = !{} +!111 = !DILocalVariable(name: "data", scope: !107, file: !2, line: 46, type: !112) +!112 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!113 = !DILocation(line: 46, column: 9, scope: !107) +!114 = !DILocation(line: 48, column: 10, scope: !107) +!115 = !DILocalVariable(name: "recvResult", scope: !116, file: !2, line: 54, type: !112) +!116 = distinct !DILexicalBlock(scope: !107, file: !2, line: 49, column: 5) +!117 = !DILocation(line: 54, column: 13, scope: !116) +!118 = !DILocalVariable(name: "service", scope: !116, file: !2, line: 55, type: !119) +!119 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr_in", file: !49, line: 247, size: 128, elements: !120) +!120 = !{!121, !122, !126, !130} +!121 = !DIDerivedType(tag: DW_TAG_member, name: "sin_family", scope: !119, file: !49, line: 249, baseType: !91, size: 16) +!122 = !DIDerivedType(tag: DW_TAG_member, name: "sin_port", scope: !119, file: !49, line: 250, baseType: !123, size: 16, offset: 16) +!123 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_port_t", file: !49, line: 125, baseType: !124) +!124 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint16_t", file: !83, line: 25, baseType: !125) +!125 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint16_t", file: !85, line: 40, baseType: !93) +!126 = !DIDerivedType(tag: DW_TAG_member, name: "sin_addr", scope: !119, file: !49, line: 251, baseType: !127, size: 32, offset: 32) +!127 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "in_addr", file: !49, line: 31, size: 32, elements: !128) +!128 = !{!129} +!129 = !DIDerivedType(tag: DW_TAG_member, name: "s_addr", scope: !127, file: !49, line: 33, baseType: !81, size: 32) +!130 = !DIDerivedType(tag: DW_TAG_member, name: "sin_zero", scope: !119, file: !49, line: 254, baseType: !131, size: 64, offset: 64) +!131 = !DICompositeType(tag: DW_TAG_array_type, baseType: !132, size: 64, elements: !133) +!132 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char) +!133 = !{!134} +!134 = !DISubrange(count: 8) +!135 = !DILocation(line: 55, column: 28, scope: !116) +!136 = !DILocalVariable(name: "listenSocket", scope: !116, file: !2, line: 56, type: !112) +!137 = !DILocation(line: 56, column: 16, scope: !116) +!138 = !DILocalVariable(name: "acceptSocket", scope: !116, file: !2, line: 57, type: !112) +!139 = !DILocation(line: 57, column: 16, scope: !116) +!140 = !DILocalVariable(name: "inputBuffer", scope: !116, file: !2, line: 58, type: !95) +!141 = !DILocation(line: 58, column: 14, scope: !116) +!142 = !DILocation(line: 59, column: 9, scope: !116) +!143 = !DILocation(line: 69, column: 28, scope: !144) +!144 = distinct !DILexicalBlock(scope: !116, file: !2, line: 60, column: 9) +!145 = !DILocation(line: 69, column: 26, scope: !144) +!146 = !DILocation(line: 70, column: 17, scope: !147) +!147 = distinct !DILexicalBlock(scope: !144, file: !2, line: 70, column: 17) +!148 = !DILocation(line: 70, column: 30, scope: !147) +!149 = !DILocation(line: 70, column: 17, scope: !144) +!150 = !DILocation(line: 72, column: 17, scope: !151) +!151 = distinct !DILexicalBlock(scope: !147, file: !2, line: 71, column: 13) +!152 = !DILocation(line: 74, column: 13, scope: !144) +!153 = !DILocation(line: 75, column: 21, scope: !144) +!154 = !DILocation(line: 75, column: 32, scope: !144) +!155 = !DILocation(line: 76, column: 21, scope: !144) +!156 = !DILocation(line: 76, column: 30, scope: !144) +!157 = !DILocation(line: 76, column: 37, scope: !144) +!158 = !DILocation(line: 77, column: 32, scope: !144) +!159 = !DILocation(line: 77, column: 21, scope: !144) +!160 = !DILocation(line: 77, column: 30, scope: !144) +!161 = !DILocation(line: 78, column: 22, scope: !162) +!162 = distinct !DILexicalBlock(scope: !144, file: !2, line: 78, column: 17) +!163 = !DILocation(line: 78, column: 17, scope: !162) +!164 = !DILocation(line: 78, column: 81, scope: !162) +!165 = !DILocation(line: 78, column: 17, scope: !144) +!166 = !DILocation(line: 80, column: 17, scope: !167) +!167 = distinct !DILexicalBlock(scope: !162, file: !2, line: 79, column: 13) +!168 = !DILocation(line: 82, column: 24, scope: !169) +!169 = distinct !DILexicalBlock(scope: !144, file: !2, line: 82, column: 17) +!170 = !DILocation(line: 82, column: 17, scope: !169) +!171 = !DILocation(line: 82, column: 54, scope: !169) +!172 = !DILocation(line: 82, column: 17, scope: !144) +!173 = !DILocation(line: 84, column: 17, scope: !174) +!174 = distinct !DILexicalBlock(scope: !169, file: !2, line: 83, column: 13) +!175 = !DILocation(line: 86, column: 35, scope: !144) +!176 = !DILocation(line: 86, column: 28, scope: !144) +!177 = !DILocation(line: 86, column: 26, scope: !144) +!178 = !DILocation(line: 87, column: 17, scope: !179) +!179 = distinct !DILexicalBlock(scope: !144, file: !2, line: 87, column: 17) +!180 = !DILocation(line: 87, column: 30, scope: !179) +!181 = !DILocation(line: 87, column: 17, scope: !144) +!182 = !DILocation(line: 89, column: 17, scope: !183) +!183 = distinct !DILexicalBlock(scope: !179, file: !2, line: 88, column: 13) +!184 = !DILocation(line: 92, column: 31, scope: !144) +!185 = !DILocation(line: 92, column: 45, scope: !144) +!186 = !DILocation(line: 92, column: 26, scope: !144) +!187 = !DILocation(line: 92, column: 24, scope: !144) +!188 = !DILocation(line: 93, column: 17, scope: !189) +!189 = distinct !DILexicalBlock(scope: !144, file: !2, line: 93, column: 17) +!190 = !DILocation(line: 93, column: 28, scope: !189) +!191 = !DILocation(line: 93, column: 44, scope: !189) +!192 = !DILocation(line: 93, column: 47, scope: !189) +!193 = !DILocation(line: 93, column: 58, scope: !189) +!194 = !DILocation(line: 93, column: 17, scope: !144) +!195 = !DILocation(line: 95, column: 17, scope: !196) +!196 = distinct !DILexicalBlock(scope: !189, file: !2, line: 94, column: 13) +!197 = !DILocation(line: 98, column: 25, scope: !144) +!198 = !DILocation(line: 98, column: 13, scope: !144) +!199 = !DILocation(line: 98, column: 37, scope: !144) +!200 = !DILocation(line: 100, column: 25, scope: !144) +!201 = !DILocation(line: 100, column: 20, scope: !144) +!202 = !DILocation(line: 100, column: 18, scope: !144) +!203 = !DILocation(line: 101, column: 9, scope: !144) +!204 = !DILocation(line: 103, column: 13, scope: !205) +!205 = distinct !DILexicalBlock(scope: !116, file: !2, line: 103, column: 13) +!206 = !DILocation(line: 103, column: 26, scope: !205) +!207 = !DILocation(line: 103, column: 13, scope: !116) +!208 = !DILocation(line: 105, column: 26, scope: !209) +!209 = distinct !DILexicalBlock(scope: !205, file: !2, line: 104, column: 9) +!210 = !DILocation(line: 105, column: 13, scope: !209) +!211 = !DILocation(line: 106, column: 9, scope: !209) +!212 = !DILocation(line: 107, column: 13, scope: !213) +!213 = distinct !DILexicalBlock(scope: !116, file: !2, line: 107, column: 13) +!214 = !DILocation(line: 107, column: 26, scope: !213) +!215 = !DILocation(line: 107, column: 13, scope: !116) +!216 = !DILocation(line: 109, column: 26, scope: !217) +!217 = distinct !DILexicalBlock(scope: !213, file: !2, line: 108, column: 9) +!218 = !DILocation(line: 109, column: 13, scope: !217) +!219 = !DILocation(line: 110, column: 9, scope: !217) +!220 = !DILocalVariable(name: "i", scope: !221, file: !2, line: 119, type: !112) +!221 = distinct !DILexicalBlock(scope: !107, file: !2, line: 118, column: 5) +!222 = !DILocation(line: 119, column: 13, scope: !221) +!223 = !DILocalVariable(name: "buffer", scope: !221, file: !2, line: 120, type: !224) +!224 = !DICompositeType(tag: DW_TAG_array_type, baseType: !112, size: 320, elements: !225) +!225 = !{!226} +!226 = !DISubrange(count: 10) +!227 = !DILocation(line: 120, column: 13, scope: !221) +!228 = !DILocation(line: 123, column: 13, scope: !229) +!229 = distinct !DILexicalBlock(scope: !221, file: !2, line: 123, column: 13) +!230 = !DILocation(line: 123, column: 18, scope: !229) +!231 = !DILocation(line: 123, column: 13, scope: !221) +!232 = !DILocation(line: 125, column: 20, scope: !233) +!233 = distinct !DILexicalBlock(scope: !229, file: !2, line: 124, column: 9) +!234 = !DILocation(line: 125, column: 13, scope: !233) +!235 = !DILocation(line: 125, column: 26, scope: !233) +!236 = !DILocation(line: 126, column: 30, scope: !233) +!237 = !DILocation(line: 126, column: 38, scope: !233) +!238 = !DILocation(line: 126, column: 43, scope: !233) +!239 = !DILocation(line: 126, column: 57, scope: !233) +!240 = !DILocation(line: 126, column: 13, scope: !233) +!241 = !DILocation(line: 128, column: 19, scope: !242) +!242 = distinct !DILexicalBlock(scope: !233, file: !2, line: 128, column: 13) +!243 = !DILocation(line: 128, column: 17, scope: !242) +!244 = !DILocation(line: 128, column: 24, scope: !245) +!245 = distinct !DILexicalBlock(scope: !242, file: !2, line: 128, column: 13) +!246 = !DILocation(line: 128, column: 26, scope: !245) +!247 = !DILocation(line: 128, column: 13, scope: !242) +!248 = !DILocation(line: 130, column: 37, scope: !249) +!249 = distinct !DILexicalBlock(scope: !245, file: !2, line: 129, column: 13) +!250 = !DILocation(line: 130, column: 30, scope: !249) +!251 = !DILocation(line: 130, column: 17, scope: !249) +!252 = !DILocation(line: 131, column: 13, scope: !249) +!253 = !DILocation(line: 128, column: 33, scope: !245) +!254 = !DILocation(line: 128, column: 13, scope: !245) +!255 = distinct !{!255, !247, !256, !257} +!256 = !DILocation(line: 131, column: 13, scope: !242) +!257 = !{!"llvm.loop.mustprogress"} +!258 = !DILocation(line: 132, column: 9, scope: !233) +!259 = !DILocation(line: 135, column: 13, scope: !260) +!260 = distinct !DILexicalBlock(scope: !229, file: !2, line: 134, column: 9) +!261 = !DILocation(line: 138, column: 1, scope: !107) +!262 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE129_listen_socket_01_good", scope: !2, file: !2, line: 270, type: !108, scopeLine: 271, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !110) +!263 = !DILocation(line: 272, column: 5, scope: !262) +!264 = !DILocation(line: 273, column: 5, scope: !262) +!265 = !DILocation(line: 274, column: 1, scope: !262) +!266 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 285, type: !267, scopeLine: 286, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !110) +!267 = !DISubroutineType(types: !268) +!268 = !{!112, !112, !269} +!269 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !270, size: 64) +!270 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!271 = !DILocalVariable(name: "argc", arg: 1, scope: !266, file: !2, line: 285, type: !112) +!272 = !DILocation(line: 285, column: 14, scope: !266) +!273 = !DILocalVariable(name: "argv", arg: 2, scope: !266, file: !2, line: 285, type: !269) +!274 = !DILocation(line: 285, column: 27, scope: !266) +!275 = !DILocation(line: 288, column: 22, scope: !266) +!276 = !DILocation(line: 288, column: 12, scope: !266) +!277 = !DILocation(line: 288, column: 5, scope: !266) +!278 = !DILocation(line: 290, column: 5, scope: !266) +!279 = !DILocation(line: 291, column: 5, scope: !266) +!280 = !DILocation(line: 292, column: 5, scope: !266) +!281 = !DILocation(line: 295, column: 5, scope: !266) +!282 = !DILocation(line: 296, column: 5, scope: !266) +!283 = !DILocation(line: 297, column: 5, scope: !266) +!284 = !DILocation(line: 299, column: 5, scope: !266) +!285 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 145, type: !108, scopeLine: 146, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !110) +!286 = !DILocalVariable(name: "data", scope: !285, file: !2, line: 147, type: !112) +!287 = !DILocation(line: 147, column: 9, scope: !285) +!288 = !DILocation(line: 149, column: 10, scope: !285) +!289 = !DILocation(line: 152, column: 10, scope: !285) +!290 = !DILocalVariable(name: "i", scope: !291, file: !2, line: 154, type: !112) +!291 = distinct !DILexicalBlock(scope: !285, file: !2, line: 153, column: 5) +!292 = !DILocation(line: 154, column: 13, scope: !291) +!293 = !DILocalVariable(name: "buffer", scope: !291, file: !2, line: 155, type: !224) +!294 = !DILocation(line: 155, column: 13, scope: !291) +!295 = !DILocation(line: 158, column: 13, scope: !296) +!296 = distinct !DILexicalBlock(scope: !291, file: !2, line: 158, column: 13) +!297 = !DILocation(line: 158, column: 18, scope: !296) +!298 = !DILocation(line: 158, column: 13, scope: !291) +!299 = !DILocation(line: 160, column: 27, scope: !300) +!300 = distinct !DILexicalBlock(scope: !296, file: !2, line: 159, column: 9) +!301 = !DILocation(line: 160, column: 35, scope: !300) +!302 = !DILocation(line: 160, column: 40, scope: !300) +!303 = !DILocation(line: 160, column: 13, scope: !300) +!304 = !DILocation(line: 161, column: 20, scope: !300) +!305 = !DILocation(line: 161, column: 13, scope: !300) +!306 = !DILocation(line: 161, column: 26, scope: !300) +!307 = !DILocation(line: 163, column: 19, scope: !308) +!308 = distinct !DILexicalBlock(scope: !300, file: !2, line: 163, column: 13) +!309 = !DILocation(line: 163, column: 17, scope: !308) +!310 = !DILocation(line: 163, column: 24, scope: !311) +!311 = distinct !DILexicalBlock(scope: !308, file: !2, line: 163, column: 13) +!312 = !DILocation(line: 163, column: 26, scope: !311) +!313 = !DILocation(line: 163, column: 13, scope: !308) +!314 = !DILocation(line: 165, column: 37, scope: !315) +!315 = distinct !DILexicalBlock(scope: !311, file: !2, line: 164, column: 13) +!316 = !DILocation(line: 165, column: 30, scope: !315) +!317 = !DILocation(line: 165, column: 17, scope: !315) +!318 = !DILocation(line: 166, column: 13, scope: !315) +!319 = !DILocation(line: 163, column: 33, scope: !311) +!320 = !DILocation(line: 163, column: 13, scope: !311) +!321 = distinct !{!321, !313, !322, !257} +!322 = !DILocation(line: 166, column: 13, scope: !308) +!323 = !DILocation(line: 167, column: 9, scope: !300) +!324 = !DILocation(line: 170, column: 13, scope: !325) +!325 = distinct !DILexicalBlock(scope: !296, file: !2, line: 169, column: 9) +!326 = !DILocation(line: 173, column: 1, scope: !285) +!327 = distinct !DISubprogram(name: "goodB2G", scope: !2, file: !2, line: 176, type: !108, scopeLine: 177, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !110) +!328 = !DILocalVariable(name: "data", scope: !327, file: !2, line: 178, type: !112) +!329 = !DILocation(line: 178, column: 9, scope: !327) +!330 = !DILocation(line: 180, column: 10, scope: !327) +!331 = !DILocalVariable(name: "recvResult", scope: !332, file: !2, line: 186, type: !112) +!332 = distinct !DILexicalBlock(scope: !327, file: !2, line: 181, column: 5) +!333 = !DILocation(line: 186, column: 13, scope: !332) +!334 = !DILocalVariable(name: "service", scope: !332, file: !2, line: 187, type: !119) +!335 = !DILocation(line: 187, column: 28, scope: !332) +!336 = !DILocalVariable(name: "listenSocket", scope: !332, file: !2, line: 188, type: !112) +!337 = !DILocation(line: 188, column: 16, scope: !332) +!338 = !DILocalVariable(name: "acceptSocket", scope: !332, file: !2, line: 189, type: !112) +!339 = !DILocation(line: 189, column: 16, scope: !332) +!340 = !DILocalVariable(name: "inputBuffer", scope: !332, file: !2, line: 190, type: !95) +!341 = !DILocation(line: 190, column: 14, scope: !332) +!342 = !DILocation(line: 191, column: 9, scope: !332) +!343 = !DILocation(line: 201, column: 28, scope: !344) +!344 = distinct !DILexicalBlock(scope: !332, file: !2, line: 192, column: 9) +!345 = !DILocation(line: 201, column: 26, scope: !344) +!346 = !DILocation(line: 202, column: 17, scope: !347) +!347 = distinct !DILexicalBlock(scope: !344, file: !2, line: 202, column: 17) +!348 = !DILocation(line: 202, column: 30, scope: !347) +!349 = !DILocation(line: 202, column: 17, scope: !344) +!350 = !DILocation(line: 204, column: 17, scope: !351) +!351 = distinct !DILexicalBlock(scope: !347, file: !2, line: 203, column: 13) +!352 = !DILocation(line: 206, column: 13, scope: !344) +!353 = !DILocation(line: 207, column: 21, scope: !344) +!354 = !DILocation(line: 207, column: 32, scope: !344) +!355 = !DILocation(line: 208, column: 21, scope: !344) +!356 = !DILocation(line: 208, column: 30, scope: !344) +!357 = !DILocation(line: 208, column: 37, scope: !344) +!358 = !DILocation(line: 209, column: 32, scope: !344) +!359 = !DILocation(line: 209, column: 21, scope: !344) +!360 = !DILocation(line: 209, column: 30, scope: !344) +!361 = !DILocation(line: 210, column: 22, scope: !362) +!362 = distinct !DILexicalBlock(scope: !344, file: !2, line: 210, column: 17) +!363 = !DILocation(line: 210, column: 17, scope: !362) +!364 = !DILocation(line: 210, column: 81, scope: !362) +!365 = !DILocation(line: 210, column: 17, scope: !344) +!366 = !DILocation(line: 212, column: 17, scope: !367) +!367 = distinct !DILexicalBlock(scope: !362, file: !2, line: 211, column: 13) +!368 = !DILocation(line: 214, column: 24, scope: !369) +!369 = distinct !DILexicalBlock(scope: !344, file: !2, line: 214, column: 17) +!370 = !DILocation(line: 214, column: 17, scope: !369) +!371 = !DILocation(line: 214, column: 54, scope: !369) +!372 = !DILocation(line: 214, column: 17, scope: !344) +!373 = !DILocation(line: 216, column: 17, scope: !374) +!374 = distinct !DILexicalBlock(scope: !369, file: !2, line: 215, column: 13) +!375 = !DILocation(line: 218, column: 35, scope: !344) +!376 = !DILocation(line: 218, column: 28, scope: !344) +!377 = !DILocation(line: 218, column: 26, scope: !344) +!378 = !DILocation(line: 219, column: 17, scope: !379) +!379 = distinct !DILexicalBlock(scope: !344, file: !2, line: 219, column: 17) +!380 = !DILocation(line: 219, column: 30, scope: !379) +!381 = !DILocation(line: 219, column: 17, scope: !344) +!382 = !DILocation(line: 221, column: 17, scope: !383) +!383 = distinct !DILexicalBlock(scope: !379, file: !2, line: 220, column: 13) +!384 = !DILocation(line: 224, column: 31, scope: !344) +!385 = !DILocation(line: 224, column: 45, scope: !344) +!386 = !DILocation(line: 224, column: 26, scope: !344) +!387 = !DILocation(line: 224, column: 24, scope: !344) +!388 = !DILocation(line: 225, column: 17, scope: !389) +!389 = distinct !DILexicalBlock(scope: !344, file: !2, line: 225, column: 17) +!390 = !DILocation(line: 225, column: 28, scope: !389) +!391 = !DILocation(line: 225, column: 44, scope: !389) +!392 = !DILocation(line: 225, column: 47, scope: !389) +!393 = !DILocation(line: 225, column: 58, scope: !389) +!394 = !DILocation(line: 225, column: 17, scope: !344) +!395 = !DILocation(line: 227, column: 17, scope: !396) +!396 = distinct !DILexicalBlock(scope: !389, file: !2, line: 226, column: 13) +!397 = !DILocation(line: 230, column: 25, scope: !344) +!398 = !DILocation(line: 230, column: 13, scope: !344) +!399 = !DILocation(line: 230, column: 37, scope: !344) +!400 = !DILocation(line: 232, column: 25, scope: !344) +!401 = !DILocation(line: 232, column: 20, scope: !344) +!402 = !DILocation(line: 232, column: 18, scope: !344) +!403 = !DILocation(line: 233, column: 9, scope: !344) +!404 = !DILocation(line: 235, column: 13, scope: !405) +!405 = distinct !DILexicalBlock(scope: !332, file: !2, line: 235, column: 13) +!406 = !DILocation(line: 235, column: 26, scope: !405) +!407 = !DILocation(line: 235, column: 13, scope: !332) +!408 = !DILocation(line: 237, column: 26, scope: !409) +!409 = distinct !DILexicalBlock(scope: !405, file: !2, line: 236, column: 9) +!410 = !DILocation(line: 237, column: 13, scope: !409) +!411 = !DILocation(line: 238, column: 9, scope: !409) +!412 = !DILocation(line: 239, column: 13, scope: !413) +!413 = distinct !DILexicalBlock(scope: !332, file: !2, line: 239, column: 13) +!414 = !DILocation(line: 239, column: 26, scope: !413) +!415 = !DILocation(line: 239, column: 13, scope: !332) +!416 = !DILocation(line: 241, column: 26, scope: !417) +!417 = distinct !DILexicalBlock(scope: !413, file: !2, line: 240, column: 9) +!418 = !DILocation(line: 241, column: 13, scope: !417) +!419 = !DILocation(line: 242, column: 9, scope: !417) +!420 = !DILocalVariable(name: "i", scope: !421, file: !2, line: 251, type: !112) +!421 = distinct !DILexicalBlock(scope: !327, file: !2, line: 250, column: 5) +!422 = !DILocation(line: 251, column: 13, scope: !421) +!423 = !DILocalVariable(name: "buffer", scope: !421, file: !2, line: 252, type: !224) +!424 = !DILocation(line: 252, column: 13, scope: !421) +!425 = !DILocation(line: 254, column: 13, scope: !426) +!426 = distinct !DILexicalBlock(scope: !421, file: !2, line: 254, column: 13) +!427 = !DILocation(line: 254, column: 18, scope: !426) +!428 = !DILocation(line: 254, column: 23, scope: !426) +!429 = !DILocation(line: 254, column: 26, scope: !426) +!430 = !DILocation(line: 254, column: 31, scope: !426) +!431 = !DILocation(line: 254, column: 13, scope: !421) +!432 = !DILocation(line: 256, column: 20, scope: !433) +!433 = distinct !DILexicalBlock(scope: !426, file: !2, line: 255, column: 9) +!434 = !DILocation(line: 256, column: 13, scope: !433) +!435 = !DILocation(line: 256, column: 26, scope: !433) +!436 = !DILocation(line: 258, column: 19, scope: !437) +!437 = distinct !DILexicalBlock(scope: !433, file: !2, line: 258, column: 13) +!438 = !DILocation(line: 258, column: 17, scope: !437) +!439 = !DILocation(line: 258, column: 24, scope: !440) +!440 = distinct !DILexicalBlock(scope: !437, file: !2, line: 258, column: 13) +!441 = !DILocation(line: 258, column: 26, scope: !440) +!442 = !DILocation(line: 258, column: 13, scope: !437) +!443 = !DILocation(line: 260, column: 37, scope: !444) +!444 = distinct !DILexicalBlock(scope: !440, file: !2, line: 259, column: 13) +!445 = !DILocation(line: 260, column: 30, scope: !444) +!446 = !DILocation(line: 260, column: 17, scope: !444) +!447 = !DILocation(line: 261, column: 13, scope: !444) +!448 = !DILocation(line: 258, column: 33, scope: !440) +!449 = !DILocation(line: 258, column: 13, scope: !440) +!450 = distinct !{!450, !442, !451, !257} +!451 = !DILocation(line: 261, column: 13, scope: !437) +!452 = !DILocation(line: 262, column: 9, scope: !433) +!453 = !DILocation(line: 265, column: 13, scope: !454) +!454 = distinct !DILexicalBlock(scope: !426, file: !2, line: 264, column: 9) +!455 = !DILocation(line: 268, column: 1, scope: !327) diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c.bc index 78ae411d..22d459b5 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c.bc @@ -344,7 +344,7 @@ attributes #5 = { nounwind } !29 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 288, elements: !30) !30 = !{!31} !31 = !DISubrange(count: 36) -!32 = distinct !DICompileUnit(language: DW_LANG_C11, file: !33, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !34, globals: !37, splitDebugInlining: false, nameTableKind: None) +!32 = distinct !DICompileUnit(language: DW_LANG_C11, file: !33, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !34, globals: !37, splitDebugInlining: false, nameTableKind: None) !33 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e5852ff29d1c45739e0474f9559a77e5") !34 = !{!35, !36} !35 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) @@ -357,7 +357,7 @@ attributes #5 = { nounwind } !42 = !{i32 7, !"PIE Level", i32 2} !43 = !{i32 7, !"uwtable", i32 2} !44 = !{i32 7, !"frame-pointer", i32 2} -!45 = !{!"clang version 16.0.0"} +!45 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !46 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE129_rand_01_bad", scope: !2, file: !2, line: 22, type: !47, scopeLine: 23, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !49) !47 = !DISubroutineType(types: !48) !48 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c.bc index 7f0db9d3..7036cb75 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c.bc @@ -201,7 +201,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e233c99398d70ef42275982975277534") !24 = !{!25, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -215,7 +215,7 @@ attributes #5 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE131_loop_01_bad", scope: !2, file: !2, line: 21, type: !38, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc index 77c6b460..c9d30ab9 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc @@ -145,7 +145,7 @@ attributes #6 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "216ce47c26f3879f4108172e433c08aa") !24 = !{!25, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -159,7 +159,7 @@ attributes #6 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE131_memcpy_01_bad", scope: !2, file: !2, line: 21, type: !38, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c.bc index d4920fed..0bdeef4f 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c.bc @@ -160,7 +160,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "bcfb4ff5b7ea8e362278a7434a6bcda6") !24 = !{!25, !26} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -173,7 +173,7 @@ attributes #5 = { nounwind } !32 = !{i32 7, !"PIE Level", i32 2} !33 = !{i32 7, !"uwtable", i32 2} !34 = !{i32 7, !"frame-pointer", i32 2} -!35 = !{!"clang version 16.0.0"} +!35 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !36 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_cpy_01_bad", scope: !2, file: !2, line: 28, type: !37, scopeLine: 29, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !39) !37 = !DISubroutineType(types: !38) !38 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c.bc index 14ec8e96..a7487f36 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c.bc @@ -190,7 +190,7 @@ attributes #7 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "81ff5befc8fa89045176471f65cb3178") !24 = !{!25, !26} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -203,7 +203,7 @@ attributes #7 = { nounwind } !32 = !{i32 7, !"PIE Level", i32 2} !33 = !{i32 7, !"uwtable", i32 2} !34 = !{i32 7, !"frame-pointer", i32 2} -!35 = !{!"clang version 16.0.0"} +!35 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !36 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memcpy_01_bad", scope: !2, file: !2, line: 28, type: !37, scopeLine: 29, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !39) !37 = !DISubroutineType(types: !38) !38 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c.bc index 2b8fde8c..ad17c9c5 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c.bc @@ -193,7 +193,7 @@ attributes #7 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fcf2ff7f8d1df024ff6a7fd6af7d0d75") !24 = !{!25, !26} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -206,7 +206,7 @@ attributes #7 = { nounwind } !32 = !{i32 7, !"PIE Level", i32 2} !33 = !{i32 7, !"uwtable", i32 2} !34 = !{i32 7, !"frame-pointer", i32 2} -!35 = !{!"clang version 16.0.0"} +!35 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !36 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE193_char_alloca_memmove_01_bad", scope: !2, file: !2, line: 28, type: !37, scopeLine: 29, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !39) !37 = !DISubroutineType(types: !38) !38 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c.bc index b676b601..dec2412c 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c.bc @@ -185,7 +185,7 @@ attributes #7 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "eef10df1dfff5fcb933543e5d3138b00") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -197,7 +197,7 @@ attributes #7 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE193_char_declare_memmove_01_bad", scope: !2, file: !2, line: 28, type: !36, scopeLine: 29, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c.bc index 6febd365..2dbf48b3 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c.bc @@ -154,7 +154,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "011bc47a43884db51e6d3873fedfad26") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -166,7 +166,7 @@ attributes #5 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE193_wchar_t_declare_cpy_01_bad", scope: !2, file: !2, line: 28, type: !36, scopeLine: 29, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c.bc index f34c0fbf..4d1f2f1f 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c.bc @@ -221,7 +221,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "bdd6a20db056aa225fb820deda827ba3") !24 = !{!25, !26} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -234,7 +234,7 @@ attributes #5 = { nounwind } !32 = !{i32 7, !"PIE Level", i32 2} !33 = !{i32 7, !"uwtable", i32 2} !34 = !{i32 7, !"frame-pointer", i32 2} -!35 = !{!"clang version 16.0.0"} +!35 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !36 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_loop_01_bad", scope: !2, file: !2, line: 23, type: !37, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !39) !37 = !DISubroutineType(types: !38) !38 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c.bc index 795570ca..137097f4 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c.bc @@ -171,7 +171,7 @@ attributes #6 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fef6988df2c9468ce1f5dcd4c5723296") !24 = !{!25, !26} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -184,7 +184,7 @@ attributes #6 = { nounwind } !32 = !{i32 7, !"PIE Level", i32 2} !33 = !{i32 7, !"uwtable", i32 2} !34 = !{i32 7, !"frame-pointer", i32 2} -!35 = !{!"clang version 16.0.0"} +!35 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !36 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_char_alloca_memcpy_01_bad", scope: !2, file: !2, line: 23, type: !37, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !39) !37 = !DISubroutineType(types: !38) !38 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c.bc index 12f41a8f..3b2e46cb 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c.bc @@ -163,7 +163,7 @@ attributes #6 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4516e55a368470a4f6052d4a77b44c1f") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -175,7 +175,7 @@ attributes #6 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_memmove_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c.bc index df5c9531..4bfbbfd3 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c.bc @@ -162,7 +162,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "91d48e3a4500984d49f3b4a3a3d7d3ee") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -174,7 +174,7 @@ attributes #5 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_char_declare_ncpy_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c.bc index c9937a98..815cddf5 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c.bc @@ -159,14 +159,14 @@ attributes #6 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !32, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !32, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3bee5b6091b40545c4b612a8d08cded2") !24 = !{!25, !31} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) !26 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !27, line: 27, baseType: !28) -!27 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!27 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !28 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !29, line: 44, baseType: !30) -!29 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!29 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !30 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !31 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) !32 = !{!0, !7, !12, !17} @@ -177,7 +177,7 @@ attributes #6 = { nounwind } !37 = !{i32 7, !"PIE Level", i32 2} !38 = !{i32 7, !"uwtable", i32 2} !39 = !{i32 7, !"frame-pointer", i32 2} -!40 = !{!"clang version 16.0.0"} +!40 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !41 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_alloca_memmove_01_bad", scope: !2, file: !2, line: 21, type: !42, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !44) !42 = !DISubroutineType(types: !43) !43 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c.bc index 8e9bf9d4..f885a8ea 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c.bc @@ -207,7 +207,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "38c5d7c6e87d50b4e1600d7901a1f7dc") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -219,7 +219,7 @@ attributes #5 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_loop_01_bad", scope: !2, file: !2, line: 21, type: !36, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} @@ -227,9 +227,9 @@ attributes #5 = { nounwind } !39 = !DILocalVariable(name: "data", scope: !35, file: !2, line: 23, type: !40) !40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !41, size: 64) !41 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !42, line: 27, baseType: !43) -!42 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!42 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !43 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !44, line: 44, baseType: !45) -!44 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!44 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !45 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !46 = !DILocation(line: 23, column: 15, scope: !35) !47 = !DILocalVariable(name: "dataBadBuffer", scope: !35, file: !2, line: 24, type: !48) diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c.bc index 5c9d481e..f118b368 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c.bc @@ -151,7 +151,7 @@ attributes #6 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "784a0dafb2a4a145af9d5380585c1a8a") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -163,7 +163,7 @@ attributes #6 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memcpy_01_bad", scope: !2, file: !2, line: 21, type: !36, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} @@ -171,9 +171,9 @@ attributes #6 = { nounwind } !39 = !DILocalVariable(name: "data", scope: !35, file: !2, line: 23, type: !40) !40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !41, size: 64) !41 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !42, line: 27, baseType: !43) -!42 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!42 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !43 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !44, line: 44, baseType: !45) -!44 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!44 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !45 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !46 = !DILocation(line: 23, column: 15, scope: !35) !47 = !DILocalVariable(name: "dataBadBuffer", scope: !35, file: !2, line: 24, type: !48) diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c.bc index 5329bdcf..cb099d6a 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c.bc @@ -151,7 +151,7 @@ attributes #6 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d3831a96a72c461970e78a9e15ca6322") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -163,7 +163,7 @@ attributes #6 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_int64_t_declare_memmove_01_bad", scope: !2, file: !2, line: 21, type: !36, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} @@ -171,9 +171,9 @@ attributes #6 = { nounwind } !39 = !DILocalVariable(name: "data", scope: !35, file: !2, line: 23, type: !40) !40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !41, size: 64) !41 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !42, line: 27, baseType: !43) -!42 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!42 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !43 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !44, line: 44, baseType: !45) -!44 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!44 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !45 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !46 = !DILocation(line: 23, column: 15, scope: !35) !47 = !DILocalVariable(name: "dataBadBuffer", scope: !35, file: !2, line: 24, type: !48) diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c.bc index 591d4f91..cba0900a 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c.bc @@ -215,7 +215,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ac59ee9a98ce00cfcf4141366754d53d") !24 = !{!25, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -229,7 +229,7 @@ attributes #5 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_loop_01_bad", scope: !2, file: !2, line: 21, type: !38, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c.bc index 1e9aeea0..599aa288 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c.bc @@ -159,7 +159,7 @@ attributes #6 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ba902779d82a209ea0c3568362571c37") !24 = !{!25, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -173,7 +173,7 @@ attributes #6 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_int_alloca_memcpy_01_bad", scope: !2, file: !2, line: 21, type: !38, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c.bc index 9015a291..add53394 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c.bc @@ -209,7 +209,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !34, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !34, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d96d6fc73d13446b91e59ea7fe29488f") !24 = !{!25, !33} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -229,7 +229,7 @@ attributes #5 = { nounwind } !39 = !{i32 7, !"PIE Level", i32 2} !40 = !{i32 7, !"uwtable", i32 2} !41 = !{i32 7, !"frame-pointer", i32 2} -!42 = !{!"clang version 16.0.0"} +!42 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !43 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_alloca_memmove_01_bad", scope: !2, file: !2, line: 21, type: !44, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !46) !44 = !DISubroutineType(types: !45) !45 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c.bc index cc0d90ba..0a38cdbd 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c.bc @@ -201,7 +201,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b47ae79a4c73135e2daa028201f420c5") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -213,7 +213,7 @@ attributes #5 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_struct_declare_memmove_01_bad", scope: !2, file: !2, line: 21, type: !36, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c.bc index 925e14b4..90e5635c 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c.bc @@ -216,7 +216,7 @@ attributes #4 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !30, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !30, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "12ba8812b087ce2ce4bd2045ef94a333") !24 = !{!25, !29} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -232,7 +232,7 @@ attributes #4 = { nounwind } !35 = !{i32 7, !"PIE Level", i32 2} !36 = !{i32 7, !"uwtable", i32 2} !37 = !{i32 7, !"frame-pointer", i32 2} -!38 = !{!"clang version 16.0.0"} +!38 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !39 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_loop_01_bad", scope: !2, file: !2, line: 23, type: !40, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !42) !40 = !DISubroutineType(types: !41) !41 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c.bc index 678c9ffa..dd952480 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c.bc @@ -172,7 +172,7 @@ attributes #4 = { nounwind } !25 = !DICompositeType(tag: DW_TAG_array_type, baseType: !10, size: 120, elements: !26) !26 = !{!27} !27 = !DISubrange(count: 15) -!28 = distinct !DICompileUnit(language: DW_LANG_C11, file: !29, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !30, globals: !35, splitDebugInlining: false, nameTableKind: None) +!28 = distinct !DICompileUnit(language: DW_LANG_C11, file: !29, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !30, globals: !35, splitDebugInlining: false, nameTableKind: None) !29 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d12db9fda271778abc5ffcb0ec1c8b65") !30 = !{!31, !34} !31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !32, size: 64) @@ -187,7 +187,7 @@ attributes #4 = { nounwind } !40 = !{i32 7, !"PIE Level", i32 2} !41 = !{i32 7, !"uwtable", i32 2} !42 = !{i32 7, !"frame-pointer", i32 2} -!43 = !{!"clang version 16.0.0"} +!43 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !44 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_alloca_snprintf_01_bad", scope: !2, file: !2, line: 29, type: !45, scopeLine: 30, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !47) !45 = !DISubroutineType(types: !46) !46 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c.bc index b42880c3..ba29ffb8 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c.bc @@ -208,7 +208,7 @@ attributes #4 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ed042e31d81dcd4f1c02de1b569f7377") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -220,7 +220,7 @@ attributes #4 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_loop_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c.bc index 58b79b23..acee1c34 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c.bc @@ -164,7 +164,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "546f0b322d9b5bf8d146b7d0391f51c6") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -176,7 +176,7 @@ attributes #5 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memcpy_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c.bc index 41f785d7..7919dbb7 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c.bc @@ -164,7 +164,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "35d3f11cc688a9d239bbc044ed0bf76f") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -176,7 +176,7 @@ attributes #5 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_memmove_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c.bc index 9179a8ea..0a7df6b5 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c.bc @@ -164,7 +164,7 @@ attributes #4 = { nounwind } !25 = !DICompositeType(tag: DW_TAG_array_type, baseType: !10, size: 120, elements: !26) !26 = !{!27} !27 = !DISubrange(count: 15) -!28 = distinct !DICompileUnit(language: DW_LANG_C11, file: !29, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !30, globals: !32, splitDebugInlining: false, nameTableKind: None) +!28 = distinct !DICompileUnit(language: DW_LANG_C11, file: !29, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !30, globals: !32, splitDebugInlining: false, nameTableKind: None) !29 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f2416b550d2c26ac7e2d8fe67773b995") !30 = !{!31} !31 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -176,7 +176,7 @@ attributes #4 = { nounwind } !37 = !{i32 7, !"PIE Level", i32 2} !38 = !{i32 7, !"uwtable", i32 2} !39 = !{i32 7, !"frame-pointer", i32 2} -!40 = !{!"clang version 16.0.0"} +!40 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !41 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE805_wchar_t_declare_snprintf_01_bad", scope: !2, file: !2, line: 29, type: !42, scopeLine: 30, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !44) !42 = !DISubroutineType(types: !43) !43 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c.bc index 27132712..81d9f97f 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c.bc @@ -230,7 +230,7 @@ attributes #7 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9d701b805c41687811bbe6830fa17d01") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -242,7 +242,7 @@ attributes #7 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_loop_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c.bc index 23325c19..170809ec 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c.bc @@ -175,7 +175,7 @@ attributes #7 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "0605ede31250268674f4ba51f301c825") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -187,7 +187,7 @@ attributes #7 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE806_char_declare_ncpy_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c.bc index 2642d497..4d749830 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c.bc @@ -187,7 +187,7 @@ attributes #8 = { nounwind willreturn memory(read) } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7e4f0985e3b580f69782124bb4153e3f") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -199,7 +199,7 @@ attributes #8 = { nounwind willreturn memory(read) } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__CWE806_wchar_t_declare_memcpy_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c.bc index 1782e95f..e7e36493 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c.bc @@ -165,7 +165,7 @@ attributes #4 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !30, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !30, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c50fce4e894376470592c42a4aed7ec6") !24 = !{!25, !29} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -181,7 +181,7 @@ attributes #4 = { nounwind } !35 = !{i32 7, !"PIE Level", i32 2} !36 = !{i32 7, !"uwtable", i32 2} !37 = !{i32 7, !"frame-pointer", i32 2} -!38 = !{!"clang version 16.0.0"} +!38 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !39 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__dest_wchar_t_alloca_cpy_01_bad", scope: !2, file: !2, line: 23, type: !40, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !42) !40 = !DISubroutineType(types: !41) !41 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c.bc index 0aeaa6ec..b1d612e8 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c.bc @@ -154,7 +154,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "6250ce27cfca7df136b644e63083b2d9") !24 = !{!25, !26} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -167,7 +167,7 @@ attributes #5 = { nounwind } !32 = !{i32 7, !"PIE Level", i32 2} !33 = !{i32 7, !"uwtable", i32 2} !34 = !{i32 7, !"frame-pointer", i32 2} -!35 = !{!"clang version 16.0.0"} +!35 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !36 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__src_char_alloca_cpy_01_bad", scope: !2, file: !2, line: 23, type: !37, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !39) !37 = !DISubroutineType(types: !38) !38 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c.bc index d2550c4f..9239915f 100644 --- a/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c.bc @@ -155,7 +155,7 @@ attributes #5 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3ea4c0d9c702304b61cc4992203b08df") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -167,7 +167,7 @@ attributes #5 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE121_Stack_Based_Buffer_Overflow__src_wchar_t_declare_cpy_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c.bc index 92942809..b01e77ff 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c.bc @@ -226,7 +226,7 @@ attributes #9 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !29, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !29, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "356d824faf5cff00bdc0db7b9a4ceaab") !24 = !{!25, !27, !28} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -241,7 +241,7 @@ attributes #9 = { nounwind } !34 = !{i32 7, !"PIE Level", i32 2} !35 = !{i32 7, !"uwtable", i32 2} !36 = !{i32 7, !"frame-pointer", i32 2} -!37 = !{!"clang version 16.0.0"} +!37 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !38 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__CWE131_loop_01_bad", scope: !2, file: !2, line: 21, type: !39, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !41) !39 = !DISubroutineType(types: !40) !40 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc index 899031e4..08869e62 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c.bc @@ -180,7 +180,7 @@ attributes #10 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !29, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !29, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f207e002d50758b756ee19106bbecc1a") !24 = !{!25, !27, !28} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -195,7 +195,7 @@ attributes #10 = { nounwind } !34 = !{i32 7, !"PIE Level", i32 2} !35 = !{i32 7, !"uwtable", i32 2} !36 = !{i32 7, !"frame-pointer", i32 2} -!37 = !{!"clang version 16.0.0"} +!37 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !38 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__CWE131_memcpy_01_bad", scope: !2, file: !2, line: 21, type: !39, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !41) !39 = !DISubroutineType(types: !40) !40 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c.bc new file mode 100644 index 00000000..c3cce876 --- /dev/null +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c.bc @@ -0,0 +1,364 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [18 x i8] c"Calling good()...\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [16 x i8] c"Finished good()\00", align 1, !dbg !7 +@.str.2 = private unnamed_addr constant [17 x i8] c"Calling bad()...\00", align 1, !dbg !12 +@.str.3 = private unnamed_addr constant [15 x i8] c"Finished bad()\00", align 1, !dbg !17 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_bad() #0 !dbg !41 { +entry: + %data = alloca ptr, align 8 + %dataSize = alloca i32, align 4 + %i = alloca i64, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !45, metadata !DIExpression()), !dbg !46 + call void @llvm.dbg.declare(metadata ptr %dataSize, metadata !47, metadata !DIExpression()), !dbg !48 + store i32 536870913, ptr %dataSize, align 4, !dbg !49 + %0 = load i32, ptr %dataSize, align 4, !dbg !50 + %conv = sext i32 %0 to i64, !dbg !50 + %mul = mul i64 %conv, 4, !dbg !51 + %call = call noalias ptr @malloc(i64 noundef %mul) #6, !dbg !52 + store ptr %call, ptr %data, align 8, !dbg !53 + %1 = load ptr, ptr %data, align 8, !dbg !54 + %cmp = icmp eq ptr %1, null, !dbg !56 + br i1 %cmp, label %if.then, label %if.end, !dbg !57 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #7, !dbg !58 + unreachable, !dbg !58 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %i, metadata !60, metadata !DIExpression()), !dbg !62 + store i64 0, ptr %i, align 8, !dbg !63 + br label %for.cond, !dbg !65 + +for.cond: ; preds = %for.inc, %if.end + %2 = load i64, ptr %i, align 8, !dbg !66 + %3 = load i32, ptr %dataSize, align 4, !dbg !68 + %conv2 = sext i32 %3 to i64, !dbg !69 + %cmp3 = icmp ult i64 %2, %conv2, !dbg !70 + br i1 %cmp3, label %for.body, label %for.end, !dbg !71 + +for.body: ; preds = %for.cond + %4 = load ptr, ptr %data, align 8, !dbg !72 + %5 = load i64, ptr %i, align 8, !dbg !74 + %arrayidx = getelementptr inbounds i32, ptr %4, i64 %5, !dbg !72 + store i32 0, ptr %arrayidx, align 4, !dbg !75 + br label %for.inc, !dbg !76 + +for.inc: ; preds = %for.body + %6 = load i64, ptr %i, align 8, !dbg !77 + %inc = add i64 %6, 1, !dbg !77 + store i64 %inc, ptr %i, align 8, !dbg !77 + br label %for.cond, !dbg !78, !llvm.loop !79 + +for.end: ; preds = %for.cond + %7 = load ptr, ptr %data, align 8, !dbg !82 + %8 = load i32, ptr %dataSize, align 4, !dbg !83 + %conv5 = sext i32 %8 to i64, !dbg !83 + %mul6 = mul i64 %conv5, 4, !dbg !84 + %sub = sub i64 %mul6, 1, !dbg !85 + %call7 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %7, i64 noundef %sub), !dbg !86 + %9 = load ptr, ptr %data, align 8, !dbg !87 + %arrayidx8 = getelementptr inbounds i32, ptr %9, i64 0, !dbg !87 + %10 = load i32, ptr %arrayidx8, align 4, !dbg !87 + call void @printIntLine(i32 noundef %10), !dbg !88 + %11 = load ptr, ptr %data, align 8, !dbg !89 + call void @free(ptr noundef %11) #8, !dbg !90 + ret void, !dbg !91 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: noreturn nounwind +declare void @exit(i32 noundef) #3 + +declare i32 @UNSAFE_BUFACCESS(...) #4 + +declare void @printIntLine(i32 noundef) #4 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #5 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_good() #0 !dbg !92 { +entry: + call void @goodG2B(), !dbg !93 + ret void, !dbg !94 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !95 { +entry: + %retval = alloca i32, align 4 + %argc.addr = alloca i32, align 4 + %argv.addr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + store i32 %argc, ptr %argc.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !100, metadata !DIExpression()), !dbg !101 + store ptr %argv, ptr %argv.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !102, metadata !DIExpression()), !dbg !103 + %call = call i64 @time(ptr noundef null) #8, !dbg !104 + %conv = trunc i64 %call to i32, !dbg !105 + call void @srand(i32 noundef %conv) #8, !dbg !106 + call void @printLine(ptr noundef @.str), !dbg !107 + call void @CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_good(), !dbg !108 + call void @printLine(ptr noundef @.str.1), !dbg !109 + call void @printLine(ptr noundef @.str.2), !dbg !110 + call void @CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_bad(), !dbg !111 + call void @printLine(ptr noundef @.str.3), !dbg !112 + ret i32 0, !dbg !113 +} + +; Function Attrs: nounwind +declare void @srand(i32 noundef) #5 + +; Function Attrs: nounwind +declare i64 @time(ptr noundef) #5 + +declare void @printLine(ptr noundef) #4 + +; Function Attrs: noinline nounwind optnone uwtable +define internal void @goodG2B() #0 !dbg !114 { +entry: + %data = alloca ptr, align 8 + %dataSize = alloca i32, align 4 + %i = alloca i64, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !115, metadata !DIExpression()), !dbg !116 + call void @llvm.dbg.declare(metadata ptr %dataSize, metadata !117, metadata !DIExpression()), !dbg !118 + store i32 20, ptr %dataSize, align 4, !dbg !119 + %0 = load i32, ptr %dataSize, align 4, !dbg !120 + %conv = sext i32 %0 to i64, !dbg !120 + %mul = mul i64 %conv, 4, !dbg !121 + %call = call noalias ptr @malloc(i64 noundef %mul) #6, !dbg !122 + store ptr %call, ptr %data, align 8, !dbg !123 + %1 = load ptr, ptr %data, align 8, !dbg !124 + %cmp = icmp eq ptr %1, null, !dbg !126 + br i1 %cmp, label %if.then, label %if.end, !dbg !127 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #7, !dbg !128 + unreachable, !dbg !128 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %i, metadata !130, metadata !DIExpression()), !dbg !132 + store i64 0, ptr %i, align 8, !dbg !133 + br label %for.cond, !dbg !135 + +for.cond: ; preds = %for.inc, %if.end + %2 = load i64, ptr %i, align 8, !dbg !136 + %3 = load i32, ptr %dataSize, align 4, !dbg !138 + %conv2 = sext i32 %3 to i64, !dbg !139 + %cmp3 = icmp ult i64 %2, %conv2, !dbg !140 + br i1 %cmp3, label %for.body, label %for.end, !dbg !141 + +for.body: ; preds = %for.cond + %4 = load ptr, ptr %data, align 8, !dbg !142 + %5 = load i64, ptr %i, align 8, !dbg !144 + %arrayidx = getelementptr inbounds i32, ptr %4, i64 %5, !dbg !142 + store i32 0, ptr %arrayidx, align 4, !dbg !145 + %6 = load ptr, ptr %data, align 8, !dbg !146 + %7 = load i64, ptr %i, align 8, !dbg !147 + %mul5 = mul i64 %7, 4, !dbg !148 + %call6 = call i32 (ptr, i64, ...) @SAFE_BUFACCESS(ptr noundef %6, i64 noundef %mul5), !dbg !149 + br label %for.inc, !dbg !150 + +for.inc: ; preds = %for.body + %8 = load i64, ptr %i, align 8, !dbg !151 + %inc = add i64 %8, 1, !dbg !151 + store i64 %inc, ptr %i, align 8, !dbg !151 + br label %for.cond, !dbg !152, !llvm.loop !153 + +for.end: ; preds = %for.cond + %9 = load ptr, ptr %data, align 8, !dbg !155 + %arrayidx7 = getelementptr inbounds i32, ptr %9, i64 0, !dbg !155 + %10 = load i32, ptr %arrayidx7, align 4, !dbg !155 + call void @printIntLine(i32 noundef %10), !dbg !156 + %11 = load ptr, ptr %data, align 8, !dbg !157 + call void @free(ptr noundef %11) #8, !dbg !158 + ret void, !dbg !159 +} + +declare i32 @SAFE_BUFACCESS(...) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind allocsize(0) } +attributes #7 = { noreturn nounwind } +attributes #8 = { nounwind } + +!llvm.dbg.cu = !{!22} +!llvm.module.flags = !{!33, !34, !35, !36, !37, !38, !39} +!llvm.ident = !{!40} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 82, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "7de38eba2d03d392876daca455fc07a4") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 144, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 18) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 84, type: !9, isLocal: true, isDefinition: true) +!9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 128, elements: !10) +!10 = !{!11} +!11 = !DISubrange(count: 16) +!12 = !DIGlobalVariableExpression(var: !13, expr: !DIExpression()) +!13 = distinct !DIGlobalVariable(scope: null, file: !2, line: 87, type: !14, isLocal: true, isDefinition: true) +!14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 136, elements: !15) +!15 = !{!16} +!16 = !DISubrange(count: 17) +!17 = !DIGlobalVariableExpression(var: !18, expr: !DIExpression()) +!18 = distinct !DIGlobalVariable(scope: null, file: !2, line: 89, type: !19, isLocal: true, isDefinition: true) +!19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) +!20 = !{!21} +!21 = !DISubrange(count: 15) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !32, splitDebugInlining: false, nameTableKind: None) +!23 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "7de38eba2d03d392876daca455fc07a4") +!24 = !{!25, !27, !28, !31} +!25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) +!26 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!28 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !29, line: 46, baseType: !30) +!29 = !DIFile(filename: "llvm-16.0.0.obj/lib/clang/16/include/stddef.h", directory: "/home/SVF-tools/SVF", checksumkind: CSK_MD5, checksum: "f95079da609b0e8f201cb8136304bf3b") +!30 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned) +!31 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!32 = !{!0, !7, !12, !17} +!33 = !{i32 7, !"Dwarf Version", i32 5} +!34 = !{i32 2, !"Debug Info Version", i32 3} +!35 = !{i32 1, !"wchar_size", i32 4} +!36 = !{i32 8, !"PIC Level", i32 2} +!37 = !{i32 7, !"PIE Level", i32 2} +!38 = !{i32 7, !"uwtable", i32 2} +!39 = !{i32 7, !"frame-pointer", i32 2} +!40 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!41 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_bad", scope: !2, file: !2, line: 21, type: !42, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !44) +!42 = !DISubroutineType(types: !43) +!43 = !{null} +!44 = !{} +!45 = !DILocalVariable(name: "data", scope: !41, file: !2, line: 23, type: !25) +!46 = !DILocation(line: 23, column: 11, scope: !41) +!47 = !DILocalVariable(name: "dataSize", scope: !41, file: !2, line: 24, type: !26) +!48 = !DILocation(line: 24, column: 9, scope: !41) +!49 = !DILocation(line: 26, column: 14, scope: !41) +!50 = !DILocation(line: 28, column: 26, scope: !41) +!51 = !DILocation(line: 28, column: 35, scope: !41) +!52 = !DILocation(line: 28, column: 19, scope: !41) +!53 = !DILocation(line: 28, column: 10, scope: !41) +!54 = !DILocation(line: 29, column: 9, scope: !55) +!55 = distinct !DILexicalBlock(scope: !41, file: !2, line: 29, column: 9) +!56 = !DILocation(line: 29, column: 14, scope: !55) +!57 = !DILocation(line: 29, column: 9, scope: !41) +!58 = !DILocation(line: 29, column: 24, scope: !59) +!59 = distinct !DILexicalBlock(scope: !55, file: !2, line: 29, column: 23) +!60 = !DILocalVariable(name: "i", scope: !61, file: !2, line: 31, type: !28) +!61 = distinct !DILexicalBlock(scope: !41, file: !2, line: 30, column: 5) +!62 = !DILocation(line: 31, column: 16, scope: !61) +!63 = !DILocation(line: 33, column: 16, scope: !64) +!64 = distinct !DILexicalBlock(scope: !61, file: !2, line: 33, column: 9) +!65 = !DILocation(line: 33, column: 14, scope: !64) +!66 = !DILocation(line: 33, column: 21, scope: !67) +!67 = distinct !DILexicalBlock(scope: !64, file: !2, line: 33, column: 9) +!68 = !DILocation(line: 33, column: 33, scope: !67) +!69 = !DILocation(line: 33, column: 25, scope: !67) +!70 = !DILocation(line: 33, column: 23, scope: !67) +!71 = !DILocation(line: 33, column: 9, scope: !64) +!72 = !DILocation(line: 35, column: 13, scope: !73) +!73 = distinct !DILexicalBlock(scope: !67, file: !2, line: 34, column: 9) +!74 = !DILocation(line: 35, column: 18, scope: !73) +!75 = !DILocation(line: 35, column: 21, scope: !73) +!76 = !DILocation(line: 36, column: 9, scope: !73) +!77 = !DILocation(line: 33, column: 44, scope: !67) +!78 = !DILocation(line: 33, column: 9, scope: !67) +!79 = distinct !{!79, !71, !80, !81} +!80 = !DILocation(line: 36, column: 9, scope: !64) +!81 = !{!"llvm.loop.mustprogress"} +!82 = !DILocation(line: 37, column: 26, scope: !61) +!83 = !DILocation(line: 37, column: 32, scope: !61) +!84 = !DILocation(line: 37, column: 41, scope: !61) +!85 = !DILocation(line: 37, column: 55, scope: !61) +!86 = !DILocation(line: 37, column: 9, scope: !61) +!87 = !DILocation(line: 38, column: 22, scope: !61) +!88 = !DILocation(line: 38, column: 9, scope: !61) +!89 = !DILocation(line: 39, column: 14, scope: !61) +!90 = !DILocation(line: 39, column: 9, scope: !61) +!91 = !DILocation(line: 41, column: 1, scope: !41) +!92 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE680_int_overflow_01_good", scope: !2, file: !2, line: 68, type: !42, scopeLine: 69, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !44) +!93 = !DILocation(line: 70, column: 5, scope: !92) +!94 = !DILocation(line: 71, column: 1, scope: !92) +!95 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 77, type: !96, scopeLine: 78, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !44) +!96 = !DISubroutineType(types: !97) +!97 = !{!26, !26, !98} +!98 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !99, size: 64) +!99 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!100 = !DILocalVariable(name: "argc", arg: 1, scope: !95, file: !2, line: 77, type: !26) +!101 = !DILocation(line: 77, column: 14, scope: !95) +!102 = !DILocalVariable(name: "argv", arg: 2, scope: !95, file: !2, line: 77, type: !98) +!103 = !DILocation(line: 77, column: 27, scope: !95) +!104 = !DILocation(line: 80, column: 22, scope: !95) +!105 = !DILocation(line: 80, column: 12, scope: !95) +!106 = !DILocation(line: 80, column: 5, scope: !95) +!107 = !DILocation(line: 82, column: 5, scope: !95) +!108 = !DILocation(line: 83, column: 5, scope: !95) +!109 = !DILocation(line: 84, column: 5, scope: !95) +!110 = !DILocation(line: 87, column: 5, scope: !95) +!111 = !DILocation(line: 88, column: 5, scope: !95) +!112 = !DILocation(line: 89, column: 5, scope: !95) +!113 = !DILocation(line: 91, column: 5, scope: !95) +!114 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 47, type: !42, scopeLine: 48, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !22, retainedNodes: !44) +!115 = !DILocalVariable(name: "data", scope: !114, file: !2, line: 49, type: !25) +!116 = !DILocation(line: 49, column: 11, scope: !114) +!117 = !DILocalVariable(name: "dataSize", scope: !114, file: !2, line: 50, type: !26) +!118 = !DILocation(line: 50, column: 9, scope: !114) +!119 = !DILocation(line: 52, column: 14, scope: !114) +!120 = !DILocation(line: 53, column: 26, scope: !114) +!121 = !DILocation(line: 53, column: 35, scope: !114) +!122 = !DILocation(line: 53, column: 19, scope: !114) +!123 = !DILocation(line: 53, column: 10, scope: !114) +!124 = !DILocation(line: 54, column: 9, scope: !125) +!125 = distinct !DILexicalBlock(scope: !114, file: !2, line: 54, column: 9) +!126 = !DILocation(line: 54, column: 14, scope: !125) +!127 = !DILocation(line: 54, column: 9, scope: !114) +!128 = !DILocation(line: 54, column: 24, scope: !129) +!129 = distinct !DILexicalBlock(scope: !125, file: !2, line: 54, column: 23) +!130 = !DILocalVariable(name: "i", scope: !131, file: !2, line: 56, type: !28) +!131 = distinct !DILexicalBlock(scope: !114, file: !2, line: 55, column: 5) +!132 = !DILocation(line: 56, column: 16, scope: !131) +!133 = !DILocation(line: 58, column: 16, scope: !134) +!134 = distinct !DILexicalBlock(scope: !131, file: !2, line: 58, column: 9) +!135 = !DILocation(line: 58, column: 14, scope: !134) +!136 = !DILocation(line: 58, column: 21, scope: !137) +!137 = distinct !DILexicalBlock(scope: !134, file: !2, line: 58, column: 9) +!138 = !DILocation(line: 58, column: 33, scope: !137) +!139 = !DILocation(line: 58, column: 25, scope: !137) +!140 = !DILocation(line: 58, column: 23, scope: !137) +!141 = !DILocation(line: 58, column: 9, scope: !134) +!142 = !DILocation(line: 60, column: 13, scope: !143) +!143 = distinct !DILexicalBlock(scope: !137, file: !2, line: 59, column: 9) +!144 = !DILocation(line: 60, column: 18, scope: !143) +!145 = !DILocation(line: 60, column: 21, scope: !143) +!146 = !DILocation(line: 61, column: 28, scope: !143) +!147 = !DILocation(line: 61, column: 34, scope: !143) +!148 = !DILocation(line: 61, column: 36, scope: !143) +!149 = !DILocation(line: 61, column: 13, scope: !143) +!150 = !DILocation(line: 62, column: 9, scope: !143) +!151 = !DILocation(line: 58, column: 44, scope: !137) +!152 = !DILocation(line: 58, column: 9, scope: !137) +!153 = distinct !{!153, !141, !154, !81} +!154 = !DILocation(line: 62, column: 9, scope: !134) +!155 = !DILocation(line: 63, column: 22, scope: !131) +!156 = !DILocation(line: 63, column: 9, scope: !131) +!157 = !DILocation(line: 64, column: 14, scope: !131) +!158 = !DILocation(line: 64, column: 9, scope: !131) +!159 = !DILocation(line: 66, column: 1, scope: !114) diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c.bc new file mode 100644 index 00000000..6dde1d99 --- /dev/null +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c.bc @@ -0,0 +1,270 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [16 x i8] c"Enter a string:\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [3 x i8] c"%s\00", align 1, !dbg !7 +@.str.2 = private unnamed_addr constant [18 x i8] c"Calling good()...\00", align 1, !dbg !12 +@.str.3 = private unnamed_addr constant [16 x i8] c"Finished good()\00", align 1, !dbg !17 +@.str.4 = private unnamed_addr constant [17 x i8] c"Calling bad()...\00", align 1, !dbg !19 +@.str.5 = private unnamed_addr constant [15 x i8] c"Finished bad()\00", align 1, !dbg !24 +@.str.6 = private unnamed_addr constant [5 x i8] c"%99s\00", align 1, !dbg !29 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_bad() #0 !dbg !49 { +entry: + %data = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !53, metadata !DIExpression()), !dbg !54 + store ptr null, ptr %data, align 8, !dbg !55 + %call = call noalias ptr @malloc(i64 noundef 10) #7, !dbg !56 + store ptr %call, ptr %data, align 8, !dbg !57 + %0 = load ptr, ptr %data, align 8, !dbg !58 + %cmp = icmp eq ptr %0, null, !dbg !60 + br i1 %cmp, label %if.then, label %if.end, !dbg !61 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #8, !dbg !62 + unreachable, !dbg !62 + +if.end: ; preds = %entry + call void @printLine(ptr noundef @.str), !dbg !64 + %1 = load ptr, ptr %data, align 8, !dbg !65 + %call1 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str.1, ptr noundef %1), !dbg !66 + %2 = load ptr, ptr %data, align 8, !dbg !67 + %3 = load ptr, ptr %data, align 8, !dbg !68 + %call2 = call i64 @strlen(ptr noundef %3) #9, !dbg !69 + %mul = mul i64 %call2, 1, !dbg !70 + %call3 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %2, i64 noundef %mul), !dbg !71 + %4 = load ptr, ptr %data, align 8, !dbg !72 + call void @printLine(ptr noundef %4), !dbg !73 + %5 = load ptr, ptr %data, align 8, !dbg !74 + call void @free(ptr noundef %5) #10, !dbg !75 + ret void, !dbg !76 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: noreturn nounwind +declare void @exit(i32 noundef) #3 + +declare void @printLine(ptr noundef) #4 + +declare i32 @__isoc99_scanf(ptr noundef, ...) #4 + +declare i32 @UNSAFE_BUFACCESS(...) #4 + +; Function Attrs: nounwind willreturn memory(read) +declare i64 @strlen(ptr noundef) #5 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #6 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_good() #0 !dbg !77 { +entry: + call void @goodG2B(), !dbg !78 + ret void, !dbg !79 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !80 { +entry: + %retval = alloca i32, align 4 + %argc.addr = alloca i32, align 4 + %argv.addr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + store i32 %argc, ptr %argc.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !85, metadata !DIExpression()), !dbg !86 + store ptr %argv, ptr %argv.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !87, metadata !DIExpression()), !dbg !88 + %call = call i64 @time(ptr noundef null) #10, !dbg !89 + %conv = trunc i64 %call to i32, !dbg !90 + call void @srand(i32 noundef %conv) #10, !dbg !91 + call void @printLine(ptr noundef @.str.2), !dbg !92 + call void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_good(), !dbg !93 + call void @printLine(ptr noundef @.str.3), !dbg !94 + call void @printLine(ptr noundef @.str.4), !dbg !95 + call void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_bad(), !dbg !96 + call void @printLine(ptr noundef @.str.5), !dbg !97 + ret i32 0, !dbg !98 +} + +; Function Attrs: nounwind +declare void @srand(i32 noundef) #6 + +; Function Attrs: nounwind +declare i64 @time(ptr noundef) #6 + +; Function Attrs: noinline nounwind optnone uwtable +define internal void @goodG2B() #0 !dbg !99 { +entry: + %data = alloca ptr, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !100, metadata !DIExpression()), !dbg !101 + store ptr null, ptr %data, align 8, !dbg !102 + %call = call noalias ptr @malloc(i64 noundef 100) #7, !dbg !103 + store ptr %call, ptr %data, align 8, !dbg !104 + %0 = load ptr, ptr %data, align 8, !dbg !105 + %cmp = icmp eq ptr %0, null, !dbg !107 + br i1 %cmp, label %if.then, label %if.end, !dbg !108 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #8, !dbg !109 + unreachable, !dbg !109 + +if.end: ; preds = %entry + call void @printLine(ptr noundef @.str), !dbg !111 + %1 = load ptr, ptr %data, align 8, !dbg !112 + %call1 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str.6, ptr noundef %1), !dbg !113 + %2 = load ptr, ptr %data, align 8, !dbg !114 + %call2 = call i32 (ptr, i64, ...) @SAFE_BUFACCESS(ptr noundef %2, i64 noundef 99), !dbg !115 + %3 = load ptr, ptr %data, align 8, !dbg !116 + call void @printLine(ptr noundef %3), !dbg !117 + %4 = load ptr, ptr %data, align 8, !dbg !118 + call void @free(ptr noundef %4) #10, !dbg !119 + ret void, !dbg !120 +} + +declare i32 @SAFE_BUFACCESS(...) #4 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nounwind allocsize(0) } +attributes #8 = { noreturn nounwind } +attributes #9 = { nounwind willreturn memory(read) } +attributes #10 = { nounwind } + +!llvm.dbg.cu = !{!34} +!llvm.module.flags = !{!41, !42, !43, !44, !45, !46, !47} +!llvm.ident = !{!48} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 29, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "95c9f816382fb84adf3ce3d432c28466") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 128, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 16) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 30, type: !9, isLocal: true, isDefinition: true) +!9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !10) +!10 = !{!11} +!11 = !DISubrange(count: 3) +!12 = !DIGlobalVariableExpression(var: !13, expr: !DIExpression()) +!13 = distinct !DIGlobalVariable(scope: null, file: !2, line: 73, type: !14, isLocal: true, isDefinition: true) +!14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 144, elements: !15) +!15 = !{!16} +!16 = !DISubrange(count: 18) +!17 = !DIGlobalVariableExpression(var: !18, expr: !DIExpression()) +!18 = distinct !DIGlobalVariable(scope: null, file: !2, line: 75, type: !3, isLocal: true, isDefinition: true) +!19 = !DIGlobalVariableExpression(var: !20, expr: !DIExpression()) +!20 = distinct !DIGlobalVariable(scope: null, file: !2, line: 78, type: !21, isLocal: true, isDefinition: true) +!21 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 136, elements: !22) +!22 = !{!23} +!23 = !DISubrange(count: 17) +!24 = !DIGlobalVariableExpression(var: !25, expr: !DIExpression()) +!25 = distinct !DIGlobalVariable(scope: null, file: !2, line: 80, type: !26, isLocal: true, isDefinition: true) +!26 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !27) +!27 = !{!28} +!28 = !DISubrange(count: 15) +!29 = !DIGlobalVariableExpression(var: !30, expr: !DIExpression()) +!30 = distinct !DIGlobalVariable(scope: null, file: !2, line: 49, type: !31, isLocal: true, isDefinition: true) +!31 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 40, elements: !32) +!32 = !{!33} +!33 = !DISubrange(count: 5) +!34 = distinct !DICompileUnit(language: DW_LANG_C11, file: !35, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !36, globals: !40, splitDebugInlining: false, nameTableKind: None) +!35 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "95c9f816382fb84adf3ce3d432c28466") +!36 = !{!37, !38, !39} +!37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!38 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!39 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!40 = !{!0, !7, !12, !17, !19, !24, !29} +!41 = !{i32 7, !"Dwarf Version", i32 5} +!42 = !{i32 2, !"Debug Info Version", i32 3} +!43 = !{i32 1, !"wchar_size", i32 4} +!44 = !{i32 8, !"PIC Level", i32 2} +!45 = !{i32 7, !"PIE Level", i32 2} +!46 = !{i32 7, !"uwtable", i32 2} +!47 = !{i32 7, !"frame-pointer", i32 2} +!48 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!49 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_bad", scope: !2, file: !2, line: 21, type: !50, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !52) +!50 = !DISubroutineType(types: !51) +!51 = !{null} +!52 = !{} +!53 = !DILocalVariable(name: "data", scope: !49, file: !2, line: 23, type: !37) +!54 = !DILocation(line: 23, column: 12, scope: !49) +!55 = !DILocation(line: 24, column: 10, scope: !49) +!56 = !DILocation(line: 26, column: 20, scope: !49) +!57 = !DILocation(line: 26, column: 10, scope: !49) +!58 = !DILocation(line: 27, column: 9, scope: !59) +!59 = distinct !DILexicalBlock(scope: !49, file: !2, line: 27, column: 9) +!60 = !DILocation(line: 27, column: 14, scope: !59) +!61 = !DILocation(line: 27, column: 9, scope: !49) +!62 = !DILocation(line: 27, column: 24, scope: !63) +!63 = distinct !DILexicalBlock(scope: !59, file: !2, line: 27, column: 23) +!64 = !DILocation(line: 29, column: 5, scope: !49) +!65 = !DILocation(line: 30, column: 17, scope: !49) +!66 = !DILocation(line: 30, column: 5, scope: !49) +!67 = !DILocation(line: 31, column: 22, scope: !49) +!68 = !DILocation(line: 31, column: 35, scope: !49) +!69 = !DILocation(line: 31, column: 28, scope: !49) +!70 = !DILocation(line: 31, column: 41, scope: !49) +!71 = !DILocation(line: 31, column: 5, scope: !49) +!72 = !DILocation(line: 32, column: 15, scope: !49) +!73 = !DILocation(line: 32, column: 5, scope: !49) +!74 = !DILocation(line: 33, column: 10, scope: !49) +!75 = !DILocation(line: 33, column: 5, scope: !49) +!76 = !DILocation(line: 34, column: 1, scope: !49) +!77 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_char_scanf_01_good", scope: !2, file: !2, line: 55, type: !50, scopeLine: 56, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !52) +!78 = !DILocation(line: 57, column: 5, scope: !77) +!79 = !DILocation(line: 58, column: 1, scope: !77) +!80 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 68, type: !81, scopeLine: 69, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !52) +!81 = !DISubroutineType(types: !82) +!82 = !{!83, !83, !84} +!83 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!84 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !37, size: 64) +!85 = !DILocalVariable(name: "argc", arg: 1, scope: !80, file: !2, line: 68, type: !83) +!86 = !DILocation(line: 68, column: 14, scope: !80) +!87 = !DILocalVariable(name: "argv", arg: 2, scope: !80, file: !2, line: 68, type: !84) +!88 = !DILocation(line: 68, column: 27, scope: !80) +!89 = !DILocation(line: 71, column: 22, scope: !80) +!90 = !DILocation(line: 71, column: 12, scope: !80) +!91 = !DILocation(line: 71, column: 5, scope: !80) +!92 = !DILocation(line: 73, column: 5, scope: !80) +!93 = !DILocation(line: 74, column: 5, scope: !80) +!94 = !DILocation(line: 75, column: 5, scope: !80) +!95 = !DILocation(line: 78, column: 5, scope: !80) +!96 = !DILocation(line: 79, column: 5, scope: !80) +!97 = !DILocation(line: 80, column: 5, scope: !80) +!98 = !DILocation(line: 82, column: 5, scope: !80) +!99 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 40, type: !50, scopeLine: 41, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !34, retainedNodes: !52) +!100 = !DILocalVariable(name: "data", scope: !99, file: !2, line: 42, type: !37) +!101 = !DILocation(line: 42, column: 12, scope: !99) +!102 = !DILocation(line: 43, column: 10, scope: !99) +!103 = !DILocation(line: 45, column: 20, scope: !99) +!104 = !DILocation(line: 45, column: 10, scope: !99) +!105 = !DILocation(line: 46, column: 9, scope: !106) +!106 = distinct !DILexicalBlock(scope: !99, file: !2, line: 46, column: 9) +!107 = !DILocation(line: 46, column: 14, scope: !106) +!108 = !DILocation(line: 46, column: 9, scope: !99) +!109 = !DILocation(line: 46, column: 24, scope: !110) +!110 = distinct !DILexicalBlock(scope: !106, file: !2, line: 46, column: 23) +!111 = !DILocation(line: 48, column: 5, scope: !99) +!112 = !DILocation(line: 49, column: 19, scope: !99) +!113 = !DILocation(line: 49, column: 5, scope: !99) +!114 = !DILocation(line: 50, column: 20, scope: !99) +!115 = !DILocation(line: 50, column: 5, scope: !99) +!116 = !DILocation(line: 51, column: 15, scope: !99) +!117 = !DILocation(line: 51, column: 5, scope: !99) +!118 = !DILocation(line: 52, column: 10, scope: !99) +!119 = !DILocation(line: 52, column: 5, scope: !99) +!120 = !DILocation(line: 53, column: 1, scope: !99) diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c.bc index a5186da5..da06b3c7 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c.bc @@ -180,14 +180,14 @@ attributes #10 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !33, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !33, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2aec0201cc969637d1553c828b1f99c8") !24 = !{!25, !31, !32} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) !26 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !27, line: 27, baseType: !28) -!27 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!27 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !28 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !29, line: 44, baseType: !30) -!29 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!29 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !30 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) !32 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -199,7 +199,7 @@ attributes #10 = { nounwind } !38 = !{i32 7, !"PIE Level", i32 2} !39 = !{i32 7, !"uwtable", i32 2} !40 = !{i32 7, !"frame-pointer", i32 2} -!41 = !{!"clang version 16.0.0"} +!41 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !42 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memcpy_01_bad", scope: !2, file: !2, line: 21, type: !43, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !45) !43 = !DISubroutineType(types: !44) !44 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c.bc index 6a19a0d8..62c18535 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c.bc @@ -180,14 +180,14 @@ attributes #10 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !33, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !33, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fc1519a6bde8e2aaaebdad408f028496") !24 = !{!25, !31, !32} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) !26 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !27, line: 27, baseType: !28) -!27 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "081edea97425b3437dded4a7fe223193") +!27 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "", checksumkind: CSK_MD5, checksum: "649b383a60bfa3eb90e85840b2b0be20") !28 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !29, line: 44, baseType: !30) -!29 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") +!29 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") !30 = !DIBasicType(name: "long", size: 64, encoding: DW_ATE_signed) !31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) !32 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -199,7 +199,7 @@ attributes #10 = { nounwind } !38 = !{i32 7, !"PIE Level", i32 2} !39 = !{i32 7, !"uwtable", i32 2} !40 = !{i32 7, !"frame-pointer", i32 2} -!41 = !{!"clang version 16.0.0"} +!41 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !42 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int64_t_memmove_01_bad", scope: !2, file: !2, line: 21, type: !43, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !45) !43 = !DISubroutineType(types: !44) !44 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c.bc index bd9c9f06..a8521c17 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c.bc @@ -180,7 +180,7 @@ attributes #10 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !29, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !29, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "867a2918c841acddc7bb6b01bb4ff4a0") !24 = !{!25, !27, !28} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -195,7 +195,7 @@ attributes #10 = { nounwind } !34 = !{i32 7, !"PIE Level", i32 2} !35 = !{i32 7, !"uwtable", i32 2} !36 = !{i32 7, !"frame-pointer", i32 2} -!37 = !{!"clang version 16.0.0"} +!37 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !38 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_int_memmove_01_bad", scope: !2, file: !2, line: 21, type: !39, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !41) !39 = !DISubroutineType(types: !40) !40 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c.bc new file mode 100644 index 00000000..5020b567 --- /dev/null +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c.bc @@ -0,0 +1,484 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct._twoIntsStruct = type { i32, i32 } + +@.str = private unnamed_addr constant [18 x i8] c"Calling good()...\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [16 x i8] c"Finished good()\00", align 1, !dbg !7 +@.str.2 = private unnamed_addr constant [17 x i8] c"Calling bad()...\00", align 1, !dbg !12 +@.str.3 = private unnamed_addr constant [15 x i8] c"Finished bad()\00", align 1, !dbg !17 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_bad() #0 !dbg !44 { +entry: + %data = alloca ptr, align 8 + %source = alloca [10 x %struct._twoIntsStruct], align 16 + %i = alloca i64, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !48, metadata !DIExpression()), !dbg !49 + store ptr null, ptr %data, align 8, !dbg !50 + %call = call noalias ptr @malloc(i64 noundef 40) #7, !dbg !51 + store ptr %call, ptr %data, align 8, !dbg !52 + %0 = load ptr, ptr %data, align 8, !dbg !53 + %cmp = icmp eq ptr %0, null, !dbg !55 + br i1 %cmp, label %if.then, label %if.end, !dbg !56 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #8, !dbg !57 + unreachable, !dbg !57 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %source, metadata !59, metadata !DIExpression()), !dbg !64 + call void @llvm.dbg.declare(metadata ptr %i, metadata !65, metadata !DIExpression()), !dbg !69 + store i64 0, ptr %i, align 8, !dbg !70 + br label %for.cond, !dbg !72 + +for.cond: ; preds = %for.inc, %if.end + %1 = load i64, ptr %i, align 8, !dbg !73 + %cmp1 = icmp ult i64 %1, 10, !dbg !75 + br i1 %cmp1, label %for.body, label %for.end, !dbg !76 + +for.body: ; preds = %for.cond + %2 = load i64, ptr %i, align 8, !dbg !77 + %conv = trunc i64 %2 to i32, !dbg !79 + %3 = load i64, ptr %i, align 8, !dbg !80 + %arrayidx = getelementptr inbounds [10 x %struct._twoIntsStruct], ptr %source, i64 0, i64 %3, !dbg !81 + %intOne = getelementptr inbounds %struct._twoIntsStruct, ptr %arrayidx, i32 0, i32 0, !dbg !82 + store i32 %conv, ptr %intOne, align 8, !dbg !83 + %4 = load i64, ptr %i, align 8, !dbg !84 + %conv2 = trunc i64 %4 to i32, !dbg !85 + %5 = load i64, ptr %i, align 8, !dbg !86 + %arrayidx3 = getelementptr inbounds [10 x %struct._twoIntsStruct], ptr %source, i64 0, i64 %5, !dbg !87 + %intTwo = getelementptr inbounds %struct._twoIntsStruct, ptr %arrayidx3, i32 0, i32 1, !dbg !88 + store i32 %conv2, ptr %intTwo, align 4, !dbg !89 + br label %for.inc, !dbg !90 + +for.inc: ; preds = %for.body + %6 = load i64, ptr %i, align 8, !dbg !91 + %inc = add i64 %6, 1, !dbg !91 + store i64 %inc, ptr %i, align 8, !dbg !91 + br label %for.cond, !dbg !92, !llvm.loop !93 + +for.end: ; preds = %for.cond + store i64 0, ptr %i, align 8, !dbg !96 + br label %for.cond4, !dbg !98 + +for.cond4: ; preds = %for.inc15, %for.end + %7 = load i64, ptr %i, align 8, !dbg !99 + %cmp5 = icmp ult i64 %7, 10, !dbg !101 + br i1 %cmp5, label %for.body7, label %for.end17, !dbg !102 + +for.body7: ; preds = %for.cond4 + %8 = load ptr, ptr %data, align 8, !dbg !103 + %9 = load i64, ptr %i, align 8, !dbg !105 + %arrayidx8 = getelementptr inbounds %struct._twoIntsStruct, ptr %8, i64 %9, !dbg !103 + %10 = load i64, ptr %i, align 8, !dbg !106 + %arrayidx9 = getelementptr inbounds [10 x %struct._twoIntsStruct], ptr %source, i64 0, i64 %10, !dbg !107 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %arrayidx8, ptr align 8 %arrayidx9, i64 8, i1 false), !dbg !107 + %11 = load i64, ptr %i, align 8, !dbg !108 + %cmp10 = icmp ugt i64 %11, 5, !dbg !110 + br i1 %cmp10, label %if.then12, label %if.end14, !dbg !111 + +if.then12: ; preds = %for.body7 + %12 = load ptr, ptr %data, align 8, !dbg !112 + %13 = load i64, ptr %i, align 8, !dbg !113 + %mul = mul i64 %13, 8, !dbg !114 + %call13 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %12, i64 noundef %mul), !dbg !115 + br label %if.end14, !dbg !115 + +if.end14: ; preds = %if.then12, %for.body7 + br label %for.inc15, !dbg !116 + +for.inc15: ; preds = %if.end14 + %14 = load i64, ptr %i, align 8, !dbg !117 + %inc16 = add i64 %14, 1, !dbg !117 + store i64 %inc16, ptr %i, align 8, !dbg !117 + br label %for.cond4, !dbg !118, !llvm.loop !119 + +for.end17: ; preds = %for.cond4 + %15 = load ptr, ptr %data, align 8, !dbg !121 + %arrayidx18 = getelementptr inbounds %struct._twoIntsStruct, ptr %15, i64 0, !dbg !121 + call void @printStructLine(ptr noundef %arrayidx18), !dbg !122 + %16 = load ptr, ptr %data, align 8, !dbg !123 + call void @free(ptr noundef %16) #9, !dbg !124 + ret void, !dbg !125 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: noreturn nounwind +declare void @exit(i32 noundef) #3 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4 + +declare i32 @UNSAFE_BUFACCESS(...) #5 + +declare void @printStructLine(ptr noundef) #5 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #6 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_good() #0 !dbg !126 { +entry: + call void @goodG2B(), !dbg !127 + ret void, !dbg !128 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !129 { +entry: + %retval = alloca i32, align 4 + %argc.addr = alloca i32, align 4 + %argv.addr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + store i32 %argc, ptr %argc.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !134, metadata !DIExpression()), !dbg !135 + store ptr %argv, ptr %argv.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !136, metadata !DIExpression()), !dbg !137 + %call = call i64 @time(ptr noundef null) #9, !dbg !138 + %conv = trunc i64 %call to i32, !dbg !139 + call void @srand(i32 noundef %conv) #9, !dbg !140 + call void @printLine(ptr noundef @.str), !dbg !141 + call void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_good(), !dbg !142 + call void @printLine(ptr noundef @.str.1), !dbg !143 + call void @printLine(ptr noundef @.str.2), !dbg !144 + call void @CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_bad(), !dbg !145 + call void @printLine(ptr noundef @.str.3), !dbg !146 + ret i32 0, !dbg !147 +} + +; Function Attrs: nounwind +declare void @srand(i32 noundef) #6 + +; Function Attrs: nounwind +declare i64 @time(ptr noundef) #6 + +declare void @printLine(ptr noundef) #5 + +; Function Attrs: noinline nounwind optnone uwtable +define internal void @goodG2B() #0 !dbg !148 { +entry: + %data = alloca ptr, align 8 + %source = alloca [10 x %struct._twoIntsStruct], align 16 + %i = alloca i64, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !149, metadata !DIExpression()), !dbg !150 + store ptr null, ptr %data, align 8, !dbg !151 + %call = call noalias ptr @malloc(i64 noundef 80) #7, !dbg !152 + store ptr %call, ptr %data, align 8, !dbg !153 + %0 = load ptr, ptr %data, align 8, !dbg !154 + %cmp = icmp eq ptr %0, null, !dbg !156 + br i1 %cmp, label %if.then, label %if.end, !dbg !157 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #8, !dbg !158 + unreachable, !dbg !158 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %source, metadata !160, metadata !DIExpression()), !dbg !162 + call void @llvm.dbg.declare(metadata ptr %i, metadata !163, metadata !DIExpression()), !dbg !164 + store i64 0, ptr %i, align 8, !dbg !165 + br label %for.cond, !dbg !167 + +for.cond: ; preds = %for.inc, %if.end + %1 = load i64, ptr %i, align 8, !dbg !168 + %cmp1 = icmp ult i64 %1, 10, !dbg !170 + br i1 %cmp1, label %for.body, label %for.end, !dbg !171 + +for.body: ; preds = %for.cond + %2 = load i64, ptr %i, align 8, !dbg !172 + %conv = trunc i64 %2 to i32, !dbg !174 + %3 = load i64, ptr %i, align 8, !dbg !175 + %arrayidx = getelementptr inbounds [10 x %struct._twoIntsStruct], ptr %source, i64 0, i64 %3, !dbg !176 + %intOne = getelementptr inbounds %struct._twoIntsStruct, ptr %arrayidx, i32 0, i32 0, !dbg !177 + store i32 %conv, ptr %intOne, align 8, !dbg !178 + %4 = load i64, ptr %i, align 8, !dbg !179 + %conv2 = trunc i64 %4 to i32, !dbg !180 + %5 = load i64, ptr %i, align 8, !dbg !181 + %arrayidx3 = getelementptr inbounds [10 x %struct._twoIntsStruct], ptr %source, i64 0, i64 %5, !dbg !182 + %intTwo = getelementptr inbounds %struct._twoIntsStruct, ptr %arrayidx3, i32 0, i32 1, !dbg !183 + store i32 %conv2, ptr %intTwo, align 4, !dbg !184 + br label %for.inc, !dbg !185 + +for.inc: ; preds = %for.body + %6 = load i64, ptr %i, align 8, !dbg !186 + %inc = add i64 %6, 1, !dbg !186 + store i64 %inc, ptr %i, align 8, !dbg !186 + br label %for.cond, !dbg !187, !llvm.loop !188 + +for.end: ; preds = %for.cond + store i64 0, ptr %i, align 8, !dbg !190 + br label %for.cond4, !dbg !192 + +for.cond4: ; preds = %for.inc11, %for.end + %7 = load i64, ptr %i, align 8, !dbg !193 + %cmp5 = icmp ult i64 %7, 10, !dbg !195 + br i1 %cmp5, label %for.body7, label %for.end13, !dbg !196 + +for.body7: ; preds = %for.cond4 + %8 = load ptr, ptr %data, align 8, !dbg !197 + %9 = load i64, ptr %i, align 8, !dbg !199 + %arrayidx8 = getelementptr inbounds %struct._twoIntsStruct, ptr %8, i64 %9, !dbg !197 + %10 = load i64, ptr %i, align 8, !dbg !200 + %arrayidx9 = getelementptr inbounds [10 x %struct._twoIntsStruct], ptr %source, i64 0, i64 %10, !dbg !201 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %arrayidx8, ptr align 8 %arrayidx9, i64 8, i1 false), !dbg !201 + %11 = load ptr, ptr %data, align 8, !dbg !202 + %12 = load i64, ptr %i, align 8, !dbg !203 + %mul = mul i64 %12, 8, !dbg !204 + %call10 = call i32 (ptr, i64, ...) @SAFE_BUFACCESS(ptr noundef %11, i64 noundef %mul), !dbg !205 + br label %for.inc11, !dbg !206 + +for.inc11: ; preds = %for.body7 + %13 = load i64, ptr %i, align 8, !dbg !207 + %inc12 = add i64 %13, 1, !dbg !207 + store i64 %inc12, ptr %i, align 8, !dbg !207 + br label %for.cond4, !dbg !208, !llvm.loop !209 + +for.end13: ; preds = %for.cond4 + %14 = load ptr, ptr %data, align 8, !dbg !211 + %arrayidx14 = getelementptr inbounds %struct._twoIntsStruct, ptr %14, i64 0, !dbg !211 + call void @printStructLine(ptr noundef %arrayidx14), !dbg !212 + %15 = load ptr, ptr %data, align 8, !dbg !213 + call void @free(ptr noundef %15) #9, !dbg !214 + ret void, !dbg !215 +} + +declare i32 @SAFE_BUFACCESS(...) #5 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #5 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nounwind allocsize(0) } +attributes #8 = { noreturn nounwind } +attributes #9 = { nounwind } + +!llvm.dbg.cu = !{!22} +!llvm.module.flags = !{!36, !37, !38, !39, !40, !41, !42} +!llvm.ident = !{!43} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 94, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "bc863c9c6ce51d920b40586d91c317b7") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 144, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 18) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 96, type: !9, isLocal: true, isDefinition: true) +!9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 128, elements: !10) +!10 = !{!11} +!11 = !DISubrange(count: 16) +!12 = !DIGlobalVariableExpression(var: !13, expr: !DIExpression()) +!13 = distinct !DIGlobalVariable(scope: null, file: !2, line: 99, type: !14, isLocal: true, isDefinition: true) +!14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 136, elements: !15) +!15 = !{!16} +!16 = !DISubrange(count: 17) +!17 = !DIGlobalVariableExpression(var: !18, expr: !DIExpression()) +!18 = distinct !DIGlobalVariable(scope: null, file: !2, line: 101, type: !19, isLocal: true, isDefinition: true) +!19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) +!20 = !{!21} +!21 = !DISubrange(count: 15) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !35, splitDebugInlining: false, nameTableKind: None) +!23 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "bc863c9c6ce51d920b40586d91c317b7") +!24 = !{!25, !33, !31, !34} +!25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) +!26 = !DIDerivedType(tag: DW_TAG_typedef, name: "twoIntsStruct", file: !27, line: 103, baseType: !28) +!27 = !DIFile(filename: "src/ae_overflow_tests/std_testcase.h", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "88a24111f8dafef29ef3f03c1f00803c") +!28 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_twoIntsStruct", file: !27, line: 99, size: 64, elements: !29) +!29 = !{!30, !32} +!30 = !DIDerivedType(tag: DW_TAG_member, name: "intOne", scope: !28, file: !27, line: 101, baseType: !31, size: 32) +!31 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!32 = !DIDerivedType(tag: DW_TAG_member, name: "intTwo", scope: !28, file: !27, line: 102, baseType: !31, size: 32, offset: 32) +!33 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!34 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!35 = !{!0, !7, !12, !17} +!36 = !{i32 7, !"Dwarf Version", i32 5} +!37 = !{i32 2, !"Debug Info Version", i32 3} +!38 = !{i32 1, !"wchar_size", i32 4} +!39 = !{i32 8, !"PIC Level", i32 2} +!40 = !{i32 7, !"PIE Level", i32 2} +!41 = !{i32 7, !"uwtable", i32 2} +!42 = !{i32 7, !"frame-pointer", i32 2} +!43 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!44 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_bad", scope: !2, file: !2, line: 21, type: !45, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !47) +!45 = !DISubroutineType(types: !46) +!46 = !{null} +!47 = !{} +!48 = !DILocalVariable(name: "data", scope: !44, file: !2, line: 23, type: !25) +!49 = !DILocation(line: 23, column: 21, scope: !44) +!50 = !DILocation(line: 24, column: 10, scope: !44) +!51 = !DILocation(line: 26, column: 29, scope: !44) +!52 = !DILocation(line: 26, column: 10, scope: !44) +!53 = !DILocation(line: 27, column: 9, scope: !54) +!54 = distinct !DILexicalBlock(scope: !44, file: !2, line: 27, column: 9) +!55 = !DILocation(line: 27, column: 14, scope: !54) +!56 = !DILocation(line: 27, column: 9, scope: !44) +!57 = !DILocation(line: 27, column: 24, scope: !58) +!58 = distinct !DILexicalBlock(scope: !54, file: !2, line: 27, column: 23) +!59 = !DILocalVariable(name: "source", scope: !60, file: !2, line: 29, type: !61) +!60 = distinct !DILexicalBlock(scope: !44, file: !2, line: 28, column: 5) +!61 = !DICompositeType(tag: DW_TAG_array_type, baseType: !26, size: 640, elements: !62) +!62 = !{!63} +!63 = !DISubrange(count: 10) +!64 = !DILocation(line: 29, column: 23, scope: !60) +!65 = !DILocalVariable(name: "i", scope: !60, file: !2, line: 30, type: !66) +!66 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !67, line: 46, baseType: !68) +!67 = !DIFile(filename: "llvm-16.0.0.obj/lib/clang/16/include/stddef.h", directory: "/home/SVF-tools/SVF", checksumkind: CSK_MD5, checksum: "f95079da609b0e8f201cb8136304bf3b") +!68 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned) +!69 = !DILocation(line: 30, column: 16, scope: !60) +!70 = !DILocation(line: 32, column: 16, scope: !71) +!71 = distinct !DILexicalBlock(scope: !60, file: !2, line: 32, column: 9) +!72 = !DILocation(line: 32, column: 14, scope: !71) +!73 = !DILocation(line: 32, column: 21, scope: !74) +!74 = distinct !DILexicalBlock(scope: !71, file: !2, line: 32, column: 9) +!75 = !DILocation(line: 32, column: 23, scope: !74) +!76 = !DILocation(line: 32, column: 9, scope: !71) +!77 = !DILocation(line: 34, column: 37, scope: !78) +!78 = distinct !DILexicalBlock(scope: !74, file: !2, line: 33, column: 9) +!79 = !DILocation(line: 34, column: 32, scope: !78) +!80 = !DILocation(line: 34, column: 20, scope: !78) +!81 = !DILocation(line: 34, column: 13, scope: !78) +!82 = !DILocation(line: 34, column: 23, scope: !78) +!83 = !DILocation(line: 34, column: 30, scope: !78) +!84 = !DILocation(line: 35, column: 37, scope: !78) +!85 = !DILocation(line: 35, column: 32, scope: !78) +!86 = !DILocation(line: 35, column: 20, scope: !78) +!87 = !DILocation(line: 35, column: 13, scope: !78) +!88 = !DILocation(line: 35, column: 23, scope: !78) +!89 = !DILocation(line: 35, column: 30, scope: !78) +!90 = !DILocation(line: 36, column: 9, scope: !78) +!91 = !DILocation(line: 32, column: 30, scope: !74) +!92 = !DILocation(line: 32, column: 9, scope: !74) +!93 = distinct !{!93, !76, !94, !95} +!94 = !DILocation(line: 36, column: 9, scope: !71) +!95 = !{!"llvm.loop.mustprogress"} +!96 = !DILocation(line: 38, column: 16, scope: !97) +!97 = distinct !DILexicalBlock(scope: !60, file: !2, line: 38, column: 9) +!98 = !DILocation(line: 38, column: 14, scope: !97) +!99 = !DILocation(line: 38, column: 21, scope: !100) +!100 = distinct !DILexicalBlock(scope: !97, file: !2, line: 38, column: 9) +!101 = !DILocation(line: 38, column: 23, scope: !100) +!102 = !DILocation(line: 38, column: 9, scope: !97) +!103 = !DILocation(line: 40, column: 13, scope: !104) +!104 = distinct !DILexicalBlock(scope: !100, file: !2, line: 39, column: 9) +!105 = !DILocation(line: 40, column: 18, scope: !104) +!106 = !DILocation(line: 40, column: 30, scope: !104) +!107 = !DILocation(line: 40, column: 23, scope: !104) +!108 = !DILocation(line: 41, column: 17, scope: !109) +!109 = distinct !DILexicalBlock(scope: !104, file: !2, line: 41, column: 17) +!110 = !DILocation(line: 41, column: 19, scope: !109) +!111 = !DILocation(line: 41, column: 17, scope: !104) +!112 = !DILocation(line: 42, column: 34, scope: !109) +!113 = !DILocation(line: 42, column: 40, scope: !109) +!114 = !DILocation(line: 42, column: 42, scope: !109) +!115 = !DILocation(line: 42, column: 17, scope: !109) +!116 = !DILocation(line: 43, column: 9, scope: !104) +!117 = !DILocation(line: 38, column: 30, scope: !100) +!118 = !DILocation(line: 38, column: 9, scope: !100) +!119 = distinct !{!119, !102, !120, !95} +!120 = !DILocation(line: 43, column: 9, scope: !97) +!121 = !DILocation(line: 44, column: 26, scope: !60) +!122 = !DILocation(line: 44, column: 9, scope: !60) +!123 = !DILocation(line: 45, column: 14, scope: !60) +!124 = !DILocation(line: 45, column: 9, scope: !60) +!125 = !DILocation(line: 47, column: 1, scope: !44) +!126 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_loop_01_good", scope: !2, file: !2, line: 80, type: !45, scopeLine: 81, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !47) +!127 = !DILocation(line: 82, column: 5, scope: !126) +!128 = !DILocation(line: 83, column: 1, scope: !126) +!129 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 89, type: !130, scopeLine: 90, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !47) +!130 = !DISubroutineType(types: !131) +!131 = !{!31, !31, !132} +!132 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !133, size: 64) +!133 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!134 = !DILocalVariable(name: "argc", arg: 1, scope: !129, file: !2, line: 89, type: !31) +!135 = !DILocation(line: 89, column: 14, scope: !129) +!136 = !DILocalVariable(name: "argv", arg: 2, scope: !129, file: !2, line: 89, type: !132) +!137 = !DILocation(line: 89, column: 27, scope: !129) +!138 = !DILocation(line: 92, column: 22, scope: !129) +!139 = !DILocation(line: 92, column: 12, scope: !129) +!140 = !DILocation(line: 92, column: 5, scope: !129) +!141 = !DILocation(line: 94, column: 5, scope: !129) +!142 = !DILocation(line: 95, column: 5, scope: !129) +!143 = !DILocation(line: 96, column: 5, scope: !129) +!144 = !DILocation(line: 99, column: 5, scope: !129) +!145 = !DILocation(line: 100, column: 5, scope: !129) +!146 = !DILocation(line: 101, column: 5, scope: !129) +!147 = !DILocation(line: 103, column: 5, scope: !129) +!148 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 53, type: !45, scopeLine: 54, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !22, retainedNodes: !47) +!149 = !DILocalVariable(name: "data", scope: !148, file: !2, line: 55, type: !25) +!150 = !DILocation(line: 55, column: 21, scope: !148) +!151 = !DILocation(line: 56, column: 10, scope: !148) +!152 = !DILocation(line: 58, column: 29, scope: !148) +!153 = !DILocation(line: 58, column: 10, scope: !148) +!154 = !DILocation(line: 59, column: 9, scope: !155) +!155 = distinct !DILexicalBlock(scope: !148, file: !2, line: 59, column: 9) +!156 = !DILocation(line: 59, column: 14, scope: !155) +!157 = !DILocation(line: 59, column: 9, scope: !148) +!158 = !DILocation(line: 59, column: 24, scope: !159) +!159 = distinct !DILexicalBlock(scope: !155, file: !2, line: 59, column: 23) +!160 = !DILocalVariable(name: "source", scope: !161, file: !2, line: 61, type: !61) +!161 = distinct !DILexicalBlock(scope: !148, file: !2, line: 60, column: 5) +!162 = !DILocation(line: 61, column: 23, scope: !161) +!163 = !DILocalVariable(name: "i", scope: !161, file: !2, line: 62, type: !66) +!164 = !DILocation(line: 62, column: 16, scope: !161) +!165 = !DILocation(line: 64, column: 16, scope: !166) +!166 = distinct !DILexicalBlock(scope: !161, file: !2, line: 64, column: 9) +!167 = !DILocation(line: 64, column: 14, scope: !166) +!168 = !DILocation(line: 64, column: 21, scope: !169) +!169 = distinct !DILexicalBlock(scope: !166, file: !2, line: 64, column: 9) +!170 = !DILocation(line: 64, column: 23, scope: !169) +!171 = !DILocation(line: 64, column: 9, scope: !166) +!172 = !DILocation(line: 66, column: 37, scope: !173) +!173 = distinct !DILexicalBlock(scope: !169, file: !2, line: 65, column: 9) +!174 = !DILocation(line: 66, column: 32, scope: !173) +!175 = !DILocation(line: 66, column: 20, scope: !173) +!176 = !DILocation(line: 66, column: 13, scope: !173) +!177 = !DILocation(line: 66, column: 23, scope: !173) +!178 = !DILocation(line: 66, column: 30, scope: !173) +!179 = !DILocation(line: 67, column: 37, scope: !173) +!180 = !DILocation(line: 67, column: 32, scope: !173) +!181 = !DILocation(line: 67, column: 20, scope: !173) +!182 = !DILocation(line: 67, column: 13, scope: !173) +!183 = !DILocation(line: 67, column: 23, scope: !173) +!184 = !DILocation(line: 67, column: 30, scope: !173) +!185 = !DILocation(line: 68, column: 9, scope: !173) +!186 = !DILocation(line: 64, column: 30, scope: !169) +!187 = !DILocation(line: 64, column: 9, scope: !169) +!188 = distinct !{!188, !171, !189, !95} +!189 = !DILocation(line: 68, column: 9, scope: !166) +!190 = !DILocation(line: 70, column: 16, scope: !191) +!191 = distinct !DILexicalBlock(scope: !161, file: !2, line: 70, column: 9) +!192 = !DILocation(line: 70, column: 14, scope: !191) +!193 = !DILocation(line: 70, column: 21, scope: !194) +!194 = distinct !DILexicalBlock(scope: !191, file: !2, line: 70, column: 9) +!195 = !DILocation(line: 70, column: 23, scope: !194) +!196 = !DILocation(line: 70, column: 9, scope: !191) +!197 = !DILocation(line: 72, column: 13, scope: !198) +!198 = distinct !DILexicalBlock(scope: !194, file: !2, line: 71, column: 9) +!199 = !DILocation(line: 72, column: 18, scope: !198) +!200 = !DILocation(line: 72, column: 30, scope: !198) +!201 = !DILocation(line: 72, column: 23, scope: !198) +!202 = !DILocation(line: 73, column: 28, scope: !198) +!203 = !DILocation(line: 73, column: 34, scope: !198) +!204 = !DILocation(line: 73, column: 36, scope: !198) +!205 = !DILocation(line: 73, column: 13, scope: !198) +!206 = !DILocation(line: 74, column: 9, scope: !198) +!207 = !DILocation(line: 70, column: 30, scope: !194) +!208 = !DILocation(line: 70, column: 9, scope: !194) +!209 = distinct !{!209, !196, !210, !95} +!210 = !DILocation(line: 74, column: 9, scope: !191) +!211 = !DILocation(line: 75, column: 26, scope: !161) +!212 = !DILocation(line: 75, column: 9, scope: !161) +!213 = !DILocation(line: 76, column: 14, scope: !161) +!214 = !DILocation(line: 76, column: 9, scope: !161) +!215 = !DILocation(line: 78, column: 1, scope: !148) diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c.bc index 1c924910..72493ee7 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c.bc @@ -230,7 +230,7 @@ attributes #9 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !35, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !35, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "0506068d7b490dc18cbe33905bd77fdf") !24 = !{!25, !33, !34} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -251,7 +251,7 @@ attributes #9 = { nounwind } !40 = !{i32 7, !"PIE Level", i32 2} !41 = !{i32 7, !"uwtable", i32 2} !42 = !{i32 7, !"frame-pointer", i32 2} -!43 = !{!"clang version 16.0.0"} +!43 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !44 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_struct_memcpy_01_bad", scope: !2, file: !2, line: 21, type: !45, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !47) !45 = !DISubroutineType(types: !46) !46 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c.bc index 84899fbf..0f5b92f3 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c.bc @@ -193,7 +193,7 @@ attributes #9 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "47d40031f9df60de4af663ed491cc3a3") !24 = !{!25, !29, !30} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -210,7 +210,7 @@ attributes #9 = { nounwind } !36 = !{i32 7, !"PIE Level", i32 2} !37 = !{i32 7, !"uwtable", i32 2} !38 = !{i32 7, !"frame-pointer", i32 2} -!39 = !{!"clang version 16.0.0"} +!39 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !40 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_memmove_01_bad", scope: !2, file: !2, line: 23, type: !41, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !43) !41 = !DISubroutineType(types: !42) !42 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c.bc index ed9e02bf..86e4e6b6 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c.bc @@ -193,7 +193,7 @@ attributes #8 = { nounwind } !25 = !DICompositeType(tag: DW_TAG_array_type, baseType: !10, size: 120, elements: !26) !26 = !{!27} !27 = !DISubrange(count: 15) -!28 = distinct !DICompileUnit(language: DW_LANG_C11, file: !29, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !30, globals: !36, splitDebugInlining: false, nameTableKind: None) +!28 = distinct !DICompileUnit(language: DW_LANG_C11, file: !29, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !30, globals: !36, splitDebugInlining: false, nameTableKind: None) !29 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b252cf95367f0737fffb4dad814851c1") !30 = !{!31, !34, !35} !31 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !32, size: 64) @@ -209,7 +209,7 @@ attributes #8 = { nounwind } !41 = !{i32 7, !"PIE Level", i32 2} !42 = !{i32 7, !"uwtable", i32 2} !43 = !{i32 7, !"frame-pointer", i32 2} -!44 = !{!"clang version 16.0.0"} +!44 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !45 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE805_wchar_t_snprintf_01_bad", scope: !2, file: !2, line: 29, type: !46, scopeLine: 30, spFlags: DISPFlagDefinition, unit: !28, retainedNodes: !48) !46 = !DISubroutineType(types: !47) !47 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c.bc index d695b387..582ffa4b 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c.bc @@ -213,7 +213,7 @@ attributes #12 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b598979fb9b05d5a386d221f81d7c6a3") !24 = !{!25, !26, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -227,7 +227,7 @@ attributes #12 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE806_char_memmove_01_bad", scope: !2, file: !2, line: 23, type: !38, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c.bc index 64c8bed6..d13b413f 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c.bc @@ -218,7 +218,7 @@ attributes #12 = { nounwind willreturn memory(read) } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "0b00b6dda1e3158f71afbecf4bd3ef8b") !24 = !{!25, !29, !30} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -235,7 +235,7 @@ attributes #12 = { nounwind willreturn memory(read) } !36 = !{i32 7, !"PIE Level", i32 2} !37 = !{i32 7, !"uwtable", i32 2} !38 = !{i32 7, !"frame-pointer", i32 2} -!39 = !{!"clang version 16.0.0"} +!39 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !40 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_CWE806_wchar_t_memmove_01_bad", scope: !2, file: !2, line: 23, type: !41, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !43) !41 = !DISubroutineType(types: !42) !42 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c.bc index 9f2694a9..bde5ecaa 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c.bc @@ -185,7 +185,7 @@ attributes #9 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8a19d0e4f742dcf8376c17d4c5b806ab") !24 = !{!25, !26, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -199,7 +199,7 @@ attributes #9 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_dest_char_cpy_01_bad", scope: !2, file: !2, line: 23, type: !38, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c.bc index 1cf69511..ed198a6a 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c.bc @@ -186,7 +186,7 @@ attributes #8 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "0ecfe8fe3d3c1db26d13918e6421a420") !24 = !{!25, !29, !30} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -203,7 +203,7 @@ attributes #8 = { nounwind } !36 = !{i32 7, !"PIE Level", i32 2} !37 = !{i32 7, !"uwtable", i32 2} !38 = !{i32 7, !"frame-pointer", i32 2} -!39 = !{!"clang version 16.0.0"} +!39 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !40 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_dest_wchar_t_cpy_01_bad", scope: !2, file: !2, line: 23, type: !41, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !43) !41 = !DISubroutineType(types: !42) !42 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c.bc index 5b28be8b..543beb75 100644 --- a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c.bc @@ -202,7 +202,7 @@ attributes #11 = { nounwind willreturn memory(read) } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d03af0e7cb441c17db09625ca9fdec46") !24 = !{!25, !26, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -216,7 +216,7 @@ attributes #11 = { nounwind willreturn memory(read) } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__c_src_char_cpy_01_bad", scope: !2, file: !2, line: 23, type: !38, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c.bc new file mode 100644 index 00000000..e06ce814 --- /dev/null +++ b/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c.bc @@ -0,0 +1,462 @@ +; ModuleID = '/home/SVF-tools/SVF/Test-Suite/test_cases_bc/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c.bc' +source_filename = "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [64 x i8] c"This is a long string that exceeds the reallocated buffer size.\00", align 1, !dbg !0 +@.str.1 = private unnamed_addr constant [18 x i8] c"Calling good()...\00", align 1, !dbg !7 +@.str.2 = private unnamed_addr constant [16 x i8] c"Finished good()\00", align 1, !dbg !12 +@.str.3 = private unnamed_addr constant [17 x i8] c"Calling bad()...\00", align 1, !dbg !17 +@.str.4 = private unnamed_addr constant [15 x i8] c"Finished bad()\00", align 1, !dbg !22 +@.str.5 = private unnamed_addr constant [13 x i8] c"Short string\00", align 1, !dbg !27 +@.str.6 = private unnamed_addr constant [33 x i8] c" with additional data that fits.\00", align 1, !dbg !32 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__realloc_01_bad() #0 !dbg !52 { +entry: + %data = alloca ptr, align 8 + %dest = alloca [50 x i8], align 16 + %i = alloca i64, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !56, metadata !DIExpression()), !dbg !57 + store ptr null, ptr %data, align 8, !dbg !58 + %call = call noalias ptr @malloc(i64 noundef 100) #9, !dbg !59 + store ptr %call, ptr %data, align 8, !dbg !60 + %0 = load ptr, ptr %data, align 8, !dbg !61 + %cmp = icmp eq ptr %0, null, !dbg !63 + br i1 %cmp, label %if.then, label %if.end, !dbg !64 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #10, !dbg !65 + unreachable, !dbg !65 + +if.end: ; preds = %entry + %1 = load ptr, ptr %data, align 8, !dbg !67 + %call1 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str) #11, !dbg !68 + %2 = load ptr, ptr %data, align 8, !dbg !69 + %call2 = call ptr @realloc(ptr noundef %2, i64 noundef 50) #12, !dbg !70 + store ptr %call2, ptr %data, align 8, !dbg !71 + %3 = load ptr, ptr %data, align 8, !dbg !72 + %cmp3 = icmp eq ptr %3, null, !dbg !74 + br i1 %cmp3, label %if.then4, label %if.end5, !dbg !75 + +if.then4: ; preds = %if.end + call void @exit(i32 noundef -1) #10, !dbg !76 + unreachable, !dbg !76 + +if.end5: ; preds = %if.end + call void @llvm.dbg.declare(metadata ptr %dest, metadata !78, metadata !DIExpression()), !dbg !83 + call void @llvm.memset.p0.i64(ptr align 16 %dest, i8 0, i64 50, i1 false), !dbg !83 + call void @llvm.dbg.declare(metadata ptr %i, metadata !84, metadata !DIExpression()), !dbg !88 + store i64 0, ptr %i, align 8, !dbg !89 + br label %for.cond, !dbg !91 + +for.cond: ; preds = %for.inc, %if.end5 + %4 = load i64, ptr %i, align 8, !dbg !92 + %5 = load ptr, ptr %data, align 8, !dbg !94 + %call6 = call i64 @strlen(ptr noundef %5) #13, !dbg !95 + %cmp7 = icmp ult i64 %4, %call6, !dbg !96 + br i1 %cmp7, label %for.body, label %for.end, !dbg !97 + +for.body: ; preds = %for.cond + %6 = load ptr, ptr %data, align 8, !dbg !98 + %7 = load i64, ptr %i, align 8, !dbg !100 + %arrayidx = getelementptr inbounds i8, ptr %6, i64 %7, !dbg !98 + %8 = load i8, ptr %arrayidx, align 1, !dbg !98 + %9 = load i64, ptr %i, align 8, !dbg !101 + %arrayidx8 = getelementptr inbounds [50 x i8], ptr %dest, i64 0, i64 %9, !dbg !102 + store i8 %8, ptr %arrayidx8, align 1, !dbg !103 + br label %for.inc, !dbg !104 + +for.inc: ; preds = %for.body + %10 = load i64, ptr %i, align 8, !dbg !105 + %inc = add i64 %10, 1, !dbg !105 + store i64 %inc, ptr %i, align 8, !dbg !105 + br label %for.cond, !dbg !106, !llvm.loop !107 + +for.end: ; preds = %for.cond + %arraydecay = getelementptr inbounds [50 x i8], ptr %dest, i64 0, i64 0, !dbg !110 + %11 = load ptr, ptr %data, align 8, !dbg !111 + %call9 = call i64 @strlen(ptr noundef %11) #13, !dbg !112 + %sub = sub i64 %call9, 1, !dbg !113 + %mul = mul i64 %sub, 1, !dbg !114 + %call10 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %arraydecay, i64 noundef %mul), !dbg !115 + %arrayidx11 = getelementptr inbounds [50 x i8], ptr %dest, i64 0, i64 49, !dbg !116 + store i8 0, ptr %arrayidx11, align 1, !dbg !117 + %arraydecay12 = getelementptr inbounds [50 x i8], ptr %dest, i64 0, i64 0, !dbg !118 + call void @printLine(ptr noundef %arraydecay12), !dbg !119 + %12 = load ptr, ptr %data, align 8, !dbg !120 + call void @free(ptr noundef %12) #11, !dbg !121 + ret void, !dbg !122 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: nounwind allocsize(0) +declare noalias ptr @malloc(i64 noundef) #2 + +; Function Attrs: noreturn nounwind +declare void @exit(i32 noundef) #3 + +; Function Attrs: nounwind +declare ptr @strcpy(ptr noundef, ptr noundef) #4 + +; Function Attrs: nounwind allocsize(1) +declare ptr @realloc(ptr noundef, i64 noundef) #5 + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6 + +; Function Attrs: nounwind willreturn memory(read) +declare i64 @strlen(ptr noundef) #7 + +declare i32 @UNSAFE_BUFACCESS(...) #8 + +declare void @printLine(ptr noundef) #8 + +; Function Attrs: nounwind +declare void @free(ptr noundef) #4 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @CWE122_Heap_Based_Buffer_Overflow__realloc_01_good() #0 !dbg !123 { +entry: + call void @goodG2B(), !dbg !124 + ret void, !dbg !125 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !126 { +entry: + %retval = alloca i32, align 4 + %argc.addr = alloca i32, align 4 + %argv.addr = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + store i32 %argc, ptr %argc.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !131, metadata !DIExpression()), !dbg !132 + store ptr %argv, ptr %argv.addr, align 8 + call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !133, metadata !DIExpression()), !dbg !134 + %call = call i64 @time(ptr noundef null) #11, !dbg !135 + %conv = trunc i64 %call to i32, !dbg !136 + call void @srand(i32 noundef %conv) #11, !dbg !137 + call void @printLine(ptr noundef @.str.1), !dbg !138 + call void @CWE122_Heap_Based_Buffer_Overflow__realloc_01_good(), !dbg !139 + call void @printLine(ptr noundef @.str.2), !dbg !140 + call void @printLine(ptr noundef @.str.3), !dbg !141 + call void @CWE122_Heap_Based_Buffer_Overflow__realloc_01_bad(), !dbg !142 + call void @printLine(ptr noundef @.str.4), !dbg !143 + ret i32 0, !dbg !144 +} + +; Function Attrs: nounwind +declare void @srand(i32 noundef) #4 + +; Function Attrs: nounwind +declare i64 @time(ptr noundef) #4 + +; Function Attrs: noinline nounwind optnone uwtable +define internal void @goodG2B() #0 !dbg !145 { +entry: + %data = alloca ptr, align 8 + %dest = alloca [100 x i8], align 16 + %i = alloca i64, align 8 + call void @llvm.dbg.declare(metadata ptr %data, metadata !146, metadata !DIExpression()), !dbg !147 + store ptr null, ptr %data, align 8, !dbg !148 + %call = call noalias ptr @malloc(i64 noundef 50) #9, !dbg !149 + store ptr %call, ptr %data, align 8, !dbg !150 + %0 = load ptr, ptr %data, align 8, !dbg !151 + %cmp = icmp eq ptr %0, null, !dbg !153 + br i1 %cmp, label %if.then, label %if.end, !dbg !154 + +if.then: ; preds = %entry + call void @exit(i32 noundef -1) #10, !dbg !155 + unreachable, !dbg !155 + +if.end: ; preds = %entry + %1 = load ptr, ptr %data, align 8, !dbg !157 + %call1 = call ptr @strcpy(ptr noundef %1, ptr noundef @.str.5) #11, !dbg !158 + %2 = load ptr, ptr %data, align 8, !dbg !159 + %call2 = call ptr @realloc(ptr noundef %2, i64 noundef 100) #12, !dbg !160 + store ptr %call2, ptr %data, align 8, !dbg !161 + %3 = load ptr, ptr %data, align 8, !dbg !162 + %cmp3 = icmp eq ptr %3, null, !dbg !164 + br i1 %cmp3, label %if.then4, label %if.end5, !dbg !165 + +if.then4: ; preds = %if.end + call void @exit(i32 noundef -1) #10, !dbg !166 + unreachable, !dbg !166 + +if.end5: ; preds = %if.end + %4 = load ptr, ptr %data, align 8, !dbg !168 + %call6 = call ptr @strcat(ptr noundef %4, ptr noundef @.str.6) #11, !dbg !169 + call void @llvm.dbg.declare(metadata ptr %dest, metadata !170, metadata !DIExpression()), !dbg !175 + call void @llvm.memset.p0.i64(ptr align 16 %dest, i8 0, i64 100, i1 false), !dbg !175 + call void @llvm.dbg.declare(metadata ptr %i, metadata !176, metadata !DIExpression()), !dbg !177 + store i64 0, ptr %i, align 8, !dbg !178 + br label %for.cond, !dbg !180 + +for.cond: ; preds = %for.inc, %if.end5 + %5 = load i64, ptr %i, align 8, !dbg !181 + %cmp7 = icmp ult i64 %5, 99, !dbg !183 + br i1 %cmp7, label %for.body, label %for.end, !dbg !184 + +for.body: ; preds = %for.cond + %6 = load ptr, ptr %data, align 8, !dbg !185 + %7 = load i64, ptr %i, align 8, !dbg !187 + %arrayidx = getelementptr inbounds i8, ptr %6, i64 %7, !dbg !185 + %8 = load i8, ptr %arrayidx, align 1, !dbg !185 + %9 = load i64, ptr %i, align 8, !dbg !188 + %arrayidx8 = getelementptr inbounds [100 x i8], ptr %dest, i64 0, i64 %9, !dbg !189 + store i8 %8, ptr %arrayidx8, align 1, !dbg !190 + %arraydecay = getelementptr inbounds [100 x i8], ptr %dest, i64 0, i64 0, !dbg !191 + %10 = load i64, ptr %i, align 8, !dbg !192 + %mul = mul i64 %10, 1, !dbg !193 + %call9 = call i32 (ptr, i64, ...) @SAFE_BUFACCESS(ptr noundef %arraydecay, i64 noundef %mul), !dbg !194 + br label %for.inc, !dbg !195 + +for.inc: ; preds = %for.body + %11 = load i64, ptr %i, align 8, !dbg !196 + %inc = add i64 %11, 1, !dbg !196 + store i64 %inc, ptr %i, align 8, !dbg !196 + br label %for.cond, !dbg !197, !llvm.loop !198 + +for.end: ; preds = %for.cond + %arrayidx10 = getelementptr inbounds [100 x i8], ptr %dest, i64 0, i64 99, !dbg !200 + store i8 0, ptr %arrayidx10, align 1, !dbg !201 + %arraydecay11 = getelementptr inbounds [100 x i8], ptr %dest, i64 0, i64 0, !dbg !202 + call void @printLine(ptr noundef %arraydecay11), !dbg !203 + %12 = load ptr, ptr %data, align 8, !dbg !204 + call void @free(ptr noundef %12) #11, !dbg !205 + ret void, !dbg !206 +} + +; Function Attrs: nounwind +declare ptr @strcat(ptr noundef, ptr noundef) #4 + +declare i32 @SAFE_BUFACCESS(...) #8 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { nounwind allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind allocsize(1) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #7 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nounwind allocsize(0) } +attributes #10 = { noreturn nounwind } +attributes #11 = { nounwind } +attributes #12 = { nounwind allocsize(1) } +attributes #13 = { nounwind willreturn memory(read) } + +!llvm.dbg.cu = !{!37} +!llvm.module.flags = !{!44, !45, !46, !47, !48, !49, !50} +!llvm.ident = !{!51} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 12, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "2083490f62d23f03402a47d8a30c3f03") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 512, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 64) +!7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) +!8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 82, type: !9, isLocal: true, isDefinition: true) +!9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 144, elements: !10) +!10 = !{!11} +!11 = !DISubrange(count: 18) +!12 = !DIGlobalVariableExpression(var: !13, expr: !DIExpression()) +!13 = distinct !DIGlobalVariable(scope: null, file: !2, line: 84, type: !14, isLocal: true, isDefinition: true) +!14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 128, elements: !15) +!15 = !{!16} +!16 = !DISubrange(count: 16) +!17 = !DIGlobalVariableExpression(var: !18, expr: !DIExpression()) +!18 = distinct !DIGlobalVariable(scope: null, file: !2, line: 87, type: !19, isLocal: true, isDefinition: true) +!19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 136, elements: !20) +!20 = !{!21} +!21 = !DISubrange(count: 17) +!22 = !DIGlobalVariableExpression(var: !23, expr: !DIExpression()) +!23 = distinct !DIGlobalVariable(scope: null, file: !2, line: 89, type: !24, isLocal: true, isDefinition: true) +!24 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !25) +!25 = !{!26} +!26 = !DISubrange(count: 15) +!27 = !DIGlobalVariableExpression(var: !28, expr: !DIExpression()) +!28 = distinct !DIGlobalVariable(scope: null, file: !2, line: 42, type: !29, isLocal: true, isDefinition: true) +!29 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 104, elements: !30) +!30 = !{!31} +!31 = !DISubrange(count: 13) +!32 = !DIGlobalVariableExpression(var: !33, expr: !DIExpression()) +!33 = distinct !DIGlobalVariable(scope: null, file: !2, line: 46, type: !34, isLocal: true, isDefinition: true) +!34 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 264, elements: !35) +!35 = !{!36} +!36 = !DISubrange(count: 33) +!37 = distinct !DICompileUnit(language: DW_LANG_C11, file: !38, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !39, globals: !43, splitDebugInlining: false, nameTableKind: None) +!38 = !DIFile(filename: "/home/SVF-tools/SVF/Test-Suite/src/ae_overflow_tests/CWE122_Heap_Based_Buffer_Overflow__realloc_01.c", directory: "/home/SVF-tools/SVF/Test-Suite", checksumkind: CSK_MD5, checksum: "2083490f62d23f03402a47d8a30c3f03") +!39 = !{!40, !41, !42} +!40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!41 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) +!42 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!43 = !{!0, !7, !12, !17, !22, !27, !32} +!44 = !{i32 7, !"Dwarf Version", i32 5} +!45 = !{i32 2, !"Debug Info Version", i32 3} +!46 = !{i32 1, !"wchar_size", i32 4} +!47 = !{i32 8, !"PIC Level", i32 2} +!48 = !{i32 7, !"PIE Level", i32 2} +!49 = !{i32 7, !"uwtable", i32 2} +!50 = !{i32 7, !"frame-pointer", i32 2} +!51 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!52 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__realloc_01_bad", scope: !2, file: !2, line: 5, type: !53, scopeLine: 6, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !55) +!53 = !DISubroutineType(types: !54) +!54 = !{null} +!55 = !{} +!56 = !DILocalVariable(name: "data", scope: !52, file: !2, line: 7, type: !40) +!57 = !DILocation(line: 7, column: 12, scope: !52) +!58 = !DILocation(line: 8, column: 10, scope: !52) +!59 = !DILocation(line: 10, column: 20, scope: !52) +!60 = !DILocation(line: 10, column: 10, scope: !52) +!61 = !DILocation(line: 11, column: 9, scope: !62) +!62 = distinct !DILexicalBlock(scope: !52, file: !2, line: 11, column: 9) +!63 = !DILocation(line: 11, column: 14, scope: !62) +!64 = !DILocation(line: 11, column: 9, scope: !52) +!65 = !DILocation(line: 11, column: 24, scope: !66) +!66 = distinct !DILexicalBlock(scope: !62, file: !2, line: 11, column: 23) +!67 = !DILocation(line: 12, column: 12, scope: !52) +!68 = !DILocation(line: 12, column: 5, scope: !52) +!69 = !DILocation(line: 14, column: 28, scope: !52) +!70 = !DILocation(line: 14, column: 20, scope: !52) +!71 = !DILocation(line: 14, column: 10, scope: !52) +!72 = !DILocation(line: 15, column: 9, scope: !73) +!73 = distinct !DILexicalBlock(scope: !52, file: !2, line: 15, column: 9) +!74 = !DILocation(line: 15, column: 14, scope: !73) +!75 = !DILocation(line: 15, column: 9, scope: !52) +!76 = !DILocation(line: 15, column: 24, scope: !77) +!77 = distinct !DILexicalBlock(scope: !73, file: !2, line: 15, column: 23) +!78 = !DILocalVariable(name: "dest", scope: !79, file: !2, line: 17, type: !80) +!79 = distinct !DILexicalBlock(scope: !52, file: !2, line: 16, column: 5) +!80 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 400, elements: !81) +!81 = !{!82} +!82 = !DISubrange(count: 50) +!83 = !DILocation(line: 17, column: 14, scope: !79) +!84 = !DILocalVariable(name: "i", scope: !79, file: !2, line: 18, type: !85) +!85 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !86, line: 46, baseType: !87) +!86 = !DIFile(filename: "llvm-16.0.0.obj/lib/clang/16/include/stddef.h", directory: "/home/SVF-tools/SVF", checksumkind: CSK_MD5, checksum: "f95079da609b0e8f201cb8136304bf3b") +!87 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned) +!88 = !DILocation(line: 18, column: 16, scope: !79) +!89 = !DILocation(line: 20, column: 16, scope: !90) +!90 = distinct !DILexicalBlock(scope: !79, file: !2, line: 20, column: 9) +!91 = !DILocation(line: 20, column: 14, scope: !90) +!92 = !DILocation(line: 20, column: 21, scope: !93) +!93 = distinct !DILexicalBlock(scope: !90, file: !2, line: 20, column: 9) +!94 = !DILocation(line: 20, column: 32, scope: !93) +!95 = !DILocation(line: 20, column: 25, scope: !93) +!96 = !DILocation(line: 20, column: 23, scope: !93) +!97 = !DILocation(line: 20, column: 9, scope: !90) +!98 = !DILocation(line: 22, column: 23, scope: !99) +!99 = distinct !DILexicalBlock(scope: !93, file: !2, line: 21, column: 9) +!100 = !DILocation(line: 22, column: 28, scope: !99) +!101 = !DILocation(line: 22, column: 18, scope: !99) +!102 = !DILocation(line: 22, column: 13, scope: !99) +!103 = !DILocation(line: 22, column: 21, scope: !99) +!104 = !DILocation(line: 23, column: 9, scope: !99) +!105 = !DILocation(line: 20, column: 40, scope: !93) +!106 = !DILocation(line: 20, column: 9, scope: !93) +!107 = distinct !{!107, !97, !108, !109} +!108 = !DILocation(line: 23, column: 9, scope: !90) +!109 = !{!"llvm.loop.mustprogress"} +!110 = !DILocation(line: 24, column: 26, scope: !79) +!111 = !DILocation(line: 24, column: 40, scope: !79) +!112 = !DILocation(line: 24, column: 33, scope: !79) +!113 = !DILocation(line: 24, column: 46, scope: !79) +!114 = !DILocation(line: 24, column: 51, scope: !79) +!115 = !DILocation(line: 24, column: 9, scope: !79) +!116 = !DILocation(line: 25, column: 9, scope: !79) +!117 = !DILocation(line: 25, column: 18, scope: !79) +!118 = !DILocation(line: 26, column: 19, scope: !79) +!119 = !DILocation(line: 26, column: 9, scope: !79) +!120 = !DILocation(line: 27, column: 14, scope: !79) +!121 = !DILocation(line: 27, column: 9, scope: !79) +!122 = !DILocation(line: 29, column: 1, scope: !52) +!123 = distinct !DISubprogram(name: "CWE122_Heap_Based_Buffer_Overflow__realloc_01_good", scope: !2, file: !2, line: 62, type: !53, scopeLine: 63, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !55) +!124 = !DILocation(line: 64, column: 5, scope: !123) +!125 = !DILocation(line: 65, column: 1, scope: !123) +!126 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 77, type: !127, scopeLine: 78, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !55) +!127 = !DISubroutineType(types: !128) +!128 = !{!129, !129, !130} +!129 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!130 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !40, size: 64) +!131 = !DILocalVariable(name: "argc", arg: 1, scope: !126, file: !2, line: 77, type: !129) +!132 = !DILocation(line: 77, column: 14, scope: !126) +!133 = !DILocalVariable(name: "argv", arg: 2, scope: !126, file: !2, line: 77, type: !130) +!134 = !DILocation(line: 77, column: 27, scope: !126) +!135 = !DILocation(line: 80, column: 22, scope: !126) +!136 = !DILocation(line: 80, column: 12, scope: !126) +!137 = !DILocation(line: 80, column: 5, scope: !126) +!138 = !DILocation(line: 82, column: 5, scope: !126) +!139 = !DILocation(line: 83, column: 5, scope: !126) +!140 = !DILocation(line: 84, column: 5, scope: !126) +!141 = !DILocation(line: 87, column: 5, scope: !126) +!142 = !DILocation(line: 88, column: 5, scope: !126) +!143 = !DILocation(line: 89, column: 5, scope: !126) +!144 = !DILocation(line: 91, column: 5, scope: !126) +!145 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 35, type: !53, scopeLine: 36, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !37, retainedNodes: !55) +!146 = !DILocalVariable(name: "data", scope: !145, file: !2, line: 37, type: !40) +!147 = !DILocation(line: 37, column: 12, scope: !145) +!148 = !DILocation(line: 38, column: 10, scope: !145) +!149 = !DILocation(line: 40, column: 20, scope: !145) +!150 = !DILocation(line: 40, column: 10, scope: !145) +!151 = !DILocation(line: 41, column: 9, scope: !152) +!152 = distinct !DILexicalBlock(scope: !145, file: !2, line: 41, column: 9) +!153 = !DILocation(line: 41, column: 14, scope: !152) +!154 = !DILocation(line: 41, column: 9, scope: !145) +!155 = !DILocation(line: 41, column: 24, scope: !156) +!156 = distinct !DILexicalBlock(scope: !152, file: !2, line: 41, column: 23) +!157 = !DILocation(line: 42, column: 12, scope: !145) +!158 = !DILocation(line: 42, column: 5, scope: !145) +!159 = !DILocation(line: 44, column: 28, scope: !145) +!160 = !DILocation(line: 44, column: 20, scope: !145) +!161 = !DILocation(line: 44, column: 10, scope: !145) +!162 = !DILocation(line: 45, column: 9, scope: !163) +!163 = distinct !DILexicalBlock(scope: !145, file: !2, line: 45, column: 9) +!164 = !DILocation(line: 45, column: 14, scope: !163) +!165 = !DILocation(line: 45, column: 9, scope: !145) +!166 = !DILocation(line: 45, column: 24, scope: !167) +!167 = distinct !DILexicalBlock(scope: !163, file: !2, line: 45, column: 23) +!168 = !DILocation(line: 46, column: 12, scope: !145) +!169 = !DILocation(line: 46, column: 5, scope: !145) +!170 = !DILocalVariable(name: "dest", scope: !171, file: !2, line: 48, type: !172) +!171 = distinct !DILexicalBlock(scope: !145, file: !2, line: 47, column: 5) +!172 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 800, elements: !173) +!173 = !{!174} +!174 = !DISubrange(count: 100) +!175 = !DILocation(line: 48, column: 14, scope: !171) +!176 = !DILocalVariable(name: "i", scope: !171, file: !2, line: 49, type: !85) +!177 = !DILocation(line: 49, column: 16, scope: !171) +!178 = !DILocation(line: 51, column: 16, scope: !179) +!179 = distinct !DILexicalBlock(scope: !171, file: !2, line: 51, column: 9) +!180 = !DILocation(line: 51, column: 14, scope: !179) +!181 = !DILocation(line: 51, column: 21, scope: !182) +!182 = distinct !DILexicalBlock(scope: !179, file: !2, line: 51, column: 9) +!183 = !DILocation(line: 51, column: 23, scope: !182) +!184 = !DILocation(line: 51, column: 9, scope: !179) +!185 = !DILocation(line: 53, column: 23, scope: !186) +!186 = distinct !DILexicalBlock(scope: !182, file: !2, line: 52, column: 9) +!187 = !DILocation(line: 53, column: 28, scope: !186) +!188 = !DILocation(line: 53, column: 18, scope: !186) +!189 = !DILocation(line: 53, column: 13, scope: !186) +!190 = !DILocation(line: 53, column: 21, scope: !186) +!191 = !DILocation(line: 54, column: 28, scope: !186) +!192 = !DILocation(line: 54, column: 34, scope: !186) +!193 = !DILocation(line: 54, column: 36, scope: !186) +!194 = !DILocation(line: 54, column: 13, scope: !186) +!195 = !DILocation(line: 55, column: 9, scope: !186) +!196 = !DILocation(line: 51, column: 30, scope: !182) +!197 = !DILocation(line: 51, column: 9, scope: !182) +!198 = distinct !{!198, !184, !199, !109} +!199 = !DILocation(line: 55, column: 9, scope: !179) +!200 = !DILocation(line: 56, column: 9, scope: !171) +!201 = !DILocation(line: 56, column: 18, scope: !171) +!202 = !DILocation(line: 57, column: 19, scope: !171) +!203 = !DILocation(line: 57, column: 9, scope: !171) +!204 = !DILocation(line: 58, column: 14, scope: !171) +!205 = !DILocation(line: 58, column: 9, scope: !171) +!206 = !DILocation(line: 60, column: 1, scope: !145) diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c.bc index c77711b8..c0b496d6 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c.bc @@ -258,7 +258,7 @@ attributes #7 = { nounwind } !31 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 288, elements: !32) !32 = !{!33} !33 = !DISubrange(count: 36) -!34 = distinct !DICompileUnit(language: DW_LANG_C11, file: !35, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !36, globals: !39, splitDebugInlining: false, nameTableKind: None) +!34 = distinct !DICompileUnit(language: DW_LANG_C11, file: !35, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !36, globals: !39, splitDebugInlining: false, nameTableKind: None) !35 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fgets_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a179e9a2901e63afe956806572d6a04a") !36 = !{!37, !38} !37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -271,7 +271,7 @@ attributes #7 = { nounwind } !44 = !{i32 7, !"PIE Level", i32 2} !45 = !{i32 7, !"uwtable", i32 2} !46 = !{i32 7, !"frame-pointer", i32 2} -!47 = !{!"clang version 16.0.0"} +!47 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !48 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__CWE129_fgets_01_bad", scope: !2, file: !2, line: 24, type: !49, scopeLine: 25, spFlags: DISPFlagDefinition, unit: !34, retainedNodes: !51) !49 = !DISubroutineType(types: !50) !50 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c.bc index f15abd0d..ab54c69c 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c.bc @@ -220,7 +220,7 @@ attributes #5 = { nounwind } !34 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 288, elements: !35) !35 = !{!36} !36 = !DISubrange(count: 36) -!37 = distinct !DICompileUnit(language: DW_LANG_C11, file: !38, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !39, globals: !41, splitDebugInlining: false, nameTableKind: None) +!37 = distinct !DICompileUnit(language: DW_LANG_C11, file: !38, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !39, globals: !41, splitDebugInlining: false, nameTableKind: None) !38 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_fscanf_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "41aeea6fcf31b631ab24d92c7ac81d5a") !39 = !{!40} !40 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -232,7 +232,7 @@ attributes #5 = { nounwind } !46 = !{i32 7, !"PIE Level", i32 2} !47 = !{i32 7, !"uwtable", i32 2} !48 = !{i32 7, !"frame-pointer", i32 2} -!49 = !{!"clang version 16.0.0"} +!49 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !50 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__CWE129_fscanf_01_bad", scope: !2, file: !2, line: 22, type: !51, scopeLine: 23, spFlags: DISPFlagDefinition, unit: !37, retainedNodes: !53) !51 = !DISubroutineType(types: !52) !52 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c.bc index 76b254e2..0c2e3cef 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c.bc @@ -14,7 +14,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.5 = private unnamed_addr constant [36 x i8] c"ERROR: Array index is out-of-bounds\00", align 1, !dbg !27 ; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @CWE126_Buffer_Overread__CWE129_listen_socket_01_bad() #0 !dbg !104 { +define dso_local void @CWE126_Buffer_Overread__CWE129_listen_socket_01_bad() #0 !dbg !107 { entry: %data = alloca i32, align 4 %recvResult = alloca i32, align 4 @@ -23,139 +23,139 @@ entry: %acceptSocket = alloca i32, align 4 %inputBuffer = alloca [14 x i8], align 1 %buffer = alloca [10 x i32], align 16 - call void @llvm.dbg.declare(metadata ptr %data, metadata !108, metadata !DIExpression()), !dbg !110 - store i32 -1, ptr %data, align 4, !dbg !111 - call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !112, metadata !DIExpression()), !dbg !114 - call void @llvm.dbg.declare(metadata ptr %service, metadata !115, metadata !DIExpression()), !dbg !132 - call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !133, metadata !DIExpression()), !dbg !134 - store i32 -1, ptr %listenSocket, align 4, !dbg !134 - call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !135, metadata !DIExpression()), !dbg !136 - store i32 -1, ptr %acceptSocket, align 4, !dbg !136 - call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !137, metadata !DIExpression()), !dbg !138 - br label %do.body, !dbg !139 + call void @llvm.dbg.declare(metadata ptr %data, metadata !111, metadata !DIExpression()), !dbg !113 + store i32 -1, ptr %data, align 4, !dbg !114 + call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !115, metadata !DIExpression()), !dbg !117 + call void @llvm.dbg.declare(metadata ptr %service, metadata !118, metadata !DIExpression()), !dbg !135 + call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !136, metadata !DIExpression()), !dbg !137 + store i32 -1, ptr %listenSocket, align 4, !dbg !137 + call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !138, metadata !DIExpression()), !dbg !139 + store i32 -1, ptr %acceptSocket, align 4, !dbg !139 + call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !140, metadata !DIExpression()), !dbg !141 + br label %do.body, !dbg !142 do.body: ; preds = %entry - %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !140 - store i32 %call, ptr %listenSocket, align 4, !dbg !142 - %0 = load i32, ptr %listenSocket, align 4, !dbg !143 - %cmp = icmp eq i32 %0, -1, !dbg !145 - br i1 %cmp, label %if.then, label %if.end, !dbg !146 + %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !143 + store i32 %call, ptr %listenSocket, align 4, !dbg !145 + %0 = load i32, ptr %listenSocket, align 4, !dbg !146 + %cmp = icmp eq i32 %0, -1, !dbg !148 + br i1 %cmp, label %if.then, label %if.end, !dbg !149 if.then: ; preds = %do.body - br label %do.end, !dbg !147 + br label %do.end, !dbg !150 if.end: ; preds = %do.body - call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !149 - %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !150 - store i16 2, ptr %sin_family, align 4, !dbg !151 - %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !152 - %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !153 - store i32 0, ptr %s_addr, align 4, !dbg !154 - %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !155 - %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !156 - store i16 %call1, ptr %sin_port, align 2, !dbg !157 - %1 = load i32, ptr %listenSocket, align 4, !dbg !158 - %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !160 - %cmp3 = icmp eq i32 %call2, -1, !dbg !161 - br i1 %cmp3, label %if.then4, label %if.end5, !dbg !162 + call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !152 + %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !153 + store i16 2, ptr %sin_family, align 4, !dbg !154 + %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !155 + %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !156 + store i32 0, ptr %s_addr, align 4, !dbg !157 + %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !158 + %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !159 + store i16 %call1, ptr %sin_port, align 2, !dbg !160 + %1 = load i32, ptr %listenSocket, align 4, !dbg !161 + %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !163 + %cmp3 = icmp eq i32 %call2, -1, !dbg !164 + br i1 %cmp3, label %if.then4, label %if.end5, !dbg !165 if.then4: ; preds = %if.end - br label %do.end, !dbg !163 + br label %do.end, !dbg !166 if.end5: ; preds = %if.end - %2 = load i32, ptr %listenSocket, align 4, !dbg !165 - %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !167 - %cmp7 = icmp eq i32 %call6, -1, !dbg !168 - br i1 %cmp7, label %if.then8, label %if.end9, !dbg !169 + %2 = load i32, ptr %listenSocket, align 4, !dbg !168 + %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !170 + %cmp7 = icmp eq i32 %call6, -1, !dbg !171 + br i1 %cmp7, label %if.then8, label %if.end9, !dbg !172 if.then8: ; preds = %if.end5 - br label %do.end, !dbg !170 + br label %do.end, !dbg !173 if.end9: ; preds = %if.end5 - %3 = load i32, ptr %listenSocket, align 4, !dbg !172 - %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !173 - store i32 %call10, ptr %acceptSocket, align 4, !dbg !174 - %4 = load i32, ptr %acceptSocket, align 4, !dbg !175 - %cmp11 = icmp eq i32 %4, -1, !dbg !177 - br i1 %cmp11, label %if.then12, label %if.end13, !dbg !178 + %3 = load i32, ptr %listenSocket, align 4, !dbg !175 + %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !176 + store i32 %call10, ptr %acceptSocket, align 4, !dbg !177 + %4 = load i32, ptr %acceptSocket, align 4, !dbg !178 + %cmp11 = icmp eq i32 %4, -1, !dbg !180 + br i1 %cmp11, label %if.then12, label %if.end13, !dbg !181 if.then12: ; preds = %if.end9 - br label %do.end, !dbg !179 + br label %do.end, !dbg !182 if.end13: ; preds = %if.end9 - %5 = load i32, ptr %acceptSocket, align 4, !dbg !181 - %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !182 - %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !183 - %conv = trunc i64 %call14 to i32, !dbg !183 - store i32 %conv, ptr %recvResult, align 4, !dbg !184 - %6 = load i32, ptr %recvResult, align 4, !dbg !185 - %cmp15 = icmp eq i32 %6, -1, !dbg !187 - br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !188 + %5 = load i32, ptr %acceptSocket, align 4, !dbg !184 + %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !185 + %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !186 + %conv = trunc i64 %call14 to i32, !dbg !186 + store i32 %conv, ptr %recvResult, align 4, !dbg !187 + %6 = load i32, ptr %recvResult, align 4, !dbg !188 + %cmp15 = icmp eq i32 %6, -1, !dbg !190 + br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !191 lor.lhs.false: ; preds = %if.end13 - %7 = load i32, ptr %recvResult, align 4, !dbg !189 - %cmp17 = icmp eq i32 %7, 0, !dbg !190 - br i1 %cmp17, label %if.then19, label %if.end20, !dbg !191 + %7 = load i32, ptr %recvResult, align 4, !dbg !192 + %cmp17 = icmp eq i32 %7, 0, !dbg !193 + br i1 %cmp17, label %if.then19, label %if.end20, !dbg !194 if.then19: ; preds = %lor.lhs.false, %if.end13 - br label %do.end, !dbg !192 + br label %do.end, !dbg !195 if.end20: ; preds = %lor.lhs.false - %8 = load i32, ptr %recvResult, align 4, !dbg !194 - %idxprom = sext i32 %8 to i64, !dbg !195 - %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !195 - store i8 0, ptr %arrayidx, align 1, !dbg !196 - %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !197 - %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !198 - store i32 %call22, ptr %data, align 4, !dbg !199 - br label %do.end, !dbg !200 + %8 = load i32, ptr %recvResult, align 4, !dbg !197 + %idxprom = sext i32 %8 to i64, !dbg !198 + %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !198 + store i8 0, ptr %arrayidx, align 1, !dbg !199 + %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !200 + %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !201 + store i32 %call22, ptr %data, align 4, !dbg !202 + br label %do.end, !dbg !203 do.end: ; preds = %if.end20, %if.then19, %if.then12, %if.then8, %if.then4, %if.then - %9 = load i32, ptr %listenSocket, align 4, !dbg !201 - %cmp23 = icmp ne i32 %9, -1, !dbg !203 - br i1 %cmp23, label %if.then25, label %if.end27, !dbg !204 + %9 = load i32, ptr %listenSocket, align 4, !dbg !204 + %cmp23 = icmp ne i32 %9, -1, !dbg !206 + br i1 %cmp23, label %if.then25, label %if.end27, !dbg !207 if.then25: ; preds = %do.end - %10 = load i32, ptr %listenSocket, align 4, !dbg !205 - %call26 = call i32 @close(i32 noundef %10), !dbg !207 - br label %if.end27, !dbg !208 + %10 = load i32, ptr %listenSocket, align 4, !dbg !208 + %call26 = call i32 @close(i32 noundef %10), !dbg !210 + br label %if.end27, !dbg !211 if.end27: ; preds = %if.then25, %do.end - %11 = load i32, ptr %acceptSocket, align 4, !dbg !209 - %cmp28 = icmp ne i32 %11, -1, !dbg !211 - br i1 %cmp28, label %if.then30, label %if.end32, !dbg !212 + %11 = load i32, ptr %acceptSocket, align 4, !dbg !212 + %cmp28 = icmp ne i32 %11, -1, !dbg !214 + br i1 %cmp28, label %if.then30, label %if.end32, !dbg !215 if.then30: ; preds = %if.end27 - %12 = load i32, ptr %acceptSocket, align 4, !dbg !213 - %call31 = call i32 @close(i32 noundef %12), !dbg !215 - br label %if.end32, !dbg !216 + %12 = load i32, ptr %acceptSocket, align 4, !dbg !216 + %call31 = call i32 @close(i32 noundef %12), !dbg !218 + br label %if.end32, !dbg !219 if.end32: ; preds = %if.then30, %if.end27 - call void @llvm.dbg.declare(metadata ptr %buffer, metadata !217, metadata !DIExpression()), !dbg !222 - call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !222 - %13 = load i32, ptr %data, align 4, !dbg !223 - %cmp33 = icmp sge i32 %13, 0, !dbg !225 - br i1 %cmp33, label %if.then35, label %if.else, !dbg !226 + call void @llvm.dbg.declare(metadata ptr %buffer, metadata !220, metadata !DIExpression()), !dbg !225 + call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !225 + %13 = load i32, ptr %data, align 4, !dbg !226 + %cmp33 = icmp sge i32 %13, 0, !dbg !228 + br i1 %cmp33, label %if.then35, label %if.else, !dbg !229 if.then35: ; preds = %if.end32 - %14 = load i32, ptr %data, align 4, !dbg !227 - %idxprom36 = sext i32 %14 to i64, !dbg !229 - %arrayidx37 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom36, !dbg !229 - %15 = load i32, ptr %arrayidx37, align 4, !dbg !229 - call void @printIntLine(i32 noundef %15), !dbg !230 - %arraydecay38 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !231 - %16 = load i32, ptr %data, align 4, !dbg !232 - %conv39 = sext i32 %16 to i64, !dbg !232 - %mul = mul i64 %conv39, 4, !dbg !233 - %call40 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %arraydecay38, i64 noundef %mul), !dbg !234 - br label %if.end41, !dbg !235 + %14 = load i32, ptr %data, align 4, !dbg !230 + %idxprom36 = sext i32 %14 to i64, !dbg !232 + %arrayidx37 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom36, !dbg !232 + %15 = load i32, ptr %arrayidx37, align 4, !dbg !232 + call void @printIntLine(i32 noundef %15), !dbg !233 + %arraydecay38 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !234 + %16 = load i32, ptr %data, align 4, !dbg !235 + %conv39 = sext i32 %16 to i64, !dbg !235 + %mul = mul i64 %conv39, 4, !dbg !236 + %call40 = call i32 (ptr, i64, ...) @UNSAFE_BUFACCESS(ptr noundef %arraydecay38, i64 noundef %mul), !dbg !237 + br label %if.end41, !dbg !238 if.else: ; preds = %if.end32 - call void @printLine(ptr noundef @.str), !dbg !236 + call void @printLine(ptr noundef @.str), !dbg !239 br label %if.end41 if.end41: ; preds = %if.else, %if.then35 - ret void, !dbg !238 + ret void, !dbg !241 } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) @@ -192,34 +192,34 @@ declare i32 @UNSAFE_BUFACCESS(...) #5 declare void @printLine(ptr noundef) #5 ; Function Attrs: noinline nounwind optnone uwtable -define dso_local void @CWE126_Buffer_Overread__CWE129_listen_socket_01_good() #0 !dbg !239 { +define dso_local void @CWE126_Buffer_Overread__CWE129_listen_socket_01_good() #0 !dbg !242 { entry: - call void @goodG2B(), !dbg !240 - call void @goodB2G(), !dbg !241 - ret void, !dbg !242 + call void @goodG2B(), !dbg !243 + call void @goodB2G(), !dbg !244 + ret void, !dbg !245 } ; Function Attrs: noinline nounwind optnone uwtable -define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !243 { +define dso_local i32 @main(i32 noundef %argc, ptr noundef %argv) #0 !dbg !246 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 %argv.addr = alloca ptr, align 8 store i32 0, ptr %retval, align 4 store i32 %argc, ptr %argc.addr, align 4 - call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !248, metadata !DIExpression()), !dbg !249 + call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !251, metadata !DIExpression()), !dbg !252 store ptr %argv, ptr %argv.addr, align 8 - call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !250, metadata !DIExpression()), !dbg !251 - %call = call i64 @time(ptr noundef null) #7, !dbg !252 - %conv = trunc i64 %call to i32, !dbg !253 - call void @srand(i32 noundef %conv) #7, !dbg !254 - call void @printLine(ptr noundef @.str.1), !dbg !255 - call void @CWE126_Buffer_Overread__CWE129_listen_socket_01_good(), !dbg !256 - call void @printLine(ptr noundef @.str.2), !dbg !257 - call void @printLine(ptr noundef @.str.3), !dbg !258 - call void @CWE126_Buffer_Overread__CWE129_listen_socket_01_bad(), !dbg !259 - call void @printLine(ptr noundef @.str.4), !dbg !260 - ret i32 0, !dbg !261 + call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !253, metadata !DIExpression()), !dbg !254 + %call = call i64 @time(ptr noundef null) #7, !dbg !255 + %conv = trunc i64 %call to i32, !dbg !256 + call void @srand(i32 noundef %conv) #7, !dbg !257 + call void @printLine(ptr noundef @.str.1), !dbg !258 + call void @CWE126_Buffer_Overread__CWE129_listen_socket_01_good(), !dbg !259 + call void @printLine(ptr noundef @.str.2), !dbg !260 + call void @printLine(ptr noundef @.str.3), !dbg !261 + call void @CWE126_Buffer_Overread__CWE129_listen_socket_01_bad(), !dbg !262 + call void @printLine(ptr noundef @.str.4), !dbg !263 + ret i32 0, !dbg !264 } ; Function Attrs: nounwind @@ -229,44 +229,44 @@ declare void @srand(i32 noundef) #2 declare i64 @time(ptr noundef) #2 ; Function Attrs: noinline nounwind optnone uwtable -define internal void @goodG2B() #0 !dbg !262 { +define internal void @goodG2B() #0 !dbg !265 { entry: %data = alloca i32, align 4 %buffer = alloca [10 x i32], align 16 - call void @llvm.dbg.declare(metadata ptr %data, metadata !263, metadata !DIExpression()), !dbg !264 - store i32 -1, ptr %data, align 4, !dbg !265 - store i32 7, ptr %data, align 4, !dbg !266 - call void @llvm.dbg.declare(metadata ptr %buffer, metadata !267, metadata !DIExpression()), !dbg !269 - call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !269 - %0 = load i32, ptr %data, align 4, !dbg !270 - %cmp = icmp sge i32 %0, 0, !dbg !272 - br i1 %cmp, label %if.then, label %if.else, !dbg !273 + call void @llvm.dbg.declare(metadata ptr %data, metadata !266, metadata !DIExpression()), !dbg !267 + store i32 -1, ptr %data, align 4, !dbg !268 + store i32 7, ptr %data, align 4, !dbg !269 + call void @llvm.dbg.declare(metadata ptr %buffer, metadata !270, metadata !DIExpression()), !dbg !272 + call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !272 + %0 = load i32, ptr %data, align 4, !dbg !273 + %cmp = icmp sge i32 %0, 0, !dbg !275 + br i1 %cmp, label %if.then, label %if.else, !dbg !276 if.then: ; preds = %entry - %1 = load i32, ptr %data, align 4, !dbg !274 - %idxprom = sext i32 %1 to i64, !dbg !276 - %arrayidx = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom, !dbg !276 - %2 = load i32, ptr %arrayidx, align 4, !dbg !276 - call void @printIntLine(i32 noundef %2), !dbg !277 - %arraydecay = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !278 - %3 = load i32, ptr %data, align 4, !dbg !279 - %conv = sext i32 %3 to i64, !dbg !279 - %mul = mul i64 %conv, 4, !dbg !280 - %call = call i32 (ptr, i64, ...) @SAFE_BUFACCESS(ptr noundef %arraydecay, i64 noundef %mul), !dbg !281 - br label %if.end, !dbg !282 + %1 = load i32, ptr %data, align 4, !dbg !277 + %idxprom = sext i32 %1 to i64, !dbg !279 + %arrayidx = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom, !dbg !279 + %2 = load i32, ptr %arrayidx, align 4, !dbg !279 + call void @printIntLine(i32 noundef %2), !dbg !280 + %arraydecay = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 0, !dbg !281 + %3 = load i32, ptr %data, align 4, !dbg !282 + %conv = sext i32 %3 to i64, !dbg !282 + %mul = mul i64 %conv, 4, !dbg !283 + %call = call i32 (ptr, i64, ...) @SAFE_BUFACCESS(ptr noundef %arraydecay, i64 noundef %mul), !dbg !284 + br label %if.end, !dbg !285 if.else: ; preds = %entry - call void @printLine(ptr noundef @.str), !dbg !283 + call void @printLine(ptr noundef @.str), !dbg !286 br label %if.end if.end: ; preds = %if.else, %if.then - ret void, !dbg !285 + ret void, !dbg !288 } declare i32 @SAFE_BUFACCESS(...) #5 ; Function Attrs: noinline nounwind optnone uwtable -define internal void @goodB2G() #0 !dbg !286 { +define internal void @goodB2G() #0 !dbg !289 { entry: %data = alloca i32, align 4 %recvResult = alloca i32, align 4 @@ -275,139 +275,139 @@ entry: %acceptSocket = alloca i32, align 4 %inputBuffer = alloca [14 x i8], align 1 %buffer = alloca [10 x i32], align 16 - call void @llvm.dbg.declare(metadata ptr %data, metadata !287, metadata !DIExpression()), !dbg !288 - store i32 -1, ptr %data, align 4, !dbg !289 - call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !290, metadata !DIExpression()), !dbg !292 - call void @llvm.dbg.declare(metadata ptr %service, metadata !293, metadata !DIExpression()), !dbg !294 - call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !295, metadata !DIExpression()), !dbg !296 - store i32 -1, ptr %listenSocket, align 4, !dbg !296 - call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !297, metadata !DIExpression()), !dbg !298 - store i32 -1, ptr %acceptSocket, align 4, !dbg !298 - call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !299, metadata !DIExpression()), !dbg !300 - br label %do.body, !dbg !301 + call void @llvm.dbg.declare(metadata ptr %data, metadata !290, metadata !DIExpression()), !dbg !291 + store i32 -1, ptr %data, align 4, !dbg !292 + call void @llvm.dbg.declare(metadata ptr %recvResult, metadata !293, metadata !DIExpression()), !dbg !295 + call void @llvm.dbg.declare(metadata ptr %service, metadata !296, metadata !DIExpression()), !dbg !297 + call void @llvm.dbg.declare(metadata ptr %listenSocket, metadata !298, metadata !DIExpression()), !dbg !299 + store i32 -1, ptr %listenSocket, align 4, !dbg !299 + call void @llvm.dbg.declare(metadata ptr %acceptSocket, metadata !300, metadata !DIExpression()), !dbg !301 + store i32 -1, ptr %acceptSocket, align 4, !dbg !301 + call void @llvm.dbg.declare(metadata ptr %inputBuffer, metadata !302, metadata !DIExpression()), !dbg !303 + br label %do.body, !dbg !304 do.body: ; preds = %entry - %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !302 - store i32 %call, ptr %listenSocket, align 4, !dbg !304 - %0 = load i32, ptr %listenSocket, align 4, !dbg !305 - %cmp = icmp eq i32 %0, -1, !dbg !307 - br i1 %cmp, label %if.then, label %if.end, !dbg !308 + %call = call i32 @socket(i32 noundef 2, i32 noundef 1, i32 noundef 6) #7, !dbg !305 + store i32 %call, ptr %listenSocket, align 4, !dbg !307 + %0 = load i32, ptr %listenSocket, align 4, !dbg !308 + %cmp = icmp eq i32 %0, -1, !dbg !310 + br i1 %cmp, label %if.then, label %if.end, !dbg !311 if.then: ; preds = %do.body - br label %do.end, !dbg !309 + br label %do.end, !dbg !312 if.end: ; preds = %do.body - call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !311 - %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !312 - store i16 2, ptr %sin_family, align 4, !dbg !313 - %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !314 - %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !315 - store i32 0, ptr %s_addr, align 4, !dbg !316 - %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !317 - %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !318 - store i16 %call1, ptr %sin_port, align 2, !dbg !319 - %1 = load i32, ptr %listenSocket, align 4, !dbg !320 - %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !322 - %cmp3 = icmp eq i32 %call2, -1, !dbg !323 - br i1 %cmp3, label %if.then4, label %if.end5, !dbg !324 + call void @llvm.memset.p0.i64(ptr align 4 %service, i8 0, i64 16, i1 false), !dbg !314 + %sin_family = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 0, !dbg !315 + store i16 2, ptr %sin_family, align 4, !dbg !316 + %sin_addr = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 2, !dbg !317 + %s_addr = getelementptr inbounds %struct.in_addr, ptr %sin_addr, i32 0, i32 0, !dbg !318 + store i32 0, ptr %s_addr, align 4, !dbg !319 + %call1 = call zeroext i16 @htons(i16 noundef zeroext 27015) #8, !dbg !320 + %sin_port = getelementptr inbounds %struct.sockaddr_in, ptr %service, i32 0, i32 1, !dbg !321 + store i16 %call1, ptr %sin_port, align 2, !dbg !322 + %1 = load i32, ptr %listenSocket, align 4, !dbg !323 + %call2 = call i32 @bind(i32 noundef %1, ptr noundef %service, i32 noundef 16) #7, !dbg !325 + %cmp3 = icmp eq i32 %call2, -1, !dbg !326 + br i1 %cmp3, label %if.then4, label %if.end5, !dbg !327 if.then4: ; preds = %if.end - br label %do.end, !dbg !325 + br label %do.end, !dbg !328 if.end5: ; preds = %if.end - %2 = load i32, ptr %listenSocket, align 4, !dbg !327 - %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !329 - %cmp7 = icmp eq i32 %call6, -1, !dbg !330 - br i1 %cmp7, label %if.then8, label %if.end9, !dbg !331 + %2 = load i32, ptr %listenSocket, align 4, !dbg !330 + %call6 = call i32 @listen(i32 noundef %2, i32 noundef 5) #7, !dbg !332 + %cmp7 = icmp eq i32 %call6, -1, !dbg !333 + br i1 %cmp7, label %if.then8, label %if.end9, !dbg !334 if.then8: ; preds = %if.end5 - br label %do.end, !dbg !332 + br label %do.end, !dbg !335 if.end9: ; preds = %if.end5 - %3 = load i32, ptr %listenSocket, align 4, !dbg !334 - %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !335 - store i32 %call10, ptr %acceptSocket, align 4, !dbg !336 - %4 = load i32, ptr %acceptSocket, align 4, !dbg !337 - %cmp11 = icmp eq i32 %4, -1, !dbg !339 - br i1 %cmp11, label %if.then12, label %if.end13, !dbg !340 + %3 = load i32, ptr %listenSocket, align 4, !dbg !337 + %call10 = call i32 @accept(i32 noundef %3, ptr noundef null, ptr noundef null), !dbg !338 + store i32 %call10, ptr %acceptSocket, align 4, !dbg !339 + %4 = load i32, ptr %acceptSocket, align 4, !dbg !340 + %cmp11 = icmp eq i32 %4, -1, !dbg !342 + br i1 %cmp11, label %if.then12, label %if.end13, !dbg !343 if.then12: ; preds = %if.end9 - br label %do.end, !dbg !341 + br label %do.end, !dbg !344 if.end13: ; preds = %if.end9 - %5 = load i32, ptr %acceptSocket, align 4, !dbg !343 - %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !344 - %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !345 - %conv = trunc i64 %call14 to i32, !dbg !345 - store i32 %conv, ptr %recvResult, align 4, !dbg !346 - %6 = load i32, ptr %recvResult, align 4, !dbg !347 - %cmp15 = icmp eq i32 %6, -1, !dbg !349 - br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !350 + %5 = load i32, ptr %acceptSocket, align 4, !dbg !346 + %arraydecay = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !347 + %call14 = call i64 @recv(i32 noundef %5, ptr noundef %arraydecay, i64 noundef 13, i32 noundef 0), !dbg !348 + %conv = trunc i64 %call14 to i32, !dbg !348 + store i32 %conv, ptr %recvResult, align 4, !dbg !349 + %6 = load i32, ptr %recvResult, align 4, !dbg !350 + %cmp15 = icmp eq i32 %6, -1, !dbg !352 + br i1 %cmp15, label %if.then19, label %lor.lhs.false, !dbg !353 lor.lhs.false: ; preds = %if.end13 - %7 = load i32, ptr %recvResult, align 4, !dbg !351 - %cmp17 = icmp eq i32 %7, 0, !dbg !352 - br i1 %cmp17, label %if.then19, label %if.end20, !dbg !353 + %7 = load i32, ptr %recvResult, align 4, !dbg !354 + %cmp17 = icmp eq i32 %7, 0, !dbg !355 + br i1 %cmp17, label %if.then19, label %if.end20, !dbg !356 if.then19: ; preds = %lor.lhs.false, %if.end13 - br label %do.end, !dbg !354 + br label %do.end, !dbg !357 if.end20: ; preds = %lor.lhs.false - %8 = load i32, ptr %recvResult, align 4, !dbg !356 - %idxprom = sext i32 %8 to i64, !dbg !357 - %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !357 - store i8 0, ptr %arrayidx, align 1, !dbg !358 - %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !359 - %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !360 - store i32 %call22, ptr %data, align 4, !dbg !361 - br label %do.end, !dbg !362 + %8 = load i32, ptr %recvResult, align 4, !dbg !359 + %idxprom = sext i32 %8 to i64, !dbg !360 + %arrayidx = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 %idxprom, !dbg !360 + store i8 0, ptr %arrayidx, align 1, !dbg !361 + %arraydecay21 = getelementptr inbounds [14 x i8], ptr %inputBuffer, i64 0, i64 0, !dbg !362 + %call22 = call i32 @atoi(ptr noundef %arraydecay21) #9, !dbg !363 + store i32 %call22, ptr %data, align 4, !dbg !364 + br label %do.end, !dbg !365 do.end: ; preds = %if.end20, %if.then19, %if.then12, %if.then8, %if.then4, %if.then - %9 = load i32, ptr %listenSocket, align 4, !dbg !363 - %cmp23 = icmp ne i32 %9, -1, !dbg !365 - br i1 %cmp23, label %if.then25, label %if.end27, !dbg !366 + %9 = load i32, ptr %listenSocket, align 4, !dbg !366 + %cmp23 = icmp ne i32 %9, -1, !dbg !368 + br i1 %cmp23, label %if.then25, label %if.end27, !dbg !369 if.then25: ; preds = %do.end - %10 = load i32, ptr %listenSocket, align 4, !dbg !367 - %call26 = call i32 @close(i32 noundef %10), !dbg !369 - br label %if.end27, !dbg !370 + %10 = load i32, ptr %listenSocket, align 4, !dbg !370 + %call26 = call i32 @close(i32 noundef %10), !dbg !372 + br label %if.end27, !dbg !373 if.end27: ; preds = %if.then25, %do.end - %11 = load i32, ptr %acceptSocket, align 4, !dbg !371 - %cmp28 = icmp ne i32 %11, -1, !dbg !373 - br i1 %cmp28, label %if.then30, label %if.end32, !dbg !374 + %11 = load i32, ptr %acceptSocket, align 4, !dbg !374 + %cmp28 = icmp ne i32 %11, -1, !dbg !376 + br i1 %cmp28, label %if.then30, label %if.end32, !dbg !377 if.then30: ; preds = %if.end27 - %12 = load i32, ptr %acceptSocket, align 4, !dbg !375 - %call31 = call i32 @close(i32 noundef %12), !dbg !377 - br label %if.end32, !dbg !378 + %12 = load i32, ptr %acceptSocket, align 4, !dbg !378 + %call31 = call i32 @close(i32 noundef %12), !dbg !380 + br label %if.end32, !dbg !381 if.end32: ; preds = %if.then30, %if.end27 - call void @llvm.dbg.declare(metadata ptr %buffer, metadata !379, metadata !DIExpression()), !dbg !381 - call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !381 - %13 = load i32, ptr %data, align 4, !dbg !382 - %cmp33 = icmp sge i32 %13, 0, !dbg !384 - br i1 %cmp33, label %land.lhs.true, label %if.else, !dbg !385 + call void @llvm.dbg.declare(metadata ptr %buffer, metadata !382, metadata !DIExpression()), !dbg !384 + call void @llvm.memset.p0.i64(ptr align 16 %buffer, i8 0, i64 40, i1 false), !dbg !384 + %13 = load i32, ptr %data, align 4, !dbg !385 + %cmp33 = icmp sge i32 %13, 0, !dbg !387 + br i1 %cmp33, label %land.lhs.true, label %if.else, !dbg !388 land.lhs.true: ; preds = %if.end32 - %14 = load i32, ptr %data, align 4, !dbg !386 - %cmp35 = icmp slt i32 %14, 10, !dbg !387 - br i1 %cmp35, label %if.then37, label %if.else, !dbg !388 + %14 = load i32, ptr %data, align 4, !dbg !389 + %cmp35 = icmp slt i32 %14, 10, !dbg !390 + br i1 %cmp35, label %if.then37, label %if.else, !dbg !391 if.then37: ; preds = %land.lhs.true - %15 = load i32, ptr %data, align 4, !dbg !389 - %idxprom38 = sext i32 %15 to i64, !dbg !391 - %arrayidx39 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom38, !dbg !391 - %16 = load i32, ptr %arrayidx39, align 4, !dbg !391 - call void @printIntLine(i32 noundef %16), !dbg !392 - br label %if.end40, !dbg !393 + %15 = load i32, ptr %data, align 4, !dbg !392 + %idxprom38 = sext i32 %15 to i64, !dbg !394 + %arrayidx39 = getelementptr inbounds [10 x i32], ptr %buffer, i64 0, i64 %idxprom38, !dbg !394 + %16 = load i32, ptr %arrayidx39, align 4, !dbg !394 + call void @printIntLine(i32 noundef %16), !dbg !395 + br label %if.end40, !dbg !396 if.else: ; preds = %land.lhs.true, %if.end32 - call void @printLine(ptr noundef @.str.5), !dbg !394 + call void @printLine(ptr noundef @.str.5), !dbg !397 br label %if.end40 if.end40: ; preds = %if.else, %if.then37 - ret void, !dbg !396 + ret void, !dbg !399 } attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -422,8 +422,8 @@ attributes #8 = { nounwind willreturn memory(none) } attributes #9 = { nounwind willreturn memory(read) } !llvm.dbg.cu = !{!32} -!llvm.module.flags = !{!96, !97, !98, !99, !100, !101, !102} -!llvm.ident = !{!103} +!llvm.module.flags = !{!99, !100, !101, !102, !103, !104, !105} +!llvm.ident = !{!106} !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 129, type: !3, isLocal: true, isDefinition: true) @@ -457,11 +457,11 @@ attributes #9 = { nounwind willreturn memory(read) } !29 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 288, elements: !30) !30 = !{!31} !31 = !DISubrange(count: 36) -!32 = distinct !DICompileUnit(language: DW_LANG_C11, file: !33, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !34, retainedTypes: !77, globals: !95, splitDebugInlining: false, nameTableKind: None) +!32 = distinct !DICompileUnit(language: DW_LANG_C11, file: !33, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !34, retainedTypes: !80, globals: !98, splitDebugInlining: false, nameTableKind: None) !33 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__CWE129_listen_socket_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c6557841ee5df6a945b50d3bcc7c237c") !34 = !{!35, !48} !35 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "__socket_type", file: !36, line: 24, baseType: !37, size: 32, elements: !38) -!36 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket_type.h", directory: "", checksumkind: CSK_MD5, checksum: "630d972ab4324a8e936ce28b39a40b01") +!36 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket_type.h", directory: "", checksumkind: CSK_MD5, checksum: "5ca1da466a04f4b8f6d88ec84b75042e") !37 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) !38 = !{!39, !40, !41, !42, !43, !44, !45, !46, !47} !39 = !DIEnumerator(name: "SOCK_STREAM", value: 1) @@ -474,8 +474,8 @@ attributes #9 = { nounwind willreturn memory(read) } !46 = !DIEnumerator(name: "SOCK_CLOEXEC", value: 524288) !47 = !DIEnumerator(name: "SOCK_NONBLOCK", value: 2048) !48 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !49, line: 40, baseType: !37, size: 32, elements: !50) -!49 = !DIFile(filename: "/usr/include/netinet/in.h", directory: "", checksumkind: CSK_MD5, checksum: "6a5254a491bcdb8c3253de75bf3571c1") -!50 = !{!51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76} +!49 = !DIFile(filename: "/usr/include/netinet/in.h", directory: "", checksumkind: CSK_MD5, checksum: "fbd766480c8cb9a8fe07ee7aa568ee60") +!50 = !{!51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79} !51 = !DIEnumerator(name: "IPPROTO_IP", value: 0) !52 = !DIEnumerator(name: "IPPROTO_ICMP", value: 1) !53 = !DIEnumerator(name: "IPPROTO_IGMP", value: 2) @@ -497,328 +497,331 @@ attributes #9 = { nounwind willreturn memory(read) } !69 = !DIEnumerator(name: "IPPROTO_ENCAP", value: 98) !70 = !DIEnumerator(name: "IPPROTO_PIM", value: 103) !71 = !DIEnumerator(name: "IPPROTO_COMP", value: 108) -!72 = !DIEnumerator(name: "IPPROTO_SCTP", value: 132) -!73 = !DIEnumerator(name: "IPPROTO_UDPLITE", value: 136) -!74 = !DIEnumerator(name: "IPPROTO_MPLS", value: 137) -!75 = !DIEnumerator(name: "IPPROTO_RAW", value: 255) -!76 = !DIEnumerator(name: "IPPROTO_MAX", value: 256) -!77 = !{!78, !83, !37} -!78 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_addr_t", file: !49, line: 30, baseType: !79) -!79 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !80, line: 26, baseType: !81) -!80 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "d3ea318a915682aaf6645ec16ac9f991") -!81 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !82, line: 42, baseType: !37) -!82 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "f6304b1a6dcfc6bee76e9a51043b5090") -!83 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !84, size: 64) -!84 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr", file: !85, line: 178, size: 128, elements: !86) -!85 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket.h", directory: "", checksumkind: CSK_MD5, checksum: "b1d3343a573cbf39b225111209e02966") -!86 = !{!87, !91} -!87 = !DIDerivedType(tag: DW_TAG_member, name: "sa_family", scope: !84, file: !85, line: 180, baseType: !88, size: 16) -!88 = !DIDerivedType(tag: DW_TAG_typedef, name: "sa_family_t", file: !89, line: 28, baseType: !90) -!89 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/sockaddr.h", directory: "", checksumkind: CSK_MD5, checksum: "b70cbaf07ffb7e8bf11ee98d9a21e2fc") -!90 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned) -!91 = !DIDerivedType(tag: DW_TAG_member, name: "sa_data", scope: !84, file: !85, line: 181, baseType: !92, size: 112, offset: 16) -!92 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 112, elements: !93) -!93 = !{!94} -!94 = !DISubrange(count: 14) -!95 = !{!0, !7, !12, !17, !22, !27} -!96 = !{i32 7, !"Dwarf Version", i32 5} -!97 = !{i32 2, !"Debug Info Version", i32 3} -!98 = !{i32 1, !"wchar_size", i32 4} -!99 = !{i32 8, !"PIC Level", i32 2} -!100 = !{i32 7, !"PIE Level", i32 2} -!101 = !{i32 7, !"uwtable", i32 2} -!102 = !{i32 7, !"frame-pointer", i32 2} -!103 = !{!"clang version 16.0.0"} -!104 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__CWE129_listen_socket_01_bad", scope: !2, file: !2, line: 44, type: !105, scopeLine: 45, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !107) -!105 = !DISubroutineType(types: !106) -!106 = !{null} -!107 = !{} -!108 = !DILocalVariable(name: "data", scope: !104, file: !2, line: 46, type: !109) -!109 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!110 = !DILocation(line: 46, column: 9, scope: !104) -!111 = !DILocation(line: 48, column: 10, scope: !104) -!112 = !DILocalVariable(name: "recvResult", scope: !113, file: !2, line: 54, type: !109) -!113 = distinct !DILexicalBlock(scope: !104, file: !2, line: 49, column: 5) -!114 = !DILocation(line: 54, column: 13, scope: !113) -!115 = !DILocalVariable(name: "service", scope: !113, file: !2, line: 55, type: !116) -!116 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr_in", file: !49, line: 238, size: 128, elements: !117) -!117 = !{!118, !119, !123, !127} -!118 = !DIDerivedType(tag: DW_TAG_member, name: "sin_family", scope: !116, file: !49, line: 240, baseType: !88, size: 16) -!119 = !DIDerivedType(tag: DW_TAG_member, name: "sin_port", scope: !116, file: !49, line: 241, baseType: !120, size: 16, offset: 16) -!120 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_port_t", file: !49, line: 119, baseType: !121) -!121 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint16_t", file: !80, line: 25, baseType: !122) -!122 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint16_t", file: !82, line: 40, baseType: !90) -!123 = !DIDerivedType(tag: DW_TAG_member, name: "sin_addr", scope: !116, file: !49, line: 242, baseType: !124, size: 32, offset: 32) -!124 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "in_addr", file: !49, line: 31, size: 32, elements: !125) -!125 = !{!126} -!126 = !DIDerivedType(tag: DW_TAG_member, name: "s_addr", scope: !124, file: !49, line: 33, baseType: !78, size: 32) -!127 = !DIDerivedType(tag: DW_TAG_member, name: "sin_zero", scope: !116, file: !49, line: 245, baseType: !128, size: 64, offset: 64) -!128 = !DICompositeType(tag: DW_TAG_array_type, baseType: !129, size: 64, elements: !130) -!129 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char) -!130 = !{!131} -!131 = !DISubrange(count: 8) -!132 = !DILocation(line: 55, column: 28, scope: !113) -!133 = !DILocalVariable(name: "listenSocket", scope: !113, file: !2, line: 56, type: !109) -!134 = !DILocation(line: 56, column: 16, scope: !113) -!135 = !DILocalVariable(name: "acceptSocket", scope: !113, file: !2, line: 57, type: !109) -!136 = !DILocation(line: 57, column: 16, scope: !113) -!137 = !DILocalVariable(name: "inputBuffer", scope: !113, file: !2, line: 58, type: !92) -!138 = !DILocation(line: 58, column: 14, scope: !113) -!139 = !DILocation(line: 59, column: 9, scope: !113) -!140 = !DILocation(line: 69, column: 28, scope: !141) -!141 = distinct !DILexicalBlock(scope: !113, file: !2, line: 60, column: 9) -!142 = !DILocation(line: 69, column: 26, scope: !141) -!143 = !DILocation(line: 70, column: 17, scope: !144) -!144 = distinct !DILexicalBlock(scope: !141, file: !2, line: 70, column: 17) -!145 = !DILocation(line: 70, column: 30, scope: !144) -!146 = !DILocation(line: 70, column: 17, scope: !141) -!147 = !DILocation(line: 72, column: 17, scope: !148) -!148 = distinct !DILexicalBlock(scope: !144, file: !2, line: 71, column: 13) -!149 = !DILocation(line: 74, column: 13, scope: !141) -!150 = !DILocation(line: 75, column: 21, scope: !141) -!151 = !DILocation(line: 75, column: 32, scope: !141) -!152 = !DILocation(line: 76, column: 21, scope: !141) -!153 = !DILocation(line: 76, column: 30, scope: !141) -!154 = !DILocation(line: 76, column: 37, scope: !141) -!155 = !DILocation(line: 77, column: 32, scope: !141) -!156 = !DILocation(line: 77, column: 21, scope: !141) -!157 = !DILocation(line: 77, column: 30, scope: !141) -!158 = !DILocation(line: 78, column: 22, scope: !159) -!159 = distinct !DILexicalBlock(scope: !141, file: !2, line: 78, column: 17) -!160 = !DILocation(line: 78, column: 17, scope: !159) -!161 = !DILocation(line: 78, column: 81, scope: !159) -!162 = !DILocation(line: 78, column: 17, scope: !141) -!163 = !DILocation(line: 80, column: 17, scope: !164) -!164 = distinct !DILexicalBlock(scope: !159, file: !2, line: 79, column: 13) -!165 = !DILocation(line: 82, column: 24, scope: !166) -!166 = distinct !DILexicalBlock(scope: !141, file: !2, line: 82, column: 17) -!167 = !DILocation(line: 82, column: 17, scope: !166) -!168 = !DILocation(line: 82, column: 54, scope: !166) -!169 = !DILocation(line: 82, column: 17, scope: !141) -!170 = !DILocation(line: 84, column: 17, scope: !171) -!171 = distinct !DILexicalBlock(scope: !166, file: !2, line: 83, column: 13) -!172 = !DILocation(line: 86, column: 35, scope: !141) -!173 = !DILocation(line: 86, column: 28, scope: !141) -!174 = !DILocation(line: 86, column: 26, scope: !141) -!175 = !DILocation(line: 87, column: 17, scope: !176) -!176 = distinct !DILexicalBlock(scope: !141, file: !2, line: 87, column: 17) -!177 = !DILocation(line: 87, column: 30, scope: !176) -!178 = !DILocation(line: 87, column: 17, scope: !141) -!179 = !DILocation(line: 89, column: 17, scope: !180) -!180 = distinct !DILexicalBlock(scope: !176, file: !2, line: 88, column: 13) -!181 = !DILocation(line: 92, column: 31, scope: !141) -!182 = !DILocation(line: 92, column: 45, scope: !141) -!183 = !DILocation(line: 92, column: 26, scope: !141) -!184 = !DILocation(line: 92, column: 24, scope: !141) -!185 = !DILocation(line: 93, column: 17, scope: !186) -!186 = distinct !DILexicalBlock(scope: !141, file: !2, line: 93, column: 17) -!187 = !DILocation(line: 93, column: 28, scope: !186) -!188 = !DILocation(line: 93, column: 44, scope: !186) -!189 = !DILocation(line: 93, column: 47, scope: !186) -!190 = !DILocation(line: 93, column: 58, scope: !186) -!191 = !DILocation(line: 93, column: 17, scope: !141) -!192 = !DILocation(line: 95, column: 17, scope: !193) -!193 = distinct !DILexicalBlock(scope: !186, file: !2, line: 94, column: 13) -!194 = !DILocation(line: 98, column: 25, scope: !141) -!195 = !DILocation(line: 98, column: 13, scope: !141) -!196 = !DILocation(line: 98, column: 37, scope: !141) -!197 = !DILocation(line: 100, column: 25, scope: !141) -!198 = !DILocation(line: 100, column: 20, scope: !141) -!199 = !DILocation(line: 100, column: 18, scope: !141) -!200 = !DILocation(line: 101, column: 9, scope: !141) -!201 = !DILocation(line: 103, column: 13, scope: !202) -!202 = distinct !DILexicalBlock(scope: !113, file: !2, line: 103, column: 13) -!203 = !DILocation(line: 103, column: 26, scope: !202) -!204 = !DILocation(line: 103, column: 13, scope: !113) -!205 = !DILocation(line: 105, column: 26, scope: !206) -!206 = distinct !DILexicalBlock(scope: !202, file: !2, line: 104, column: 9) -!207 = !DILocation(line: 105, column: 13, scope: !206) -!208 = !DILocation(line: 106, column: 9, scope: !206) -!209 = !DILocation(line: 107, column: 13, scope: !210) -!210 = distinct !DILexicalBlock(scope: !113, file: !2, line: 107, column: 13) -!211 = !DILocation(line: 107, column: 26, scope: !210) -!212 = !DILocation(line: 107, column: 13, scope: !113) -!213 = !DILocation(line: 109, column: 26, scope: !214) -!214 = distinct !DILexicalBlock(scope: !210, file: !2, line: 108, column: 9) -!215 = !DILocation(line: 109, column: 13, scope: !214) -!216 = !DILocation(line: 110, column: 9, scope: !214) -!217 = !DILocalVariable(name: "buffer", scope: !218, file: !2, line: 119, type: !219) -!218 = distinct !DILexicalBlock(scope: !104, file: !2, line: 118, column: 5) -!219 = !DICompositeType(tag: DW_TAG_array_type, baseType: !109, size: 320, elements: !220) -!220 = !{!221} -!221 = !DISubrange(count: 10) -!222 = !DILocation(line: 119, column: 13, scope: !218) -!223 = !DILocation(line: 122, column: 13, scope: !224) -!224 = distinct !DILexicalBlock(scope: !218, file: !2, line: 122, column: 13) -!225 = !DILocation(line: 122, column: 18, scope: !224) -!226 = !DILocation(line: 122, column: 13, scope: !218) -!227 = !DILocation(line: 124, column: 33, scope: !228) -!228 = distinct !DILexicalBlock(scope: !224, file: !2, line: 123, column: 9) -!229 = !DILocation(line: 124, column: 26, scope: !228) -!230 = !DILocation(line: 124, column: 13, scope: !228) -!231 = !DILocation(line: 125, column: 30, scope: !228) -!232 = !DILocation(line: 125, column: 38, scope: !228) -!233 = !DILocation(line: 125, column: 42, scope: !228) -!234 = !DILocation(line: 125, column: 13, scope: !228) -!235 = !DILocation(line: 126, column: 9, scope: !228) -!236 = !DILocation(line: 129, column: 13, scope: !237) -!237 = distinct !DILexicalBlock(scope: !224, file: !2, line: 128, column: 9) -!238 = !DILocation(line: 132, column: 1, scope: !104) -!239 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__CWE129_listen_socket_01_good", scope: !2, file: !2, line: 252, type: !105, scopeLine: 253, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !107) -!240 = !DILocation(line: 254, column: 5, scope: !239) -!241 = !DILocation(line: 255, column: 5, scope: !239) -!242 = !DILocation(line: 256, column: 1, scope: !239) -!243 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 267, type: !244, scopeLine: 268, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !107) -!244 = !DISubroutineType(types: !245) -!245 = !{!109, !109, !246} -!246 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !247, size: 64) -!247 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) -!248 = !DILocalVariable(name: "argc", arg: 1, scope: !243, file: !2, line: 267, type: !109) -!249 = !DILocation(line: 267, column: 14, scope: !243) -!250 = !DILocalVariable(name: "argv", arg: 2, scope: !243, file: !2, line: 267, type: !246) -!251 = !DILocation(line: 267, column: 27, scope: !243) -!252 = !DILocation(line: 270, column: 22, scope: !243) -!253 = !DILocation(line: 270, column: 12, scope: !243) -!254 = !DILocation(line: 270, column: 5, scope: !243) -!255 = !DILocation(line: 272, column: 5, scope: !243) -!256 = !DILocation(line: 273, column: 5, scope: !243) -!257 = !DILocation(line: 274, column: 5, scope: !243) -!258 = !DILocation(line: 277, column: 5, scope: !243) -!259 = !DILocation(line: 278, column: 5, scope: !243) -!260 = !DILocation(line: 279, column: 5, scope: !243) -!261 = !DILocation(line: 281, column: 5, scope: !243) -!262 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 139, type: !105, scopeLine: 140, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !107) -!263 = !DILocalVariable(name: "data", scope: !262, file: !2, line: 141, type: !109) -!264 = !DILocation(line: 141, column: 9, scope: !262) -!265 = !DILocation(line: 143, column: 10, scope: !262) -!266 = !DILocation(line: 146, column: 10, scope: !262) -!267 = !DILocalVariable(name: "buffer", scope: !268, file: !2, line: 148, type: !219) -!268 = distinct !DILexicalBlock(scope: !262, file: !2, line: 147, column: 5) -!269 = !DILocation(line: 148, column: 13, scope: !268) -!270 = !DILocation(line: 151, column: 13, scope: !271) -!271 = distinct !DILexicalBlock(scope: !268, file: !2, line: 151, column: 13) -!272 = !DILocation(line: 151, column: 18, scope: !271) -!273 = !DILocation(line: 151, column: 13, scope: !268) -!274 = !DILocation(line: 153, column: 33, scope: !275) -!275 = distinct !DILexicalBlock(scope: !271, file: !2, line: 152, column: 9) -!276 = !DILocation(line: 153, column: 26, scope: !275) -!277 = !DILocation(line: 153, column: 13, scope: !275) -!278 = !DILocation(line: 154, column: 28, scope: !275) -!279 = !DILocation(line: 154, column: 36, scope: !275) -!280 = !DILocation(line: 154, column: 40, scope: !275) -!281 = !DILocation(line: 154, column: 13, scope: !275) -!282 = !DILocation(line: 155, column: 9, scope: !275) -!283 = !DILocation(line: 158, column: 13, scope: !284) -!284 = distinct !DILexicalBlock(scope: !271, file: !2, line: 157, column: 9) -!285 = !DILocation(line: 161, column: 1, scope: !262) -!286 = distinct !DISubprogram(name: "goodB2G", scope: !2, file: !2, line: 164, type: !105, scopeLine: 165, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !107) -!287 = !DILocalVariable(name: "data", scope: !286, file: !2, line: 166, type: !109) -!288 = !DILocation(line: 166, column: 9, scope: !286) -!289 = !DILocation(line: 168, column: 10, scope: !286) -!290 = !DILocalVariable(name: "recvResult", scope: !291, file: !2, line: 174, type: !109) -!291 = distinct !DILexicalBlock(scope: !286, file: !2, line: 169, column: 5) -!292 = !DILocation(line: 174, column: 13, scope: !291) -!293 = !DILocalVariable(name: "service", scope: !291, file: !2, line: 175, type: !116) -!294 = !DILocation(line: 175, column: 28, scope: !291) -!295 = !DILocalVariable(name: "listenSocket", scope: !291, file: !2, line: 176, type: !109) -!296 = !DILocation(line: 176, column: 16, scope: !291) -!297 = !DILocalVariable(name: "acceptSocket", scope: !291, file: !2, line: 177, type: !109) -!298 = !DILocation(line: 177, column: 16, scope: !291) -!299 = !DILocalVariable(name: "inputBuffer", scope: !291, file: !2, line: 178, type: !92) -!300 = !DILocation(line: 178, column: 14, scope: !291) -!301 = !DILocation(line: 179, column: 9, scope: !291) -!302 = !DILocation(line: 189, column: 28, scope: !303) -!303 = distinct !DILexicalBlock(scope: !291, file: !2, line: 180, column: 9) -!304 = !DILocation(line: 189, column: 26, scope: !303) -!305 = !DILocation(line: 190, column: 17, scope: !306) -!306 = distinct !DILexicalBlock(scope: !303, file: !2, line: 190, column: 17) -!307 = !DILocation(line: 190, column: 30, scope: !306) -!308 = !DILocation(line: 190, column: 17, scope: !303) -!309 = !DILocation(line: 192, column: 17, scope: !310) -!310 = distinct !DILexicalBlock(scope: !306, file: !2, line: 191, column: 13) -!311 = !DILocation(line: 194, column: 13, scope: !303) -!312 = !DILocation(line: 195, column: 21, scope: !303) -!313 = !DILocation(line: 195, column: 32, scope: !303) -!314 = !DILocation(line: 196, column: 21, scope: !303) -!315 = !DILocation(line: 196, column: 30, scope: !303) -!316 = !DILocation(line: 196, column: 37, scope: !303) -!317 = !DILocation(line: 197, column: 32, scope: !303) -!318 = !DILocation(line: 197, column: 21, scope: !303) -!319 = !DILocation(line: 197, column: 30, scope: !303) -!320 = !DILocation(line: 198, column: 22, scope: !321) -!321 = distinct !DILexicalBlock(scope: !303, file: !2, line: 198, column: 17) -!322 = !DILocation(line: 198, column: 17, scope: !321) -!323 = !DILocation(line: 198, column: 81, scope: !321) -!324 = !DILocation(line: 198, column: 17, scope: !303) -!325 = !DILocation(line: 200, column: 17, scope: !326) -!326 = distinct !DILexicalBlock(scope: !321, file: !2, line: 199, column: 13) -!327 = !DILocation(line: 202, column: 24, scope: !328) -!328 = distinct !DILexicalBlock(scope: !303, file: !2, line: 202, column: 17) -!329 = !DILocation(line: 202, column: 17, scope: !328) -!330 = !DILocation(line: 202, column: 54, scope: !328) -!331 = !DILocation(line: 202, column: 17, scope: !303) -!332 = !DILocation(line: 204, column: 17, scope: !333) -!333 = distinct !DILexicalBlock(scope: !328, file: !2, line: 203, column: 13) -!334 = !DILocation(line: 206, column: 35, scope: !303) -!335 = !DILocation(line: 206, column: 28, scope: !303) -!336 = !DILocation(line: 206, column: 26, scope: !303) -!337 = !DILocation(line: 207, column: 17, scope: !338) -!338 = distinct !DILexicalBlock(scope: !303, file: !2, line: 207, column: 17) -!339 = !DILocation(line: 207, column: 30, scope: !338) -!340 = !DILocation(line: 207, column: 17, scope: !303) -!341 = !DILocation(line: 209, column: 17, scope: !342) -!342 = distinct !DILexicalBlock(scope: !338, file: !2, line: 208, column: 13) -!343 = !DILocation(line: 212, column: 31, scope: !303) -!344 = !DILocation(line: 212, column: 45, scope: !303) -!345 = !DILocation(line: 212, column: 26, scope: !303) -!346 = !DILocation(line: 212, column: 24, scope: !303) -!347 = !DILocation(line: 213, column: 17, scope: !348) -!348 = distinct !DILexicalBlock(scope: !303, file: !2, line: 213, column: 17) -!349 = !DILocation(line: 213, column: 28, scope: !348) -!350 = !DILocation(line: 213, column: 44, scope: !348) -!351 = !DILocation(line: 213, column: 47, scope: !348) -!352 = !DILocation(line: 213, column: 58, scope: !348) -!353 = !DILocation(line: 213, column: 17, scope: !303) -!354 = !DILocation(line: 215, column: 17, scope: !355) -!355 = distinct !DILexicalBlock(scope: !348, file: !2, line: 214, column: 13) -!356 = !DILocation(line: 218, column: 25, scope: !303) -!357 = !DILocation(line: 218, column: 13, scope: !303) -!358 = !DILocation(line: 218, column: 37, scope: !303) -!359 = !DILocation(line: 220, column: 25, scope: !303) -!360 = !DILocation(line: 220, column: 20, scope: !303) -!361 = !DILocation(line: 220, column: 18, scope: !303) -!362 = !DILocation(line: 221, column: 9, scope: !303) -!363 = !DILocation(line: 223, column: 13, scope: !364) -!364 = distinct !DILexicalBlock(scope: !291, file: !2, line: 223, column: 13) -!365 = !DILocation(line: 223, column: 26, scope: !364) -!366 = !DILocation(line: 223, column: 13, scope: !291) -!367 = !DILocation(line: 225, column: 26, scope: !368) -!368 = distinct !DILexicalBlock(scope: !364, file: !2, line: 224, column: 9) -!369 = !DILocation(line: 225, column: 13, scope: !368) -!370 = !DILocation(line: 226, column: 9, scope: !368) -!371 = !DILocation(line: 227, column: 13, scope: !372) -!372 = distinct !DILexicalBlock(scope: !291, file: !2, line: 227, column: 13) -!373 = !DILocation(line: 227, column: 26, scope: !372) -!374 = !DILocation(line: 227, column: 13, scope: !291) -!375 = !DILocation(line: 229, column: 26, scope: !376) -!376 = distinct !DILexicalBlock(scope: !372, file: !2, line: 228, column: 9) -!377 = !DILocation(line: 229, column: 13, scope: !376) -!378 = !DILocation(line: 230, column: 9, scope: !376) -!379 = !DILocalVariable(name: "buffer", scope: !380, file: !2, line: 239, type: !219) -!380 = distinct !DILexicalBlock(scope: !286, file: !2, line: 238, column: 5) -!381 = !DILocation(line: 239, column: 13, scope: !380) -!382 = !DILocation(line: 241, column: 13, scope: !383) -!383 = distinct !DILexicalBlock(scope: !380, file: !2, line: 241, column: 13) -!384 = !DILocation(line: 241, column: 18, scope: !383) -!385 = !DILocation(line: 241, column: 23, scope: !383) -!386 = !DILocation(line: 241, column: 26, scope: !383) -!387 = !DILocation(line: 241, column: 31, scope: !383) -!388 = !DILocation(line: 241, column: 13, scope: !380) -!389 = !DILocation(line: 243, column: 33, scope: !390) -!390 = distinct !DILexicalBlock(scope: !383, file: !2, line: 242, column: 9) -!391 = !DILocation(line: 243, column: 26, scope: !390) -!392 = !DILocation(line: 243, column: 13, scope: !390) -!393 = !DILocation(line: 244, column: 9, scope: !390) -!394 = !DILocation(line: 247, column: 13, scope: !395) -!395 = distinct !DILexicalBlock(scope: !383, file: !2, line: 246, column: 9) -!396 = !DILocation(line: 250, column: 1, scope: !286) +!72 = !DIEnumerator(name: "IPPROTO_L2TP", value: 115) +!73 = !DIEnumerator(name: "IPPROTO_SCTP", value: 132) +!74 = !DIEnumerator(name: "IPPROTO_UDPLITE", value: 136) +!75 = !DIEnumerator(name: "IPPROTO_MPLS", value: 137) +!76 = !DIEnumerator(name: "IPPROTO_ETHERNET", value: 143) +!77 = !DIEnumerator(name: "IPPROTO_RAW", value: 255) +!78 = !DIEnumerator(name: "IPPROTO_MPTCP", value: 262) +!79 = !DIEnumerator(name: "IPPROTO_MAX", value: 263) +!80 = !{!81, !86, !37} +!81 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_addr_t", file: !49, line: 30, baseType: !82) +!82 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !83, line: 26, baseType: !84) +!83 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "", checksumkind: CSK_MD5, checksum: "256fcabbefa27ca8cf5e6d37525e6e16") +!84 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !85, line: 42, baseType: !37) +!85 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "", checksumkind: CSK_MD5, checksum: "e1865d9fe29fe1b5ced550b7ba458f9e") +!86 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !87, size: 64) +!87 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr", file: !88, line: 183, size: 128, elements: !89) +!88 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/socket.h", directory: "", checksumkind: CSK_MD5, checksum: "71a09f67661e8e55cf505c19b5ddbb85") +!89 = !{!90, !94} +!90 = !DIDerivedType(tag: DW_TAG_member, name: "sa_family", scope: !87, file: !88, line: 185, baseType: !91, size: 16) +!91 = !DIDerivedType(tag: DW_TAG_typedef, name: "sa_family_t", file: !92, line: 28, baseType: !93) +!92 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/sockaddr.h", directory: "", checksumkind: CSK_MD5, checksum: "5066b774f0f3cdb5cbbb5467306060db") +!93 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned) +!94 = !DIDerivedType(tag: DW_TAG_member, name: "sa_data", scope: !87, file: !88, line: 186, baseType: !95, size: 112, offset: 16) +!95 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 112, elements: !96) +!96 = !{!97} +!97 = !DISubrange(count: 14) +!98 = !{!0, !7, !12, !17, !22, !27} +!99 = !{i32 7, !"Dwarf Version", i32 5} +!100 = !{i32 2, !"Debug Info Version", i32 3} +!101 = !{i32 1, !"wchar_size", i32 4} +!102 = !{i32 8, !"PIC Level", i32 2} +!103 = !{i32 7, !"PIE Level", i32 2} +!104 = !{i32 7, !"uwtable", i32 2} +!105 = !{i32 7, !"frame-pointer", i32 2} +!106 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!107 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__CWE129_listen_socket_01_bad", scope: !2, file: !2, line: 44, type: !108, scopeLine: 45, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !110) +!108 = !DISubroutineType(types: !109) +!109 = !{null} +!110 = !{} +!111 = !DILocalVariable(name: "data", scope: !107, file: !2, line: 46, type: !112) +!112 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!113 = !DILocation(line: 46, column: 9, scope: !107) +!114 = !DILocation(line: 48, column: 10, scope: !107) +!115 = !DILocalVariable(name: "recvResult", scope: !116, file: !2, line: 54, type: !112) +!116 = distinct !DILexicalBlock(scope: !107, file: !2, line: 49, column: 5) +!117 = !DILocation(line: 54, column: 13, scope: !116) +!118 = !DILocalVariable(name: "service", scope: !116, file: !2, line: 55, type: !119) +!119 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sockaddr_in", file: !49, line: 247, size: 128, elements: !120) +!120 = !{!121, !122, !126, !130} +!121 = !DIDerivedType(tag: DW_TAG_member, name: "sin_family", scope: !119, file: !49, line: 249, baseType: !91, size: 16) +!122 = !DIDerivedType(tag: DW_TAG_member, name: "sin_port", scope: !119, file: !49, line: 250, baseType: !123, size: 16, offset: 16) +!123 = !DIDerivedType(tag: DW_TAG_typedef, name: "in_port_t", file: !49, line: 125, baseType: !124) +!124 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint16_t", file: !83, line: 25, baseType: !125) +!125 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint16_t", file: !85, line: 40, baseType: !93) +!126 = !DIDerivedType(tag: DW_TAG_member, name: "sin_addr", scope: !119, file: !49, line: 251, baseType: !127, size: 32, offset: 32) +!127 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "in_addr", file: !49, line: 31, size: 32, elements: !128) +!128 = !{!129} +!129 = !DIDerivedType(tag: DW_TAG_member, name: "s_addr", scope: !127, file: !49, line: 33, baseType: !81, size: 32) +!130 = !DIDerivedType(tag: DW_TAG_member, name: "sin_zero", scope: !119, file: !49, line: 254, baseType: !131, size: 64, offset: 64) +!131 = !DICompositeType(tag: DW_TAG_array_type, baseType: !132, size: 64, elements: !133) +!132 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char) +!133 = !{!134} +!134 = !DISubrange(count: 8) +!135 = !DILocation(line: 55, column: 28, scope: !116) +!136 = !DILocalVariable(name: "listenSocket", scope: !116, file: !2, line: 56, type: !112) +!137 = !DILocation(line: 56, column: 16, scope: !116) +!138 = !DILocalVariable(name: "acceptSocket", scope: !116, file: !2, line: 57, type: !112) +!139 = !DILocation(line: 57, column: 16, scope: !116) +!140 = !DILocalVariable(name: "inputBuffer", scope: !116, file: !2, line: 58, type: !95) +!141 = !DILocation(line: 58, column: 14, scope: !116) +!142 = !DILocation(line: 59, column: 9, scope: !116) +!143 = !DILocation(line: 69, column: 28, scope: !144) +!144 = distinct !DILexicalBlock(scope: !116, file: !2, line: 60, column: 9) +!145 = !DILocation(line: 69, column: 26, scope: !144) +!146 = !DILocation(line: 70, column: 17, scope: !147) +!147 = distinct !DILexicalBlock(scope: !144, file: !2, line: 70, column: 17) +!148 = !DILocation(line: 70, column: 30, scope: !147) +!149 = !DILocation(line: 70, column: 17, scope: !144) +!150 = !DILocation(line: 72, column: 17, scope: !151) +!151 = distinct !DILexicalBlock(scope: !147, file: !2, line: 71, column: 13) +!152 = !DILocation(line: 74, column: 13, scope: !144) +!153 = !DILocation(line: 75, column: 21, scope: !144) +!154 = !DILocation(line: 75, column: 32, scope: !144) +!155 = !DILocation(line: 76, column: 21, scope: !144) +!156 = !DILocation(line: 76, column: 30, scope: !144) +!157 = !DILocation(line: 76, column: 37, scope: !144) +!158 = !DILocation(line: 77, column: 32, scope: !144) +!159 = !DILocation(line: 77, column: 21, scope: !144) +!160 = !DILocation(line: 77, column: 30, scope: !144) +!161 = !DILocation(line: 78, column: 22, scope: !162) +!162 = distinct !DILexicalBlock(scope: !144, file: !2, line: 78, column: 17) +!163 = !DILocation(line: 78, column: 17, scope: !162) +!164 = !DILocation(line: 78, column: 81, scope: !162) +!165 = !DILocation(line: 78, column: 17, scope: !144) +!166 = !DILocation(line: 80, column: 17, scope: !167) +!167 = distinct !DILexicalBlock(scope: !162, file: !2, line: 79, column: 13) +!168 = !DILocation(line: 82, column: 24, scope: !169) +!169 = distinct !DILexicalBlock(scope: !144, file: !2, line: 82, column: 17) +!170 = !DILocation(line: 82, column: 17, scope: !169) +!171 = !DILocation(line: 82, column: 54, scope: !169) +!172 = !DILocation(line: 82, column: 17, scope: !144) +!173 = !DILocation(line: 84, column: 17, scope: !174) +!174 = distinct !DILexicalBlock(scope: !169, file: !2, line: 83, column: 13) +!175 = !DILocation(line: 86, column: 35, scope: !144) +!176 = !DILocation(line: 86, column: 28, scope: !144) +!177 = !DILocation(line: 86, column: 26, scope: !144) +!178 = !DILocation(line: 87, column: 17, scope: !179) +!179 = distinct !DILexicalBlock(scope: !144, file: !2, line: 87, column: 17) +!180 = !DILocation(line: 87, column: 30, scope: !179) +!181 = !DILocation(line: 87, column: 17, scope: !144) +!182 = !DILocation(line: 89, column: 17, scope: !183) +!183 = distinct !DILexicalBlock(scope: !179, file: !2, line: 88, column: 13) +!184 = !DILocation(line: 92, column: 31, scope: !144) +!185 = !DILocation(line: 92, column: 45, scope: !144) +!186 = !DILocation(line: 92, column: 26, scope: !144) +!187 = !DILocation(line: 92, column: 24, scope: !144) +!188 = !DILocation(line: 93, column: 17, scope: !189) +!189 = distinct !DILexicalBlock(scope: !144, file: !2, line: 93, column: 17) +!190 = !DILocation(line: 93, column: 28, scope: !189) +!191 = !DILocation(line: 93, column: 44, scope: !189) +!192 = !DILocation(line: 93, column: 47, scope: !189) +!193 = !DILocation(line: 93, column: 58, scope: !189) +!194 = !DILocation(line: 93, column: 17, scope: !144) +!195 = !DILocation(line: 95, column: 17, scope: !196) +!196 = distinct !DILexicalBlock(scope: !189, file: !2, line: 94, column: 13) +!197 = !DILocation(line: 98, column: 25, scope: !144) +!198 = !DILocation(line: 98, column: 13, scope: !144) +!199 = !DILocation(line: 98, column: 37, scope: !144) +!200 = !DILocation(line: 100, column: 25, scope: !144) +!201 = !DILocation(line: 100, column: 20, scope: !144) +!202 = !DILocation(line: 100, column: 18, scope: !144) +!203 = !DILocation(line: 101, column: 9, scope: !144) +!204 = !DILocation(line: 103, column: 13, scope: !205) +!205 = distinct !DILexicalBlock(scope: !116, file: !2, line: 103, column: 13) +!206 = !DILocation(line: 103, column: 26, scope: !205) +!207 = !DILocation(line: 103, column: 13, scope: !116) +!208 = !DILocation(line: 105, column: 26, scope: !209) +!209 = distinct !DILexicalBlock(scope: !205, file: !2, line: 104, column: 9) +!210 = !DILocation(line: 105, column: 13, scope: !209) +!211 = !DILocation(line: 106, column: 9, scope: !209) +!212 = !DILocation(line: 107, column: 13, scope: !213) +!213 = distinct !DILexicalBlock(scope: !116, file: !2, line: 107, column: 13) +!214 = !DILocation(line: 107, column: 26, scope: !213) +!215 = !DILocation(line: 107, column: 13, scope: !116) +!216 = !DILocation(line: 109, column: 26, scope: !217) +!217 = distinct !DILexicalBlock(scope: !213, file: !2, line: 108, column: 9) +!218 = !DILocation(line: 109, column: 13, scope: !217) +!219 = !DILocation(line: 110, column: 9, scope: !217) +!220 = !DILocalVariable(name: "buffer", scope: !221, file: !2, line: 119, type: !222) +!221 = distinct !DILexicalBlock(scope: !107, file: !2, line: 118, column: 5) +!222 = !DICompositeType(tag: DW_TAG_array_type, baseType: !112, size: 320, elements: !223) +!223 = !{!224} +!224 = !DISubrange(count: 10) +!225 = !DILocation(line: 119, column: 13, scope: !221) +!226 = !DILocation(line: 122, column: 13, scope: !227) +!227 = distinct !DILexicalBlock(scope: !221, file: !2, line: 122, column: 13) +!228 = !DILocation(line: 122, column: 18, scope: !227) +!229 = !DILocation(line: 122, column: 13, scope: !221) +!230 = !DILocation(line: 124, column: 33, scope: !231) +!231 = distinct !DILexicalBlock(scope: !227, file: !2, line: 123, column: 9) +!232 = !DILocation(line: 124, column: 26, scope: !231) +!233 = !DILocation(line: 124, column: 13, scope: !231) +!234 = !DILocation(line: 125, column: 30, scope: !231) +!235 = !DILocation(line: 125, column: 38, scope: !231) +!236 = !DILocation(line: 125, column: 42, scope: !231) +!237 = !DILocation(line: 125, column: 13, scope: !231) +!238 = !DILocation(line: 126, column: 9, scope: !231) +!239 = !DILocation(line: 129, column: 13, scope: !240) +!240 = distinct !DILexicalBlock(scope: !227, file: !2, line: 128, column: 9) +!241 = !DILocation(line: 132, column: 1, scope: !107) +!242 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__CWE129_listen_socket_01_good", scope: !2, file: !2, line: 252, type: !108, scopeLine: 253, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !110) +!243 = !DILocation(line: 254, column: 5, scope: !242) +!244 = !DILocation(line: 255, column: 5, scope: !242) +!245 = !DILocation(line: 256, column: 1, scope: !242) +!246 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 267, type: !247, scopeLine: 268, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !32, retainedNodes: !110) +!247 = !DISubroutineType(types: !248) +!248 = !{!112, !112, !249} +!249 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !250, size: 64) +!250 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) +!251 = !DILocalVariable(name: "argc", arg: 1, scope: !246, file: !2, line: 267, type: !112) +!252 = !DILocation(line: 267, column: 14, scope: !246) +!253 = !DILocalVariable(name: "argv", arg: 2, scope: !246, file: !2, line: 267, type: !249) +!254 = !DILocation(line: 267, column: 27, scope: !246) +!255 = !DILocation(line: 270, column: 22, scope: !246) +!256 = !DILocation(line: 270, column: 12, scope: !246) +!257 = !DILocation(line: 270, column: 5, scope: !246) +!258 = !DILocation(line: 272, column: 5, scope: !246) +!259 = !DILocation(line: 273, column: 5, scope: !246) +!260 = !DILocation(line: 274, column: 5, scope: !246) +!261 = !DILocation(line: 277, column: 5, scope: !246) +!262 = !DILocation(line: 278, column: 5, scope: !246) +!263 = !DILocation(line: 279, column: 5, scope: !246) +!264 = !DILocation(line: 281, column: 5, scope: !246) +!265 = distinct !DISubprogram(name: "goodG2B", scope: !2, file: !2, line: 139, type: !108, scopeLine: 140, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !110) +!266 = !DILocalVariable(name: "data", scope: !265, file: !2, line: 141, type: !112) +!267 = !DILocation(line: 141, column: 9, scope: !265) +!268 = !DILocation(line: 143, column: 10, scope: !265) +!269 = !DILocation(line: 146, column: 10, scope: !265) +!270 = !DILocalVariable(name: "buffer", scope: !271, file: !2, line: 148, type: !222) +!271 = distinct !DILexicalBlock(scope: !265, file: !2, line: 147, column: 5) +!272 = !DILocation(line: 148, column: 13, scope: !271) +!273 = !DILocation(line: 151, column: 13, scope: !274) +!274 = distinct !DILexicalBlock(scope: !271, file: !2, line: 151, column: 13) +!275 = !DILocation(line: 151, column: 18, scope: !274) +!276 = !DILocation(line: 151, column: 13, scope: !271) +!277 = !DILocation(line: 153, column: 33, scope: !278) +!278 = distinct !DILexicalBlock(scope: !274, file: !2, line: 152, column: 9) +!279 = !DILocation(line: 153, column: 26, scope: !278) +!280 = !DILocation(line: 153, column: 13, scope: !278) +!281 = !DILocation(line: 154, column: 28, scope: !278) +!282 = !DILocation(line: 154, column: 36, scope: !278) +!283 = !DILocation(line: 154, column: 40, scope: !278) +!284 = !DILocation(line: 154, column: 13, scope: !278) +!285 = !DILocation(line: 155, column: 9, scope: !278) +!286 = !DILocation(line: 158, column: 13, scope: !287) +!287 = distinct !DILexicalBlock(scope: !274, file: !2, line: 157, column: 9) +!288 = !DILocation(line: 161, column: 1, scope: !265) +!289 = distinct !DISubprogram(name: "goodB2G", scope: !2, file: !2, line: 164, type: !108, scopeLine: 165, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !32, retainedNodes: !110) +!290 = !DILocalVariable(name: "data", scope: !289, file: !2, line: 166, type: !112) +!291 = !DILocation(line: 166, column: 9, scope: !289) +!292 = !DILocation(line: 168, column: 10, scope: !289) +!293 = !DILocalVariable(name: "recvResult", scope: !294, file: !2, line: 174, type: !112) +!294 = distinct !DILexicalBlock(scope: !289, file: !2, line: 169, column: 5) +!295 = !DILocation(line: 174, column: 13, scope: !294) +!296 = !DILocalVariable(name: "service", scope: !294, file: !2, line: 175, type: !119) +!297 = !DILocation(line: 175, column: 28, scope: !294) +!298 = !DILocalVariable(name: "listenSocket", scope: !294, file: !2, line: 176, type: !112) +!299 = !DILocation(line: 176, column: 16, scope: !294) +!300 = !DILocalVariable(name: "acceptSocket", scope: !294, file: !2, line: 177, type: !112) +!301 = !DILocation(line: 177, column: 16, scope: !294) +!302 = !DILocalVariable(name: "inputBuffer", scope: !294, file: !2, line: 178, type: !95) +!303 = !DILocation(line: 178, column: 14, scope: !294) +!304 = !DILocation(line: 179, column: 9, scope: !294) +!305 = !DILocation(line: 189, column: 28, scope: !306) +!306 = distinct !DILexicalBlock(scope: !294, file: !2, line: 180, column: 9) +!307 = !DILocation(line: 189, column: 26, scope: !306) +!308 = !DILocation(line: 190, column: 17, scope: !309) +!309 = distinct !DILexicalBlock(scope: !306, file: !2, line: 190, column: 17) +!310 = !DILocation(line: 190, column: 30, scope: !309) +!311 = !DILocation(line: 190, column: 17, scope: !306) +!312 = !DILocation(line: 192, column: 17, scope: !313) +!313 = distinct !DILexicalBlock(scope: !309, file: !2, line: 191, column: 13) +!314 = !DILocation(line: 194, column: 13, scope: !306) +!315 = !DILocation(line: 195, column: 21, scope: !306) +!316 = !DILocation(line: 195, column: 32, scope: !306) +!317 = !DILocation(line: 196, column: 21, scope: !306) +!318 = !DILocation(line: 196, column: 30, scope: !306) +!319 = !DILocation(line: 196, column: 37, scope: !306) +!320 = !DILocation(line: 197, column: 32, scope: !306) +!321 = !DILocation(line: 197, column: 21, scope: !306) +!322 = !DILocation(line: 197, column: 30, scope: !306) +!323 = !DILocation(line: 198, column: 22, scope: !324) +!324 = distinct !DILexicalBlock(scope: !306, file: !2, line: 198, column: 17) +!325 = !DILocation(line: 198, column: 17, scope: !324) +!326 = !DILocation(line: 198, column: 81, scope: !324) +!327 = !DILocation(line: 198, column: 17, scope: !306) +!328 = !DILocation(line: 200, column: 17, scope: !329) +!329 = distinct !DILexicalBlock(scope: !324, file: !2, line: 199, column: 13) +!330 = !DILocation(line: 202, column: 24, scope: !331) +!331 = distinct !DILexicalBlock(scope: !306, file: !2, line: 202, column: 17) +!332 = !DILocation(line: 202, column: 17, scope: !331) +!333 = !DILocation(line: 202, column: 54, scope: !331) +!334 = !DILocation(line: 202, column: 17, scope: !306) +!335 = !DILocation(line: 204, column: 17, scope: !336) +!336 = distinct !DILexicalBlock(scope: !331, file: !2, line: 203, column: 13) +!337 = !DILocation(line: 206, column: 35, scope: !306) +!338 = !DILocation(line: 206, column: 28, scope: !306) +!339 = !DILocation(line: 206, column: 26, scope: !306) +!340 = !DILocation(line: 207, column: 17, scope: !341) +!341 = distinct !DILexicalBlock(scope: !306, file: !2, line: 207, column: 17) +!342 = !DILocation(line: 207, column: 30, scope: !341) +!343 = !DILocation(line: 207, column: 17, scope: !306) +!344 = !DILocation(line: 209, column: 17, scope: !345) +!345 = distinct !DILexicalBlock(scope: !341, file: !2, line: 208, column: 13) +!346 = !DILocation(line: 212, column: 31, scope: !306) +!347 = !DILocation(line: 212, column: 45, scope: !306) +!348 = !DILocation(line: 212, column: 26, scope: !306) +!349 = !DILocation(line: 212, column: 24, scope: !306) +!350 = !DILocation(line: 213, column: 17, scope: !351) +!351 = distinct !DILexicalBlock(scope: !306, file: !2, line: 213, column: 17) +!352 = !DILocation(line: 213, column: 28, scope: !351) +!353 = !DILocation(line: 213, column: 44, scope: !351) +!354 = !DILocation(line: 213, column: 47, scope: !351) +!355 = !DILocation(line: 213, column: 58, scope: !351) +!356 = !DILocation(line: 213, column: 17, scope: !306) +!357 = !DILocation(line: 215, column: 17, scope: !358) +!358 = distinct !DILexicalBlock(scope: !351, file: !2, line: 214, column: 13) +!359 = !DILocation(line: 218, column: 25, scope: !306) +!360 = !DILocation(line: 218, column: 13, scope: !306) +!361 = !DILocation(line: 218, column: 37, scope: !306) +!362 = !DILocation(line: 220, column: 25, scope: !306) +!363 = !DILocation(line: 220, column: 20, scope: !306) +!364 = !DILocation(line: 220, column: 18, scope: !306) +!365 = !DILocation(line: 221, column: 9, scope: !306) +!366 = !DILocation(line: 223, column: 13, scope: !367) +!367 = distinct !DILexicalBlock(scope: !294, file: !2, line: 223, column: 13) +!368 = !DILocation(line: 223, column: 26, scope: !367) +!369 = !DILocation(line: 223, column: 13, scope: !294) +!370 = !DILocation(line: 225, column: 26, scope: !371) +!371 = distinct !DILexicalBlock(scope: !367, file: !2, line: 224, column: 9) +!372 = !DILocation(line: 225, column: 13, scope: !371) +!373 = !DILocation(line: 226, column: 9, scope: !371) +!374 = !DILocation(line: 227, column: 13, scope: !375) +!375 = distinct !DILexicalBlock(scope: !294, file: !2, line: 227, column: 13) +!376 = !DILocation(line: 227, column: 26, scope: !375) +!377 = !DILocation(line: 227, column: 13, scope: !294) +!378 = !DILocation(line: 229, column: 26, scope: !379) +!379 = distinct !DILexicalBlock(scope: !375, file: !2, line: 228, column: 9) +!380 = !DILocation(line: 229, column: 13, scope: !379) +!381 = !DILocation(line: 230, column: 9, scope: !379) +!382 = !DILocalVariable(name: "buffer", scope: !383, file: !2, line: 239, type: !222) +!383 = distinct !DILexicalBlock(scope: !289, file: !2, line: 238, column: 5) +!384 = !DILocation(line: 239, column: 13, scope: !383) +!385 = !DILocation(line: 241, column: 13, scope: !386) +!386 = distinct !DILexicalBlock(scope: !383, file: !2, line: 241, column: 13) +!387 = !DILocation(line: 241, column: 18, scope: !386) +!388 = !DILocation(line: 241, column: 23, scope: !386) +!389 = !DILocation(line: 241, column: 26, scope: !386) +!390 = !DILocation(line: 241, column: 31, scope: !386) +!391 = !DILocation(line: 241, column: 13, scope: !383) +!392 = !DILocation(line: 243, column: 33, scope: !393) +!393 = distinct !DILexicalBlock(scope: !386, file: !2, line: 242, column: 9) +!394 = !DILocation(line: 243, column: 26, scope: !393) +!395 = !DILocation(line: 243, column: 13, scope: !393) +!396 = !DILocation(line: 244, column: 9, scope: !393) +!397 = !DILocation(line: 247, column: 13, scope: !398) +!398 = distinct !DILexicalBlock(scope: !386, file: !2, line: 246, column: 9) +!399 = !DILocation(line: 250, column: 1, scope: !289) diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c.bc index 06b58a4a..274ac869 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c.bc @@ -210,7 +210,7 @@ attributes #8 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !27, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__char_alloca_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a66eda62171c05457f61977ce8a0c829") !24 = !{!25, !26} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -223,7 +223,7 @@ attributes #8 = { nounwind } !32 = !{i32 7, !"PIE Level", i32 2} !33 = !{i32 7, !"uwtable", i32 2} !34 = !{i32 7, !"frame-pointer", i32 2} -!35 = !{!"clang version 16.0.0"} +!35 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !36 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__char_alloca_memcpy_01_bad", scope: !2, file: !2, line: 23, type: !37, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !39) !37 = !DISubroutineType(types: !38) !38 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c.bc index 9a8a4be4..d4b38397 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c.bc @@ -246,7 +246,7 @@ attributes #7 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fcac898ff0cc0ffe7a7d669ada9db145") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -258,7 +258,7 @@ attributes #7 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__char_declare_loop_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c.bc index f50482ca..2316ed2d 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c.bc @@ -198,7 +198,7 @@ attributes #8 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__char_declare_memcpy_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9b53c0ef545d08d84fc8a32b9529785b") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -210,7 +210,7 @@ attributes #8 = { nounwind } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__char_declare_memcpy_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c.bc index 8e65739f..33448948 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c.bc @@ -273,7 +273,7 @@ attributes #11 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "72cd65d799bfee639e2521627f12a5f3") !24 = !{!25, !26, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -287,7 +287,7 @@ attributes #11 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__malloc_char_loop_01_bad", scope: !2, file: !2, line: 23, type: !38, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c.bc index fa0dcdb8..ab6e5997 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c.bc @@ -221,7 +221,7 @@ attributes #12 = { nounwind } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !28, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_char_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "dd88e1f646934aa1f9d3df4898740b81") !24 = !{!25, !26, !27} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -235,7 +235,7 @@ attributes #12 = { nounwind } !33 = !{i32 7, !"PIE Level", i32 2} !34 = !{i32 7, !"uwtable", i32 2} !35 = !{i32 7, !"frame-pointer", i32 2} -!36 = !{!"clang version 16.0.0"} +!36 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !37 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__malloc_char_memmove_01_bad", scope: !2, file: !2, line: 23, type: !38, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !40) !38 = !DISubroutineType(types: !39) !39 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c.bc index 8a7a2276..418ca6e3 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c.bc @@ -264,7 +264,7 @@ attributes #10 = { nounwind willreturn memory(read) } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fd7794febb7b6a8bed29a61ecf0257d7") !24 = !{!25, !29, !30} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -281,7 +281,7 @@ attributes #10 = { nounwind willreturn memory(read) } !36 = !{i32 7, !"PIE Level", i32 2} !37 = !{i32 7, !"uwtable", i32 2} !38 = !{i32 7, !"frame-pointer", i32 2} -!39 = !{!"clang version 16.0.0"} +!39 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !40 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__malloc_wchar_t_loop_01_bad", scope: !2, file: !2, line: 23, type: !41, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !43) !41 = !DISubroutineType(types: !42) !42 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c.bc index ddac79a0..fc301583 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c.bc @@ -222,7 +222,7 @@ attributes #11 = { nounwind willreturn memory(read) } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !31, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__malloc_wchar_t_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8635215214eb5e3f64c9415242ab6099") !24 = !{!25, !29, !30} !25 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !26, size: 64) @@ -239,7 +239,7 @@ attributes #11 = { nounwind willreturn memory(read) } !36 = !{i32 7, !"PIE Level", i32 2} !37 = !{i32 7, !"uwtable", i32 2} !38 = !{i32 7, !"frame-pointer", i32 2} -!39 = !{!"clang version 16.0.0"} +!39 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !40 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__malloc_wchar_t_memmove_01_bad", scope: !2, file: !2, line: 23, type: !41, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !43) !41 = !DISubroutineType(types: !42) !42 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c.bc index 564ad985..4e7210d7 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c.bc @@ -248,7 +248,7 @@ attributes #6 = { nounwind willreturn memory(read) } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_loop_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8121ec4b77d60b31a8dcc59c35429d61") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -260,7 +260,7 @@ attributes #6 = { nounwind willreturn memory(read) } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__wchar_t_declare_loop_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c.bc b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c.bc index ba6aa96f..df93f43e 100644 --- a/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c.bc @@ -199,7 +199,7 @@ attributes #7 = { nounwind willreturn memory(read) } !19 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 120, elements: !20) !20 = !{!21} !21 = !DISubrange(count: 15) -!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) +!22 = distinct !DICompileUnit(language: DW_LANG_C11, file: !23, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !24, globals: !26, splitDebugInlining: false, nameTableKind: None) !23 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/CWE126_Buffer_Overread__wchar_t_declare_memmove_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "422abfa59a070cda3ffbaffe16fff5a8") !24 = !{!25} !25 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) @@ -211,7 +211,7 @@ attributes #7 = { nounwind willreturn memory(read) } !31 = !{i32 7, !"PIE Level", i32 2} !32 = !{i32 7, !"uwtable", i32 2} !33 = !{i32 7, !"frame-pointer", i32 2} -!34 = !{!"clang version 16.0.0"} +!34 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !35 = distinct !DISubprogram(name: "CWE126_Buffer_Overread__wchar_t_declare_memmove_01_bad", scope: !2, file: !2, line: 23, type: !36, scopeLine: 24, spFlags: DISPFlagDefinition, unit: !22, retainedNodes: !38) !36 = !DISubroutineType(types: !37) !37 = !{null} diff --git a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_01.c.bc b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_01.c.bc index a97516bd..03f1cb97 100644 --- a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_01.c.bc +++ b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_01.c.bc @@ -59,7 +59,7 @@ attributes #4 = { nounwind } !9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 48, elements: !10) !10 = !{!11} !11 = !DISubrange(count: 6) -!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !14, splitDebugInlining: false, nameTableKind: None) +!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !14, splitDebugInlining: false, nameTableKind: None) !13 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/ExtAPI_strcat_01.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "37510f61bc67ba1273d991d36467520a") !14 = !{!0, !7} !15 = !{i32 7, !"Dwarf Version", i32 5} @@ -69,7 +69,7 @@ attributes #4 = { nounwind } !19 = !{i32 7, !"PIE Level", i32 2} !20 = !{i32 7, !"uwtable", i32 2} !21 = !{i32 7, !"frame-pointer", i32 2} -!22 = !{!"clang version 16.0.0"} +!22 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !23 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 5, type: !24, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !12, retainedNodes: !27) !24 = !DISubroutineType(types: !25) !25 = !{!26} diff --git a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_02.c.bc b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_02.c.bc index 20945d68..ff769368 100644 --- a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_02.c.bc +++ b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_02.c.bc @@ -115,7 +115,7 @@ attributes #6 = { nounwind } !28 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 96, elements: !29) !29 = !{!30} !30 = !DISubrange(count: 12) -!31 = distinct !DICompileUnit(language: DW_LANG_C11, file: !32, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !33, splitDebugInlining: false, nameTableKind: None) +!31 = distinct !DICompileUnit(language: DW_LANG_C11, file: !32, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !33, splitDebugInlining: false, nameTableKind: None) !32 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/ExtAPI_strcat_02.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "129a4513e6200aec4a4fee5116412a13") !33 = !{!0, !7, !9, !14, !19, !24, !26} !34 = !{i32 7, !"Dwarf Version", i32 5} @@ -125,7 +125,7 @@ attributes #6 = { nounwind } !38 = !{i32 7, !"PIE Level", i32 2} !39 = !{i32 7, !"uwtable", i32 2} !40 = !{i32 7, !"frame-pointer", i32 2} -!41 = !{!"clang version 16.0.0"} +!41 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !42 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 4, type: !43, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !31, retainedNodes: !46) !43 = !DISubroutineType(types: !44) !44 = !{!45} diff --git a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_03.c.bc b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_03.c.bc index def97389..a35de4e6 100644 --- a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_03.c.bc +++ b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_03.c.bc @@ -82,7 +82,7 @@ attributes #7 = { nounwind willreturn memory(read) } !14 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 96, elements: !15) !15 = !{!16} !16 = !DISubrange(count: 12) -!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) +!17 = distinct !DICompileUnit(language: DW_LANG_C11, file: !18, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !19, splitDebugInlining: false, nameTableKind: None) !18 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/ExtAPI_strcat_03.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7fb3e83750fbaa054f3b14665d795541") !19 = !{!0, !7, !12} !20 = !{i32 7, !"Dwarf Version", i32 5} @@ -92,7 +92,7 @@ attributes #7 = { nounwind willreturn memory(read) } !24 = !{i32 7, !"PIE Level", i32 2} !25 = !{i32 7, !"uwtable", i32 2} !26 = !{i32 7, !"frame-pointer", i32 2} -!27 = !{!"clang version 16.0.0"} +!27 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !28 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 5, type: !29, scopeLine: 5, spFlags: DISPFlagDefinition, unit: !17, retainedNodes: !32) !29 = !DISubroutineType(types: !30) !30 = !{!31} diff --git a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_04.c.bc b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_04.c.bc index 109d11e2..0c4615b3 100644 --- a/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_04.c.bc +++ b/test_cases_bc/ae_overflow_tests/ExtAPI_strcat_04.c.bc @@ -85,7 +85,7 @@ attributes #7 = { nounwind willreturn memory(read) } !11 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 96, elements: !12) !12 = !{!13} !13 = !DISubrange(count: 12) -!14 = distinct !DICompileUnit(language: DW_LANG_C11, file: !15, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !16, splitDebugInlining: false, nameTableKind: None) +!14 = distinct !DICompileUnit(language: DW_LANG_C11, file: !15, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !16, splitDebugInlining: false, nameTableKind: None) !15 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_overflow_tests/ExtAPI_strcat_04.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fd5da5948da61c478b63a4564f9e5cd6") !16 = !{!0, !7, !9} !17 = !{i32 7, !"Dwarf Version", i32 5} @@ -95,7 +95,7 @@ attributes #7 = { nounwind willreturn memory(read) } !21 = !{i32 7, !"PIE Level", i32 2} !22 = !{i32 7, !"uwtable", i32 2} !23 = !{i32 7, !"frame-pointer", i32 2} -!24 = !{!"clang version 16.0.0"} +!24 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !25 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 4, type: !26, scopeLine: 4, spFlags: DISPFlagDefinition, unit: !14, retainedNodes: !29) !26 = !DISubroutineType(types: !27) !27 = !{!28} diff --git a/test_cases_bc/ae_recursion_tests/demo.c.bc b/test_cases_bc/ae_recursion_tests/demo.c.bc new file mode 100644 index 00000000..22eeb9e9 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/demo.c.bc @@ -0,0 +1,111 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/demo.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/demo.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [7 x i8] c"result\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo(i32 noundef %a) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %a.addr = alloca i32, align 4 + store i32 %a, ptr %a.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %a.addr, align 4, !dbg !25 + %cmp = icmp sge i32 %0, 10000, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + %1 = load i32, ptr %a.addr, align 4, !dbg !29 + store i32 %1, ptr %retval, align 4, !dbg !30 + br label %return, !dbg !30 + +if.end: ; preds = %entry + %2 = load i32, ptr %a.addr, align 4, !dbg !31 + %add = add nsw i32 %2, 1, !dbg !32 + %call = call i32 @demo(i32 noundef %add), !dbg !33 + br label %return, !dbg !34 + +return: ; preds = %if.end, %if.then + %3 = load i32, ptr %retval, align 4, !dbg !34 + ret i32 %3, !dbg !34 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !35 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !38, metadata !DIExpression()), !dbg !39 + %call = call i32 @demo(i32 noundef 0), !dbg !40 + store i32 %call, ptr %result, align 4, !dbg !39 + %0 = load i32, ptr %result, align 4, !dbg !41 + call void @svf_print(i32 noundef %0, ptr noundef @.str), !dbg !42 + %1 = load i32, ptr %result, align 4, !dbg !43 + %cmp = icmp eq i32 %1, 10000, !dbg !44 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !45 + ret i32 0, !dbg !46 +} + +declare void @svf_print(i32 noundef, ptr noundef) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 13, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/demo.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7ad51fa5feac138f824f2633c177d175") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 56, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 7) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/demo.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7ad51fa5feac138f824f2633c177d175") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "demo", scope: !2, file: !2, line: 5, type: !19, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "a", arg: 1, scope: !18, file: !2, line: 5, type: !21) +!24 = !DILocation(line: 5, column: 14, scope: !18) +!25 = !DILocation(line: 6, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 6, column: 9) +!27 = !DILocation(line: 6, column: 11, scope: !26) +!28 = !DILocation(line: 6, column: 9, scope: !18) +!29 = !DILocation(line: 7, column: 16, scope: !26) +!30 = !DILocation(line: 7, column: 9, scope: !26) +!31 = !DILocation(line: 8, column: 10, scope: !18) +!32 = !DILocation(line: 8, column: 11, scope: !18) +!33 = !DILocation(line: 8, column: 5, scope: !18) +!34 = !DILocation(line: 9, column: 1, scope: !18) +!35 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 11, type: !36, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!36 = !DISubroutineType(types: !37) +!37 = !{!21} +!38 = !DILocalVariable(name: "result", scope: !35, file: !2, line: 12, type: !21) +!39 = !DILocation(line: 12, column: 9, scope: !35) +!40 = !DILocation(line: 12, column: 18, scope: !35) +!41 = !DILocation(line: 13, column: 15, scope: !35) +!42 = !DILocation(line: 13, column: 5, scope: !35) +!43 = !DILocation(line: 14, column: 16, scope: !35) +!44 = !DILocation(line: 14, column: 23, scope: !35) +!45 = !DILocation(line: 14, column: 5, scope: !35) +!46 = !DILocation(line: 15, column: 1, scope: !35) diff --git a/test_cases_bc/ae_recursion_tests/recursive_addition_0.c.bc b/test_cases_bc/ae_recursion_tests/recursive_addition_0.c.bc new file mode 100644 index 00000000..a2d7d7d7 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_addition_0.c.bc @@ -0,0 +1,143 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_addition_0.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_0.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @addition(i32 noundef %m, i32 noundef %n) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %m.addr = alloca i32, align 4 + %n.addr = alloca i32, align 4 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp eq i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.end, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + store i32 %1, ptr %retval, align 4, !dbg !26 + br label %if.end9, !dbg !26 + +if.end: ; preds = %entry + %2 = load i32, ptr %n.addr, align 4, !dbg !27 + %cmp1 = icmp sgt i32 %2, 0, !dbg !29 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !30 + +if.then2: ; preds = %if.end + %3 = load i32, ptr %m.addr, align 4, !dbg !31 + %add = add nsw i32 %3, 1, !dbg !33 + %4 = load i32, ptr %n.addr, align 4, !dbg !34 + %sub = sub nsw i32 %4, 1, !dbg !35 + %call = call i32 @addition(i32 noundef %add, i32 noundef %sub), !dbg !36 + store i32 %call, ptr %retval, align 4, !dbg !37 + br label %if.end9, !dbg !37 + +if.end3: ; preds = %if.end + %5 = load i32, ptr %n.addr, align 4, !dbg !38 + %cmp4 = icmp slt i32 %5, 0, !dbg !40 + br i1 %cmp4, label %if.then5, label %if.end9, !dbg !41 + +if.then5: ; preds = %if.end3 + %6 = load i32, ptr %m.addr, align 4, !dbg !42 + %sub6 = sub nsw i32 %6, 1, !dbg !44 + %7 = load i32, ptr %n.addr, align 4, !dbg !45 + %add7 = add nsw i32 %7, 1, !dbg !46 + %call8 = call i32 @addition(i32 noundef %sub6, i32 noundef %add7), !dbg !47 + store i32 %call8, ptr %retval, align 4, !dbg !48 + br label %if.end9, !dbg !48 + +if.end9: ; preds = %if.then5, %if.end3, %if.then2, %if.then + %8 = load i32, ptr %retval, align 4, !dbg !49 + ret i32 %8, !dbg !49 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !50 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !53, metadata !DIExpression()), !dbg !54 + %call = call i32 @addition(i32 noundef 10, i32 noundef 5), !dbg !55 + store i32 %call, ptr %result, align 4, !dbg !54 + %0 = load i32, ptr %result, align 4, !dbg !56 + %cmp = icmp sge i32 %0, 10, !dbg !57 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !58 + ret i32 0, !dbg !59 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2ff9b777bcbe6b2d289a31955c433531") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "addition", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_addition_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2ff9b777bcbe6b2d289a31955c433531") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "m", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 18, scope: !10) +!18 = !DILocalVariable(name: "n", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 25, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 9, scope: !25) +!27 = !DILocation(line: 8, column: 9, scope: !28) +!28 = distinct !DILexicalBlock(scope: !10, file: !11, line: 8, column: 9) +!29 = !DILocation(line: 8, column: 11, scope: !28) +!30 = !DILocation(line: 8, column: 9, scope: !10) +!31 = !DILocation(line: 9, column: 25, scope: !32) +!32 = distinct !DILexicalBlock(scope: !28, file: !11, line: 8, column: 16) +!33 = !DILocation(line: 9, column: 26, scope: !32) +!34 = !DILocation(line: 9, column: 30, scope: !32) +!35 = !DILocation(line: 9, column: 31, scope: !32) +!36 = !DILocation(line: 9, column: 16, scope: !32) +!37 = !DILocation(line: 9, column: 9, scope: !32) +!38 = !DILocation(line: 11, column: 9, scope: !39) +!39 = distinct !DILexicalBlock(scope: !10, file: !11, line: 11, column: 9) +!40 = !DILocation(line: 11, column: 11, scope: !39) +!41 = !DILocation(line: 11, column: 9, scope: !10) +!42 = !DILocation(line: 12, column: 25, scope: !43) +!43 = distinct !DILexicalBlock(scope: !39, file: !11, line: 11, column: 16) +!44 = !DILocation(line: 12, column: 26, scope: !43) +!45 = !DILocation(line: 12, column: 30, scope: !43) +!46 = !DILocation(line: 12, column: 31, scope: !43) +!47 = !DILocation(line: 12, column: 16, scope: !43) +!48 = !DILocation(line: 12, column: 9, scope: !43) +!49 = !DILocation(line: 14, column: 1, scope: !10) +!50 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 16, type: !51, scopeLine: 16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!51 = !DISubroutineType(types: !52) +!52 = !{!14} +!53 = !DILocalVariable(name: "result", scope: !50, file: !11, line: 17, type: !14) +!54 = !DILocation(line: 17, column: 9, scope: !50) +!55 = !DILocation(line: 17, column: 18, scope: !50) +!56 = !DILocation(line: 19, column: 16, scope: !50) +!57 = !DILocation(line: 19, column: 23, scope: !50) +!58 = !DILocation(line: 19, column: 5, scope: !50) +!59 = !DILocation(line: 20, column: 1, scope: !50) diff --git a/test_cases_bc/ae_recursion_tests/recursive_addition_1.c.bc b/test_cases_bc/ae_recursion_tests/recursive_addition_1.c.bc new file mode 100644 index 00000000..aea2f3e5 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_addition_1.c.bc @@ -0,0 +1,143 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_addition_1.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @addition(i32 noundef %m, i32 noundef %n) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %m.addr = alloca i32, align 4 + %n.addr = alloca i32, align 4 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp eq i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.end, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + store i32 %1, ptr %retval, align 4, !dbg !26 + br label %if.end9, !dbg !26 + +if.end: ; preds = %entry + %2 = load i32, ptr %n.addr, align 4, !dbg !27 + %cmp1 = icmp sgt i32 %2, 0, !dbg !29 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !30 + +if.then2: ; preds = %if.end + %3 = load i32, ptr %m.addr, align 4, !dbg !31 + %add = add nsw i32 %3, 1, !dbg !33 + %4 = load i32, ptr %n.addr, align 4, !dbg !34 + %sub = sub nsw i32 %4, 1, !dbg !35 + %call = call i32 @addition(i32 noundef %add, i32 noundef %sub), !dbg !36 + store i32 %call, ptr %retval, align 4, !dbg !37 + br label %if.end9, !dbg !37 + +if.end3: ; preds = %if.end + %5 = load i32, ptr %n.addr, align 4, !dbg !38 + %cmp4 = icmp slt i32 %5, 0, !dbg !40 + br i1 %cmp4, label %if.then5, label %if.end9, !dbg !41 + +if.then5: ; preds = %if.end3 + %6 = load i32, ptr %m.addr, align 4, !dbg !42 + %sub6 = sub nsw i32 %6, 1, !dbg !44 + %7 = load i32, ptr %n.addr, align 4, !dbg !45 + %add7 = add nsw i32 %7, 1, !dbg !46 + %call8 = call i32 @addition(i32 noundef %sub6, i32 noundef %add7), !dbg !47 + store i32 %call8, ptr %retval, align 4, !dbg !48 + br label %if.end9, !dbg !48 + +if.end9: ; preds = %if.then5, %if.end3, %if.then2, %if.then + %8 = load i32, ptr %retval, align 4, !dbg !49 + ret i32 %8, !dbg !49 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !50 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !53, metadata !DIExpression()), !dbg !54 + %call = call i32 @addition(i32 noundef 0, i32 noundef 5), !dbg !55 + store i32 %call, ptr %result, align 4, !dbg !54 + %0 = load i32, ptr %result, align 4, !dbg !56 + %cmp = icmp sge i32 %0, 0, !dbg !57 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !58 + ret i32 0, !dbg !59 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c2cc42baf7f23a262cf0c0c9bc26e60f") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "addition", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_addition_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c2cc42baf7f23a262cf0c0c9bc26e60f") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "m", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 18, scope: !10) +!18 = !DILocalVariable(name: "n", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 25, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 9, scope: !25) +!27 = !DILocation(line: 8, column: 9, scope: !28) +!28 = distinct !DILexicalBlock(scope: !10, file: !11, line: 8, column: 9) +!29 = !DILocation(line: 8, column: 11, scope: !28) +!30 = !DILocation(line: 8, column: 9, scope: !10) +!31 = !DILocation(line: 9, column: 25, scope: !32) +!32 = distinct !DILexicalBlock(scope: !28, file: !11, line: 8, column: 16) +!33 = !DILocation(line: 9, column: 26, scope: !32) +!34 = !DILocation(line: 9, column: 30, scope: !32) +!35 = !DILocation(line: 9, column: 31, scope: !32) +!36 = !DILocation(line: 9, column: 16, scope: !32) +!37 = !DILocation(line: 9, column: 9, scope: !32) +!38 = !DILocation(line: 11, column: 9, scope: !39) +!39 = distinct !DILexicalBlock(scope: !10, file: !11, line: 11, column: 9) +!40 = !DILocation(line: 11, column: 11, scope: !39) +!41 = !DILocation(line: 11, column: 9, scope: !10) +!42 = !DILocation(line: 12, column: 25, scope: !43) +!43 = distinct !DILexicalBlock(scope: !39, file: !11, line: 11, column: 16) +!44 = !DILocation(line: 12, column: 26, scope: !43) +!45 = !DILocation(line: 12, column: 30, scope: !43) +!46 = !DILocation(line: 12, column: 31, scope: !43) +!47 = !DILocation(line: 12, column: 16, scope: !43) +!48 = !DILocation(line: 12, column: 9, scope: !43) +!49 = !DILocation(line: 14, column: 1, scope: !10) +!50 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 16, type: !51, scopeLine: 16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!51 = !DISubroutineType(types: !52) +!52 = !{!14} +!53 = !DILocalVariable(name: "result", scope: !50, file: !11, line: 17, type: !14) +!54 = !DILocation(line: 17, column: 9, scope: !50) +!55 = !DILocation(line: 17, column: 18, scope: !50) +!56 = !DILocation(line: 19, column: 16, scope: !50) +!57 = !DILocation(line: 19, column: 23, scope: !50) +!58 = !DILocation(line: 19, column: 5, scope: !50) +!59 = !DILocation(line: 20, column: 1, scope: !50) diff --git a/test_cases_bc/ae_recursion_tests/recursive_addition_2.c.bc b/test_cases_bc/ae_recursion_tests/recursive_addition_2.c.bc new file mode 100644 index 00000000..99c2b9d9 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_addition_2.c.bc @@ -0,0 +1,143 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_addition_2.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @addition(i32 noundef %m, i32 noundef %n) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %m.addr = alloca i32, align 4 + %n.addr = alloca i32, align 4 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp eq i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.end, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + store i32 %1, ptr %retval, align 4, !dbg !26 + br label %if.end9, !dbg !26 + +if.end: ; preds = %entry + %2 = load i32, ptr %n.addr, align 4, !dbg !27 + %cmp1 = icmp sgt i32 %2, 0, !dbg !29 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !30 + +if.then2: ; preds = %if.end + %3 = load i32, ptr %m.addr, align 4, !dbg !31 + %add = add nsw i32 %3, 1, !dbg !33 + %4 = load i32, ptr %n.addr, align 4, !dbg !34 + %sub = sub nsw i32 %4, 1, !dbg !35 + %call = call i32 @addition(i32 noundef %add, i32 noundef %sub), !dbg !36 + store i32 %call, ptr %retval, align 4, !dbg !37 + br label %if.end9, !dbg !37 + +if.end3: ; preds = %if.end + %5 = load i32, ptr %n.addr, align 4, !dbg !38 + %cmp4 = icmp slt i32 %5, 0, !dbg !40 + br i1 %cmp4, label %if.then5, label %if.end9, !dbg !41 + +if.then5: ; preds = %if.end3 + %6 = load i32, ptr %m.addr, align 4, !dbg !42 + %sub6 = sub nsw i32 %6, 1, !dbg !44 + %7 = load i32, ptr %n.addr, align 4, !dbg !45 + %add7 = add nsw i32 %7, 1, !dbg !46 + %call8 = call i32 @addition(i32 noundef %sub6, i32 noundef %add7), !dbg !47 + store i32 %call8, ptr %retval, align 4, !dbg !48 + br label %if.end9, !dbg !48 + +if.end9: ; preds = %if.then5, %if.end3, %if.then2, %if.then + %8 = load i32, ptr %retval, align 4, !dbg !49 + ret i32 %8, !dbg !49 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !50 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !53, metadata !DIExpression()), !dbg !54 + %call = call i32 @addition(i32 noundef 0, i32 noundef -5), !dbg !55 + store i32 %call, ptr %result, align 4, !dbg !54 + %0 = load i32, ptr %result, align 4, !dbg !56 + %cmp = icmp sle i32 %0, 0, !dbg !57 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !58 + ret i32 0, !dbg !59 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3d74a85934f1cefdc1db2e243c9ad691") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "addition", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_addition_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3d74a85934f1cefdc1db2e243c9ad691") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "m", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 18, scope: !10) +!18 = !DILocalVariable(name: "n", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 25, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 9, scope: !25) +!27 = !DILocation(line: 8, column: 9, scope: !28) +!28 = distinct !DILexicalBlock(scope: !10, file: !11, line: 8, column: 9) +!29 = !DILocation(line: 8, column: 11, scope: !28) +!30 = !DILocation(line: 8, column: 9, scope: !10) +!31 = !DILocation(line: 9, column: 25, scope: !32) +!32 = distinct !DILexicalBlock(scope: !28, file: !11, line: 8, column: 16) +!33 = !DILocation(line: 9, column: 26, scope: !32) +!34 = !DILocation(line: 9, column: 30, scope: !32) +!35 = !DILocation(line: 9, column: 31, scope: !32) +!36 = !DILocation(line: 9, column: 16, scope: !32) +!37 = !DILocation(line: 9, column: 9, scope: !32) +!38 = !DILocation(line: 11, column: 9, scope: !39) +!39 = distinct !DILexicalBlock(scope: !10, file: !11, line: 11, column: 9) +!40 = !DILocation(line: 11, column: 11, scope: !39) +!41 = !DILocation(line: 11, column: 9, scope: !10) +!42 = !DILocation(line: 12, column: 25, scope: !43) +!43 = distinct !DILexicalBlock(scope: !39, file: !11, line: 11, column: 16) +!44 = !DILocation(line: 12, column: 26, scope: !43) +!45 = !DILocation(line: 12, column: 30, scope: !43) +!46 = !DILocation(line: 12, column: 31, scope: !43) +!47 = !DILocation(line: 12, column: 16, scope: !43) +!48 = !DILocation(line: 12, column: 9, scope: !43) +!49 = !DILocation(line: 14, column: 1, scope: !10) +!50 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 16, type: !51, scopeLine: 16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!51 = !DISubroutineType(types: !52) +!52 = !{!14} +!53 = !DILocalVariable(name: "result", scope: !50, file: !11, line: 17, type: !14) +!54 = !DILocation(line: 17, column: 9, scope: !50) +!55 = !DILocation(line: 17, column: 18, scope: !50) +!56 = !DILocation(line: 19, column: 16, scope: !50) +!57 = !DILocation(line: 19, column: 23, scope: !50) +!58 = !DILocation(line: 19, column: 5, scope: !50) +!59 = !DILocation(line: 20, column: 1, scope: !50) diff --git a/test_cases_bc/ae_recursion_tests/recursive_addition_3.c.bc b/test_cases_bc/ae_recursion_tests/recursive_addition_3.c.bc new file mode 100644 index 00000000..dafe8006 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_addition_3.c.bc @@ -0,0 +1,143 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_addition_3.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_3.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @addition(i32 noundef %m, i32 noundef %n) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %m.addr = alloca i32, align 4 + %n.addr = alloca i32, align 4 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp eq i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.end, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + store i32 %1, ptr %retval, align 4, !dbg !26 + br label %if.end9, !dbg !26 + +if.end: ; preds = %entry + %2 = load i32, ptr %n.addr, align 4, !dbg !27 + %cmp1 = icmp sgt i32 %2, 0, !dbg !29 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !30 + +if.then2: ; preds = %if.end + %3 = load i32, ptr %m.addr, align 4, !dbg !31 + %add = add nsw i32 %3, 1, !dbg !33 + %4 = load i32, ptr %n.addr, align 4, !dbg !34 + %sub = sub nsw i32 %4, 1, !dbg !35 + %call = call i32 @addition(i32 noundef %add, i32 noundef %sub), !dbg !36 + store i32 %call, ptr %retval, align 4, !dbg !37 + br label %if.end9, !dbg !37 + +if.end3: ; preds = %if.end + %5 = load i32, ptr %n.addr, align 4, !dbg !38 + %cmp4 = icmp slt i32 %5, 0, !dbg !40 + br i1 %cmp4, label %if.then5, label %if.end9, !dbg !41 + +if.then5: ; preds = %if.end3 + %6 = load i32, ptr %m.addr, align 4, !dbg !42 + %sub6 = sub nsw i32 %6, 1, !dbg !44 + %7 = load i32, ptr %n.addr, align 4, !dbg !45 + %add7 = add nsw i32 %7, 1, !dbg !46 + %call8 = call i32 @addition(i32 noundef %sub6, i32 noundef %add7), !dbg !47 + store i32 %call8, ptr %retval, align 4, !dbg !48 + br label %if.end9, !dbg !48 + +if.end9: ; preds = %if.then5, %if.end3, %if.then2, %if.then + %8 = load i32, ptr %retval, align 4, !dbg !49 + ret i32 %8, !dbg !49 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !50 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !53, metadata !DIExpression()), !dbg !54 + %call = call i32 @addition(i32 noundef -10, i32 noundef -5), !dbg !55 + store i32 %call, ptr %result, align 4, !dbg !54 + %0 = load i32, ptr %result, align 4, !dbg !56 + %cmp = icmp sle i32 %0, -10, !dbg !57 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !58 + ret i32 0, !dbg !59 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "238543459c176a64f10cbc24e54042c6") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "addition", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_addition_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "238543459c176a64f10cbc24e54042c6") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "m", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 18, scope: !10) +!18 = !DILocalVariable(name: "n", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 25, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 9, scope: !25) +!27 = !DILocation(line: 8, column: 9, scope: !28) +!28 = distinct !DILexicalBlock(scope: !10, file: !11, line: 8, column: 9) +!29 = !DILocation(line: 8, column: 11, scope: !28) +!30 = !DILocation(line: 8, column: 9, scope: !10) +!31 = !DILocation(line: 9, column: 25, scope: !32) +!32 = distinct !DILexicalBlock(scope: !28, file: !11, line: 8, column: 16) +!33 = !DILocation(line: 9, column: 26, scope: !32) +!34 = !DILocation(line: 9, column: 30, scope: !32) +!35 = !DILocation(line: 9, column: 31, scope: !32) +!36 = !DILocation(line: 9, column: 16, scope: !32) +!37 = !DILocation(line: 9, column: 9, scope: !32) +!38 = !DILocation(line: 11, column: 9, scope: !39) +!39 = distinct !DILexicalBlock(scope: !10, file: !11, line: 11, column: 9) +!40 = !DILocation(line: 11, column: 11, scope: !39) +!41 = !DILocation(line: 11, column: 9, scope: !10) +!42 = !DILocation(line: 12, column: 25, scope: !43) +!43 = distinct !DILexicalBlock(scope: !39, file: !11, line: 11, column: 16) +!44 = !DILocation(line: 12, column: 26, scope: !43) +!45 = !DILocation(line: 12, column: 30, scope: !43) +!46 = !DILocation(line: 12, column: 31, scope: !43) +!47 = !DILocation(line: 12, column: 16, scope: !43) +!48 = !DILocation(line: 12, column: 9, scope: !43) +!49 = !DILocation(line: 14, column: 1, scope: !10) +!50 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 16, type: !51, scopeLine: 16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!51 = !DISubroutineType(types: !52) +!52 = !{!14} +!53 = !DILocalVariable(name: "result", scope: !50, file: !11, line: 17, type: !14) +!54 = !DILocation(line: 17, column: 9, scope: !50) +!55 = !DILocation(line: 17, column: 18, scope: !50) +!56 = !DILocation(line: 19, column: 16, scope: !50) +!57 = !DILocation(line: 19, column: 23, scope: !50) +!58 = !DILocation(line: 19, column: 5, scope: !50) +!59 = !DILocation(line: 20, column: 1, scope: !50) diff --git a/test_cases_bc/ae_recursion_tests/recursive_addition_4.c.bc b/test_cases_bc/ae_recursion_tests/recursive_addition_4.c.bc new file mode 100644 index 00000000..3dfd1ad8 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_addition_4.c.bc @@ -0,0 +1,143 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_addition_4.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_4.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @addition(i32 noundef %m, i32 noundef %n) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %m.addr = alloca i32, align 4 + %n.addr = alloca i32, align 4 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp eq i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.end, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + store i32 %1, ptr %retval, align 4, !dbg !26 + br label %if.end9, !dbg !26 + +if.end: ; preds = %entry + %2 = load i32, ptr %n.addr, align 4, !dbg !27 + %cmp1 = icmp sgt i32 %2, 0, !dbg !29 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !30 + +if.then2: ; preds = %if.end + %3 = load i32, ptr %m.addr, align 4, !dbg !31 + %add = add nsw i32 %3, 1, !dbg !33 + %4 = load i32, ptr %n.addr, align 4, !dbg !34 + %sub = sub nsw i32 %4, 1, !dbg !35 + %call = call i32 @addition(i32 noundef %add, i32 noundef %sub), !dbg !36 + store i32 %call, ptr %retval, align 4, !dbg !37 + br label %if.end9, !dbg !37 + +if.end3: ; preds = %if.end + %5 = load i32, ptr %n.addr, align 4, !dbg !38 + %cmp4 = icmp slt i32 %5, 0, !dbg !40 + br i1 %cmp4, label %if.then5, label %if.end9, !dbg !41 + +if.then5: ; preds = %if.end3 + %6 = load i32, ptr %m.addr, align 4, !dbg !42 + %sub6 = sub nsw i32 %6, 1, !dbg !44 + %7 = load i32, ptr %n.addr, align 4, !dbg !45 + %add7 = add nsw i32 %7, 1, !dbg !46 + %call8 = call i32 @addition(i32 noundef %sub6, i32 noundef %add7), !dbg !47 + store i32 %call8, ptr %retval, align 4, !dbg !48 + br label %if.end9, !dbg !48 + +if.end9: ; preds = %if.then5, %if.end3, %if.then2, %if.then + %8 = load i32, ptr %retval, align 4, !dbg !49 + ret i32 %8, !dbg !49 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !50 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !53, metadata !DIExpression()), !dbg !54 + %call = call i32 @addition(i32 noundef 0, i32 noundef 0), !dbg !55 + store i32 %call, ptr %result, align 4, !dbg !54 + %0 = load i32, ptr %result, align 4, !dbg !56 + %cmp = icmp eq i32 %0, 0, !dbg !57 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !58 + ret i32 0, !dbg !59 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_addition_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "92650bb7eaf1e982081249917ac941c2") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "addition", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_addition_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "92650bb7eaf1e982081249917ac941c2") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "m", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 18, scope: !10) +!18 = !DILocalVariable(name: "n", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 25, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 9, scope: !25) +!27 = !DILocation(line: 8, column: 9, scope: !28) +!28 = distinct !DILexicalBlock(scope: !10, file: !11, line: 8, column: 9) +!29 = !DILocation(line: 8, column: 11, scope: !28) +!30 = !DILocation(line: 8, column: 9, scope: !10) +!31 = !DILocation(line: 9, column: 25, scope: !32) +!32 = distinct !DILexicalBlock(scope: !28, file: !11, line: 8, column: 16) +!33 = !DILocation(line: 9, column: 26, scope: !32) +!34 = !DILocation(line: 9, column: 30, scope: !32) +!35 = !DILocation(line: 9, column: 31, scope: !32) +!36 = !DILocation(line: 9, column: 16, scope: !32) +!37 = !DILocation(line: 9, column: 9, scope: !32) +!38 = !DILocation(line: 11, column: 9, scope: !39) +!39 = distinct !DILexicalBlock(scope: !10, file: !11, line: 11, column: 9) +!40 = !DILocation(line: 11, column: 11, scope: !39) +!41 = !DILocation(line: 11, column: 9, scope: !10) +!42 = !DILocation(line: 12, column: 25, scope: !43) +!43 = distinct !DILexicalBlock(scope: !39, file: !11, line: 11, column: 16) +!44 = !DILocation(line: 12, column: 26, scope: !43) +!45 = !DILocation(line: 12, column: 30, scope: !43) +!46 = !DILocation(line: 12, column: 31, scope: !43) +!47 = !DILocation(line: 12, column: 16, scope: !43) +!48 = !DILocation(line: 12, column: 9, scope: !43) +!49 = !DILocation(line: 14, column: 1, scope: !10) +!50 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 16, type: !51, scopeLine: 16, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!51 = !DISubroutineType(types: !52) +!52 = !{!14} +!53 = !DILocalVariable(name: "result", scope: !50, file: !11, line: 17, type: !14) +!54 = !DILocation(line: 17, column: 9, scope: !50) +!55 = !DILocation(line: 17, column: 18, scope: !50) +!56 = !DILocation(line: 19, column: 16, scope: !50) +!57 = !DILocation(line: 19, column: 23, scope: !50) +!58 = !DILocation(line: 19, column: 5, scope: !50) +!59 = !DILocation(line: 20, column: 1, scope: !50) diff --git a/test_cases_bc/ae_recursion_tests/recursive_afterrec_0.c.bc b/test_cases_bc/ae_recursion_tests/recursive_afterrec_0.c.bc new file mode 100644 index 00000000..f6a81428 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_afterrec_0.c.bc @@ -0,0 +1,96 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_afterrec_0.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_0.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@g = dso_local global i32 0, align 4, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f(i32 noundef %n) #0 !dbg !15 { +entry: + %n.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !19, metadata !DIExpression()), !dbg !20 + %0 = load i32, ptr %n.addr, align 4, !dbg !21 + %cmp = icmp slt i32 %0, 3, !dbg !23 + br i1 %cmp, label %if.then, label %if.end, !dbg !24 + +if.then: ; preds = %entry + store i32 3, ptr @g, align 4, !dbg !25 + br label %return, !dbg !27 + +if.end: ; preds = %entry + %1 = load i32, ptr %n.addr, align 4, !dbg !28 + %dec = add nsw i32 %1, -1, !dbg !28 + store i32 %dec, ptr %n.addr, align 4, !dbg !28 + %2 = load i32, ptr %n.addr, align 4, !dbg !29 + call void @f(i32 noundef %2), !dbg !30 + br label %return, !dbg !31 + +return: ; preds = %if.end, %if.then + ret void, !dbg !31 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !32 { +entry: + call void @f(i32 noundef 4), !dbg !35 + %0 = load i32, ptr @g, align 4, !dbg !36 + %cmp = icmp eq i32 %0, 3, !dbg !37 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !38 + ret i32 0, !dbg !39 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!2} +!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13} +!llvm.ident = !{!14} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(name: "g", scope: !2, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8214b782e6314dab008b882f2e803b70") +!4 = !{!0} +!5 = !DIFile(filename: "src/ae_recursion_tests/recursive_afterrec_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8214b782e6314dab008b882f2e803b70") +!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!7 = !{i32 7, !"Dwarf Version", i32 5} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{i32 1, !"wchar_size", i32 4} +!10 = !{i32 8, !"PIC Level", i32 2} +!11 = !{i32 7, !"PIE Level", i32 2} +!12 = !{i32 7, !"uwtable", i32 2} +!13 = !{i32 7, !"frame-pointer", i32 2} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!15 = distinct !DISubprogram(name: "f", scope: !5, file: !5, line: 6, type: !16, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!16 = !DISubroutineType(types: !17) +!17 = !{null, !6} +!18 = !{} +!19 = !DILocalVariable(name: "n", arg: 1, scope: !15, file: !5, line: 6, type: !6) +!20 = !DILocation(line: 6, column: 12, scope: !15) +!21 = !DILocation(line: 7, column: 9, scope: !22) +!22 = distinct !DILexicalBlock(scope: !15, file: !5, line: 7, column: 9) +!23 = !DILocation(line: 7, column: 10, scope: !22) +!24 = !DILocation(line: 7, column: 9, scope: !15) +!25 = !DILocation(line: 8, column: 11, scope: !26) +!26 = distinct !DILexicalBlock(scope: !22, file: !5, line: 7, column: 13) +!27 = !DILocation(line: 9, column: 9, scope: !26) +!28 = !DILocation(line: 11, column: 6, scope: !15) +!29 = !DILocation(line: 12, column: 7, scope: !15) +!30 = !DILocation(line: 12, column: 5, scope: !15) +!31 = !DILocation(line: 13, column: 1, scope: !15) +!32 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 15, type: !33, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!33 = !DISubroutineType(types: !34) +!34 = !{!6} +!35 = !DILocation(line: 16, column: 5, scope: !32) +!36 = !DILocation(line: 18, column: 16, scope: !32) +!37 = !DILocation(line: 18, column: 18, scope: !32) +!38 = !DILocation(line: 18, column: 5, scope: !32) +!39 = !DILocation(line: 19, column: 1, scope: !32) diff --git a/test_cases_bc/ae_recursion_tests/recursive_afterrec_1.c.bc b/test_cases_bc/ae_recursion_tests/recursive_afterrec_1.c.bc new file mode 100644 index 00000000..600ad987 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_afterrec_1.c.bc @@ -0,0 +1,96 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_afterrec_1.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@g = dso_local global i32 0, align 4, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f(i32 noundef %n) #0 !dbg !15 { +entry: + %n.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !19, metadata !DIExpression()), !dbg !20 + %0 = load i32, ptr %n.addr, align 4, !dbg !21 + %cmp = icmp slt i32 %0, 3, !dbg !23 + br i1 %cmp, label %if.then, label %if.end, !dbg !24 + +if.then: ; preds = %entry + store i32 3, ptr @g, align 4, !dbg !25 + br label %return, !dbg !27 + +if.end: ; preds = %entry + %1 = load i32, ptr %n.addr, align 4, !dbg !28 + %dec = add nsw i32 %1, -1, !dbg !28 + store i32 %dec, ptr %n.addr, align 4, !dbg !28 + %2 = load i32, ptr %n.addr, align 4, !dbg !29 + call void @f(i32 noundef %2), !dbg !30 + br label %return, !dbg !31 + +return: ; preds = %if.end, %if.then + ret void, !dbg !31 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !32 { +entry: + call void @f(i32 noundef 10), !dbg !35 + %0 = load i32, ptr @g, align 4, !dbg !36 + %cmp = icmp eq i32 %0, 3, !dbg !37 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !38 + ret i32 0, !dbg !39 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!2} +!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13} +!llvm.ident = !{!14} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(name: "g", scope: !2, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b7f9352a1c024034e0580a63df160fcc") +!4 = !{!0} +!5 = !DIFile(filename: "src/ae_recursion_tests/recursive_afterrec_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b7f9352a1c024034e0580a63df160fcc") +!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!7 = !{i32 7, !"Dwarf Version", i32 5} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{i32 1, !"wchar_size", i32 4} +!10 = !{i32 8, !"PIC Level", i32 2} +!11 = !{i32 7, !"PIE Level", i32 2} +!12 = !{i32 7, !"uwtable", i32 2} +!13 = !{i32 7, !"frame-pointer", i32 2} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!15 = distinct !DISubprogram(name: "f", scope: !5, file: !5, line: 6, type: !16, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!16 = !DISubroutineType(types: !17) +!17 = !{null, !6} +!18 = !{} +!19 = !DILocalVariable(name: "n", arg: 1, scope: !15, file: !5, line: 6, type: !6) +!20 = !DILocation(line: 6, column: 12, scope: !15) +!21 = !DILocation(line: 7, column: 9, scope: !22) +!22 = distinct !DILexicalBlock(scope: !15, file: !5, line: 7, column: 9) +!23 = !DILocation(line: 7, column: 10, scope: !22) +!24 = !DILocation(line: 7, column: 9, scope: !15) +!25 = !DILocation(line: 8, column: 11, scope: !26) +!26 = distinct !DILexicalBlock(scope: !22, file: !5, line: 7, column: 13) +!27 = !DILocation(line: 9, column: 9, scope: !26) +!28 = !DILocation(line: 11, column: 6, scope: !15) +!29 = !DILocation(line: 12, column: 7, scope: !15) +!30 = !DILocation(line: 12, column: 5, scope: !15) +!31 = !DILocation(line: 13, column: 1, scope: !15) +!32 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 15, type: !33, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!33 = !DISubroutineType(types: !34) +!34 = !{!6} +!35 = !DILocation(line: 16, column: 5, scope: !32) +!36 = !DILocation(line: 18, column: 16, scope: !32) +!37 = !DILocation(line: 18, column: 18, scope: !32) +!38 = !DILocation(line: 18, column: 5, scope: !32) +!39 = !DILocation(line: 19, column: 1, scope: !32) diff --git a/test_cases_bc/ae_recursion_tests/recursive_afterrec_2.c.bc b/test_cases_bc/ae_recursion_tests/recursive_afterrec_2.c.bc new file mode 100644 index 00000000..c8e3669e --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_afterrec_2.c.bc @@ -0,0 +1,136 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_afterrec_2.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@g = dso_local global i32 0, align 4, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f(i32 noundef %n) #0 !dbg !15 { +entry: + %n.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !19, metadata !DIExpression()), !dbg !20 + %0 = load i32, ptr %n.addr, align 4, !dbg !21 + %cmp = icmp slt i32 %0, 3, !dbg !23 + br i1 %cmp, label %if.then, label %if.end, !dbg !24 + +if.then: ; preds = %entry + store i32 3, ptr @g, align 4, !dbg !25 + br label %return, !dbg !27 + +if.end: ; preds = %entry + %1 = load i32, ptr %n.addr, align 4, !dbg !28 + %dec = add nsw i32 %1, -1, !dbg !28 + store i32 %dec, ptr %n.addr, align 4, !dbg !28 + %2 = load i32, ptr %n.addr, align 4, !dbg !29 + call void @f2(i32 noundef %2), !dbg !30 + br label %return, !dbg !31 + +return: ; preds = %if.end, %if.then + ret void, !dbg !31 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f2(i32 noundef %n) #0 !dbg !32 { +entry: + %n.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !33, metadata !DIExpression()), !dbg !34 + %0 = load i32, ptr %n.addr, align 4, !dbg !35 + %cmp = icmp slt i32 %0, 3, !dbg !37 + br i1 %cmp, label %if.then, label %if.end, !dbg !38 + +if.then: ; preds = %entry + store i32 3, ptr @g, align 4, !dbg !39 + br label %return, !dbg !41 + +if.end: ; preds = %entry + %1 = load i32, ptr %n.addr, align 4, !dbg !42 + %dec = add nsw i32 %1, -1, !dbg !42 + store i32 %dec, ptr %n.addr, align 4, !dbg !42 + %2 = load i32, ptr %n.addr, align 4, !dbg !43 + call void @f(i32 noundef %2), !dbg !44 + br label %return, !dbg !45 + +return: ; preds = %if.end, %if.then + ret void, !dbg !45 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !46 { +entry: + call void @f(i32 noundef 4), !dbg !49 + %0 = load i32, ptr @g, align 4, !dbg !50 + %cmp = icmp eq i32 %0, 3, !dbg !51 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !52 + ret i32 0, !dbg !53 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!2} +!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13} +!llvm.ident = !{!14} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(name: "g", scope: !2, file: !5, line: 7, type: !6, isLocal: false, isDefinition: true) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b188eef6a7263c7559194a456ec42c1a") +!4 = !{!0} +!5 = !DIFile(filename: "src/ae_recursion_tests/recursive_afterrec_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b188eef6a7263c7559194a456ec42c1a") +!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!7 = !{i32 7, !"Dwarf Version", i32 5} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{i32 1, !"wchar_size", i32 4} +!10 = !{i32 8, !"PIC Level", i32 2} +!11 = !{i32 7, !"PIE Level", i32 2} +!12 = !{i32 7, !"uwtable", i32 2} +!13 = !{i32 7, !"frame-pointer", i32 2} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!15 = distinct !DISubprogram(name: "f", scope: !5, file: !5, line: 9, type: !16, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!16 = !DISubroutineType(types: !17) +!17 = !{null, !6} +!18 = !{} +!19 = !DILocalVariable(name: "n", arg: 1, scope: !15, file: !5, line: 9, type: !6) +!20 = !DILocation(line: 9, column: 12, scope: !15) +!21 = !DILocation(line: 10, column: 9, scope: !22) +!22 = distinct !DILexicalBlock(scope: !15, file: !5, line: 10, column: 9) +!23 = !DILocation(line: 10, column: 10, scope: !22) +!24 = !DILocation(line: 10, column: 9, scope: !15) +!25 = !DILocation(line: 11, column: 11, scope: !26) +!26 = distinct !DILexicalBlock(scope: !22, file: !5, line: 10, column: 13) +!27 = !DILocation(line: 12, column: 9, scope: !26) +!28 = !DILocation(line: 14, column: 6, scope: !15) +!29 = !DILocation(line: 15, column: 8, scope: !15) +!30 = !DILocation(line: 15, column: 5, scope: !15) +!31 = !DILocation(line: 16, column: 1, scope: !15) +!32 = distinct !DISubprogram(name: "f2", scope: !5, file: !5, line: 18, type: !16, scopeLine: 18, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!33 = !DILocalVariable(name: "n", arg: 1, scope: !32, file: !5, line: 18, type: !6) +!34 = !DILocation(line: 18, column: 13, scope: !32) +!35 = !DILocation(line: 19, column: 9, scope: !36) +!36 = distinct !DILexicalBlock(scope: !32, file: !5, line: 19, column: 9) +!37 = !DILocation(line: 19, column: 10, scope: !36) +!38 = !DILocation(line: 19, column: 9, scope: !32) +!39 = !DILocation(line: 20, column: 11, scope: !40) +!40 = distinct !DILexicalBlock(scope: !36, file: !5, line: 19, column: 13) +!41 = !DILocation(line: 21, column: 9, scope: !40) +!42 = !DILocation(line: 23, column: 6, scope: !32) +!43 = !DILocation(line: 24, column: 7, scope: !32) +!44 = !DILocation(line: 24, column: 5, scope: !32) +!45 = !DILocation(line: 25, column: 1, scope: !32) +!46 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 27, type: !47, scopeLine: 27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!47 = !DISubroutineType(types: !48) +!48 = !{!6} +!49 = !DILocation(line: 28, column: 5, scope: !46) +!50 = !DILocation(line: 30, column: 16, scope: !46) +!51 = !DILocation(line: 30, column: 18, scope: !46) +!52 = !DILocation(line: 30, column: 5, scope: !46) +!53 = !DILocation(line: 31, column: 1, scope: !46) diff --git a/test_cases_bc/ae_recursion_tests/recursive_afterrec_3.c.bc b/test_cases_bc/ae_recursion_tests/recursive_afterrec_3.c.bc new file mode 100644 index 00000000..caf8b9ea --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_afterrec_3.c.bc @@ -0,0 +1,136 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_afterrec_3.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_3.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@g = dso_local global i32 0, align 4, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f(i32 noundef %n) #0 !dbg !15 { +entry: + %n.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !19, metadata !DIExpression()), !dbg !20 + %0 = load i32, ptr %n.addr, align 4, !dbg !21 + %cmp = icmp slt i32 %0, 3, !dbg !23 + br i1 %cmp, label %if.then, label %if.end, !dbg !24 + +if.then: ; preds = %entry + store i32 3, ptr @g, align 4, !dbg !25 + br label %return, !dbg !27 + +if.end: ; preds = %entry + %1 = load i32, ptr %n.addr, align 4, !dbg !28 + %dec = add nsw i32 %1, -1, !dbg !28 + store i32 %dec, ptr %n.addr, align 4, !dbg !28 + %2 = load i32, ptr %n.addr, align 4, !dbg !29 + call void @f2(i32 noundef %2), !dbg !30 + br label %return, !dbg !31 + +return: ; preds = %if.end, %if.then + ret void, !dbg !31 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f2(i32 noundef %n) #0 !dbg !32 { +entry: + %n.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !33, metadata !DIExpression()), !dbg !34 + %0 = load i32, ptr %n.addr, align 4, !dbg !35 + %cmp = icmp slt i32 %0, 3, !dbg !37 + br i1 %cmp, label %if.then, label %if.end, !dbg !38 + +if.then: ; preds = %entry + store i32 3, ptr @g, align 4, !dbg !39 + br label %return, !dbg !41 + +if.end: ; preds = %entry + %1 = load i32, ptr %n.addr, align 4, !dbg !42 + %dec = add nsw i32 %1, -1, !dbg !42 + store i32 %dec, ptr %n.addr, align 4, !dbg !42 + %2 = load i32, ptr %n.addr, align 4, !dbg !43 + call void @f(i32 noundef %2), !dbg !44 + br label %return, !dbg !45 + +return: ; preds = %if.end, %if.then + ret void, !dbg !45 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !46 { +entry: + call void @f(i32 noundef 10), !dbg !49 + %0 = load i32, ptr @g, align 4, !dbg !50 + %cmp = icmp eq i32 %0, 3, !dbg !51 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !52 + ret i32 0, !dbg !53 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!2} +!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13} +!llvm.ident = !{!14} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(name: "g", scope: !2, file: !5, line: 7, type: !6, isLocal: false, isDefinition: true) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5a28fa67d59a9b3b8db52f96260b3c3c") +!4 = !{!0} +!5 = !DIFile(filename: "src/ae_recursion_tests/recursive_afterrec_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5a28fa67d59a9b3b8db52f96260b3c3c") +!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!7 = !{i32 7, !"Dwarf Version", i32 5} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{i32 1, !"wchar_size", i32 4} +!10 = !{i32 8, !"PIC Level", i32 2} +!11 = !{i32 7, !"PIE Level", i32 2} +!12 = !{i32 7, !"uwtable", i32 2} +!13 = !{i32 7, !"frame-pointer", i32 2} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!15 = distinct !DISubprogram(name: "f", scope: !5, file: !5, line: 9, type: !16, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!16 = !DISubroutineType(types: !17) +!17 = !{null, !6} +!18 = !{} +!19 = !DILocalVariable(name: "n", arg: 1, scope: !15, file: !5, line: 9, type: !6) +!20 = !DILocation(line: 9, column: 12, scope: !15) +!21 = !DILocation(line: 10, column: 9, scope: !22) +!22 = distinct !DILexicalBlock(scope: !15, file: !5, line: 10, column: 9) +!23 = !DILocation(line: 10, column: 10, scope: !22) +!24 = !DILocation(line: 10, column: 9, scope: !15) +!25 = !DILocation(line: 11, column: 11, scope: !26) +!26 = distinct !DILexicalBlock(scope: !22, file: !5, line: 10, column: 13) +!27 = !DILocation(line: 12, column: 9, scope: !26) +!28 = !DILocation(line: 14, column: 6, scope: !15) +!29 = !DILocation(line: 15, column: 8, scope: !15) +!30 = !DILocation(line: 15, column: 5, scope: !15) +!31 = !DILocation(line: 16, column: 1, scope: !15) +!32 = distinct !DISubprogram(name: "f2", scope: !5, file: !5, line: 18, type: !16, scopeLine: 18, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!33 = !DILocalVariable(name: "n", arg: 1, scope: !32, file: !5, line: 18, type: !6) +!34 = !DILocation(line: 18, column: 13, scope: !32) +!35 = !DILocation(line: 19, column: 9, scope: !36) +!36 = distinct !DILexicalBlock(scope: !32, file: !5, line: 19, column: 9) +!37 = !DILocation(line: 19, column: 10, scope: !36) +!38 = !DILocation(line: 19, column: 9, scope: !32) +!39 = !DILocation(line: 20, column: 11, scope: !40) +!40 = distinct !DILexicalBlock(scope: !36, file: !5, line: 19, column: 13) +!41 = !DILocation(line: 21, column: 9, scope: !40) +!42 = !DILocation(line: 23, column: 6, scope: !32) +!43 = !DILocation(line: 24, column: 7, scope: !32) +!44 = !DILocation(line: 24, column: 5, scope: !32) +!45 = !DILocation(line: 25, column: 1, scope: !32) +!46 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 27, type: !47, scopeLine: 27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!47 = !DISubroutineType(types: !48) +!48 = !{!6} +!49 = !DILocation(line: 28, column: 5, scope: !46) +!50 = !DILocation(line: 30, column: 16, scope: !46) +!51 = !DILocation(line: 30, column: 18, scope: !46) +!52 = !DILocation(line: 30, column: 5, scope: !46) +!53 = !DILocation(line: 31, column: 1, scope: !46) diff --git a/test_cases_bc/ae_recursion_tests/recursive_afterrec_4.c.bc b/test_cases_bc/ae_recursion_tests/recursive_afterrec_4.c.bc new file mode 100644 index 00000000..8d2b6009 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_afterrec_4.c.bc @@ -0,0 +1,96 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_afterrec_4.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_4.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@g = dso_local global i32 0, align 4, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f(i32 noundef %n) #0 !dbg !15 { +entry: + %n.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !19, metadata !DIExpression()), !dbg !20 + %0 = load i32, ptr %n.addr, align 4, !dbg !21 + %cmp = icmp slt i32 %0, 3, !dbg !23 + br i1 %cmp, label %if.then, label %if.end, !dbg !24 + +if.then: ; preds = %entry + store i32 3, ptr @g, align 4, !dbg !25 + br label %return, !dbg !27 + +if.end: ; preds = %entry + %1 = load i32, ptr %n.addr, align 4, !dbg !28 + %dec = add nsw i32 %1, -1, !dbg !28 + store i32 %dec, ptr %n.addr, align 4, !dbg !28 + %2 = load i32, ptr %n.addr, align 4, !dbg !29 + call void @f(i32 noundef %2), !dbg !30 + br label %return, !dbg !31 + +return: ; preds = %if.end, %if.then + ret void, !dbg !31 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !32 { +entry: + call void @f(i32 noundef 1000), !dbg !35 + %0 = load i32, ptr @g, align 4, !dbg !36 + %cmp = icmp eq i32 %0, 3, !dbg !37 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !38 + ret i32 0, !dbg !39 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!2} +!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13} +!llvm.ident = !{!14} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(name: "g", scope: !2, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_afterrec_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c91ad10e735e67fab7940397c5b71718") +!4 = !{!0} +!5 = !DIFile(filename: "src/ae_recursion_tests/recursive_afterrec_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c91ad10e735e67fab7940397c5b71718") +!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!7 = !{i32 7, !"Dwarf Version", i32 5} +!8 = !{i32 2, !"Debug Info Version", i32 3} +!9 = !{i32 1, !"wchar_size", i32 4} +!10 = !{i32 8, !"PIC Level", i32 2} +!11 = !{i32 7, !"PIE Level", i32 2} +!12 = !{i32 7, !"uwtable", i32 2} +!13 = !{i32 7, !"frame-pointer", i32 2} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!15 = distinct !DISubprogram(name: "f", scope: !5, file: !5, line: 6, type: !16, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!16 = !DISubroutineType(types: !17) +!17 = !{null, !6} +!18 = !{} +!19 = !DILocalVariable(name: "n", arg: 1, scope: !15, file: !5, line: 6, type: !6) +!20 = !DILocation(line: 6, column: 12, scope: !15) +!21 = !DILocation(line: 7, column: 9, scope: !22) +!22 = distinct !DILexicalBlock(scope: !15, file: !5, line: 7, column: 9) +!23 = !DILocation(line: 7, column: 10, scope: !22) +!24 = !DILocation(line: 7, column: 9, scope: !15) +!25 = !DILocation(line: 8, column: 11, scope: !26) +!26 = distinct !DILexicalBlock(scope: !22, file: !5, line: 7, column: 13) +!27 = !DILocation(line: 9, column: 9, scope: !26) +!28 = !DILocation(line: 11, column: 6, scope: !15) +!29 = !DILocation(line: 12, column: 7, scope: !15) +!30 = !DILocation(line: 12, column: 5, scope: !15) +!31 = !DILocation(line: 13, column: 1, scope: !15) +!32 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 15, type: !33, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !18) +!33 = !DISubroutineType(types: !34) +!34 = !{!6} +!35 = !DILocation(line: 16, column: 5, scope: !32) +!36 = !DILocation(line: 18, column: 16, scope: !32) +!37 = !DILocation(line: 18, column: 18, scope: !32) +!38 = !DILocation(line: 18, column: 5, scope: !32) +!39 = !DILocation(line: 19, column: 1, scope: !32) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_0.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_0.c.bc new file mode 100644 index 00000000..6062997d --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_0.c.bc @@ -0,0 +1,139 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_0.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_0.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [4 x i8] c"%ud\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub i32 %1, 1, !dbg !33 + %call = call i32 @id(i32 noundef %sub), !dbg !34 + %add = add i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp ugt i32 %2, 2, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 2, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !44 { +entry: + %x = alloca i32, align 4 + %res = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !48, metadata !DIExpression()), !dbg !49 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !50 + call void @llvm.dbg.declare(metadata ptr %res, metadata !51, metadata !DIExpression()), !dbg !52 + %0 = load i32, ptr %x, align 4, !dbg !53 + %call1 = call i32 @id(i32 noundef %0), !dbg !54 + store i32 %call1, ptr %res, align 4, !dbg !52 + %1 = load i32, ptr %res, align 4, !dbg !55 + %cmp = icmp sle i32 %1, 2, !dbg !56 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !57 + ret i32 0, !dbg !58 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 15, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5d7a00649bf0fc2e29cc3c4e27bb89f7") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 32, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 4) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5d7a00649bf0fc2e29cc3c4e27bb89f7") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 6, type: !21) +!24 = !DILocation(line: 6, column: 30, scope: !18) +!25 = !DILocation(line: 7, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 7, column: 9) +!27 = !DILocation(line: 7, column: 10, scope: !26) +!28 = !DILocation(line: 7, column: 9, scope: !18) +!29 = !DILocation(line: 7, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 8, type: !21) +!31 = !DILocation(line: 8, column: 18, scope: !18) +!32 = !DILocation(line: 8, column: 27, scope: !18) +!33 = !DILocation(line: 8, column: 28, scope: !18) +!34 = !DILocation(line: 8, column: 24, scope: !18) +!35 = !DILocation(line: 8, column: 32, scope: !18) +!36 = !DILocation(line: 9, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 9, column: 9) +!38 = !DILocation(line: 9, column: 13, scope: !37) +!39 = !DILocation(line: 9, column: 9, scope: !18) +!40 = !DILocation(line: 9, column: 18, scope: !37) +!41 = !DILocation(line: 10, column: 12, scope: !18) +!42 = !DILocation(line: 10, column: 5, scope: !18) +!43 = !DILocation(line: 11, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 13, type: !45, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DISubroutineType(types: !46) +!46 = !{!47} +!47 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!48 = !DILocalVariable(name: "x", scope: !44, file: !2, line: 14, type: !47) +!49 = !DILocation(line: 14, column: 9, scope: !44) +!50 = !DILocation(line: 15, column: 5, scope: !44) +!51 = !DILocalVariable(name: "res", scope: !44, file: !2, line: 17, type: !47) +!52 = !DILocation(line: 17, column: 9, scope: !44) +!53 = !DILocation(line: 17, column: 18, scope: !44) +!54 = !DILocation(line: 17, column: 15, scope: !44) +!55 = !DILocation(line: 18, column: 16, scope: !44) +!56 = !DILocation(line: 18, column: 20, scope: !44) +!57 = !DILocation(line: 18, column: 5, scope: !44) +!58 = !DILocation(line: 19, column: 1, scope: !44) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_1.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_1.c.bc new file mode 100644 index 00000000..467f8921 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_1.c.bc @@ -0,0 +1,168 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_1.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub nsw i32 %1, 1, !dbg !33 + %call = call i32 @id(i32 noundef %sub), !dbg !34 + %add = add nsw i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp sgt i32 %2, 2, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 2, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %res = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !47, metadata !DIExpression()), !dbg !48 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !49 + %0 = load i32, ptr %x, align 4, !dbg !50 + %cmp = icmp sge i32 %0, 0, !dbg !52 + br i1 %cmp, label %if.then, label %if.end, !dbg !53 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %res, metadata !54, metadata !DIExpression()), !dbg !56 + %1 = load i32, ptr %x, align 4, !dbg !57 + %call1 = call i32 @id(i32 noundef %1), !dbg !58 + store i32 %call1, ptr %res, align 4, !dbg !56 + %2 = load i32, ptr %res, align 4, !dbg !59 + %cmp2 = icmp sle i32 %2, 2, !dbg !60 + br i1 %cmp2, label %land.rhs, label %land.end, !dbg !61 + +land.rhs: ; preds = %if.then + %3 = load i32, ptr %res, align 4, !dbg !62 + %cmp3 = icmp sge i32 %3, 0, !dbg !63 + br label %land.end + +land.end: ; preds = %land.rhs, %if.then + %4 = phi i1 [ false, %if.then ], [ %cmp3, %land.rhs ], !dbg !64 + call void @svf_assert(i1 noundef zeroext %4), !dbg !65 + br label %if.end, !dbg !66 + +if.end: ; preds = %land.end, %entry + %5 = load i32, ptr %retval, align 4, !dbg !67 + ret i32 %5, !dbg !67 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 15, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c7a8c37269a5af1f0ed89eb173801bdc") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 3) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c7a8c37269a5af1f0ed89eb173801bdc") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 6, type: !21) +!24 = !DILocation(line: 6, column: 12, scope: !18) +!25 = !DILocation(line: 7, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 7, column: 9) +!27 = !DILocation(line: 7, column: 10, scope: !26) +!28 = !DILocation(line: 7, column: 9, scope: !18) +!29 = !DILocation(line: 7, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 8, type: !21) +!31 = !DILocation(line: 8, column: 9, scope: !18) +!32 = !DILocation(line: 8, column: 18, scope: !18) +!33 = !DILocation(line: 8, column: 19, scope: !18) +!34 = !DILocation(line: 8, column: 15, scope: !18) +!35 = !DILocation(line: 8, column: 23, scope: !18) +!36 = !DILocation(line: 9, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 9, column: 9) +!38 = !DILocation(line: 9, column: 13, scope: !37) +!39 = !DILocation(line: 9, column: 9, scope: !18) +!40 = !DILocation(line: 9, column: 18, scope: !37) +!41 = !DILocation(line: 10, column: 12, scope: !18) +!42 = !DILocation(line: 10, column: 5, scope: !18) +!43 = !DILocation(line: 11, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 13, type: !45, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DISubroutineType(types: !46) +!46 = !{!21} +!47 = !DILocalVariable(name: "x", scope: !44, file: !2, line: 14, type: !21) +!48 = !DILocation(line: 14, column: 9, scope: !44) +!49 = !DILocation(line: 15, column: 5, scope: !44) +!50 = !DILocation(line: 16, column: 8, scope: !51) +!51 = distinct !DILexicalBlock(scope: !44, file: !2, line: 16, column: 8) +!52 = !DILocation(line: 16, column: 10, scope: !51) +!53 = !DILocation(line: 16, column: 8, scope: !44) +!54 = !DILocalVariable(name: "res", scope: !55, file: !2, line: 17, type: !21) +!55 = distinct !DILexicalBlock(scope: !51, file: !2, line: 16, column: 15) +!56 = !DILocation(line: 17, column: 13, scope: !55) +!57 = !DILocation(line: 17, column: 22, scope: !55) +!58 = !DILocation(line: 17, column: 19, scope: !55) +!59 = !DILocation(line: 18, column: 20, scope: !55) +!60 = !DILocation(line: 18, column: 24, scope: !55) +!61 = !DILocation(line: 18, column: 29, scope: !55) +!62 = !DILocation(line: 18, column: 32, scope: !55) +!63 = !DILocation(line: 18, column: 36, scope: !55) +!64 = !DILocation(line: 0, scope: !55) +!65 = !DILocation(line: 18, column: 9, scope: !55) +!66 = !DILocation(line: 19, column: 5, scope: !55) +!67 = !DILocation(line: 20, column: 1, scope: !44) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_2.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_2.c.bc new file mode 100644 index 00000000..e1844e95 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_2.c.bc @@ -0,0 +1,155 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_2.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub nsw i32 %1, 1, !dbg !33 + %call = call i32 @id(i32 noundef %sub), !dbg !34 + %add = add nsw i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp sgt i32 %2, 3, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 3, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %res = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !47, metadata !DIExpression()), !dbg !48 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !49 + %0 = load i32, ptr %x, align 4, !dbg !50 + %cmp = icmp sge i32 %0, 0, !dbg !52 + br i1 %cmp, label %if.then, label %if.end, !dbg !53 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %res, metadata !54, metadata !DIExpression()), !dbg !56 + %1 = load i32, ptr %x, align 4, !dbg !57 + %call1 = call i32 @id(i32 noundef %1), !dbg !58 + store i32 %call1, ptr %res, align 4, !dbg !56 + %2 = load i32, ptr %res, align 4, !dbg !59 + %cmp2 = icmp ne i32 %2, 5, !dbg !60 + call void @svf_assert(i1 noundef zeroext %cmp2), !dbg !61 + br label %if.end, !dbg !62 + +if.end: ; preds = %if.then, %entry + %3 = load i32, ptr %retval, align 4, !dbg !63 + ret i32 %3, !dbg !63 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 15, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f6369d9094fdcacadd2142025618096c") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 3) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f6369d9094fdcacadd2142025618096c") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 6, type: !21) +!24 = !DILocation(line: 6, column: 12, scope: !18) +!25 = !DILocation(line: 7, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 7, column: 9) +!27 = !DILocation(line: 7, column: 10, scope: !26) +!28 = !DILocation(line: 7, column: 9, scope: !18) +!29 = !DILocation(line: 7, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 8, type: !21) +!31 = !DILocation(line: 8, column: 9, scope: !18) +!32 = !DILocation(line: 8, column: 18, scope: !18) +!33 = !DILocation(line: 8, column: 19, scope: !18) +!34 = !DILocation(line: 8, column: 15, scope: !18) +!35 = !DILocation(line: 8, column: 23, scope: !18) +!36 = !DILocation(line: 9, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 9, column: 9) +!38 = !DILocation(line: 9, column: 13, scope: !37) +!39 = !DILocation(line: 9, column: 9, scope: !18) +!40 = !DILocation(line: 9, column: 18, scope: !37) +!41 = !DILocation(line: 10, column: 12, scope: !18) +!42 = !DILocation(line: 10, column: 5, scope: !18) +!43 = !DILocation(line: 11, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 13, type: !45, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DISubroutineType(types: !46) +!46 = !{!21} +!47 = !DILocalVariable(name: "x", scope: !44, file: !2, line: 14, type: !21) +!48 = !DILocation(line: 14, column: 9, scope: !44) +!49 = !DILocation(line: 15, column: 5, scope: !44) +!50 = !DILocation(line: 16, column: 8, scope: !51) +!51 = distinct !DILexicalBlock(scope: !44, file: !2, line: 16, column: 8) +!52 = !DILocation(line: 16, column: 10, scope: !51) +!53 = !DILocation(line: 16, column: 8, scope: !44) +!54 = !DILocalVariable(name: "res", scope: !55, file: !2, line: 17, type: !21) +!55 = distinct !DILexicalBlock(scope: !51, file: !2, line: 16, column: 15) +!56 = !DILocation(line: 17, column: 13, scope: !55) +!57 = !DILocation(line: 17, column: 22, scope: !55) +!58 = !DILocation(line: 17, column: 19, scope: !55) +!59 = !DILocation(line: 18, column: 20, scope: !55) +!60 = !DILocation(line: 18, column: 24, scope: !55) +!61 = !DILocation(line: 18, column: 9, scope: !55) +!62 = !DILocation(line: 19, column: 5, scope: !55) +!63 = !DILocation(line: 20, column: 1, scope: !44) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_3.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_3.c.bc new file mode 100644 index 00000000..ca490845 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_3.c.bc @@ -0,0 +1,155 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_3.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_3.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub nsw i32 %1, 1, !dbg !33 + %call = call i32 @id(i32 noundef %sub), !dbg !34 + %add = add nsw i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp sgt i32 %2, 3, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 3, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %res = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !47, metadata !DIExpression()), !dbg !48 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !49 + %0 = load i32, ptr %x, align 4, !dbg !50 + %cmp = icmp sge i32 %0, 0, !dbg !52 + br i1 %cmp, label %if.then, label %if.end, !dbg !53 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %res, metadata !54, metadata !DIExpression()), !dbg !56 + %1 = load i32, ptr %x, align 4, !dbg !57 + %call1 = call i32 @id(i32 noundef %1), !dbg !58 + store i32 %call1, ptr %res, align 4, !dbg !56 + %2 = load i32, ptr %res, align 4, !dbg !59 + %cmp2 = icmp sle i32 %2, 3, !dbg !60 + call void @svf_assert(i1 noundef zeroext %cmp2), !dbg !61 + br label %if.end, !dbg !62 + +if.end: ; preds = %if.then, %entry + %3 = load i32, ptr %retval, align 4, !dbg !63 + ret i32 %3, !dbg !63 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 15, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a21cb23aea05691b072e887bcdaee824") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 3) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a21cb23aea05691b072e887bcdaee824") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 6, type: !19, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 6, type: !21) +!24 = !DILocation(line: 6, column: 12, scope: !18) +!25 = !DILocation(line: 7, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 7, column: 9) +!27 = !DILocation(line: 7, column: 10, scope: !26) +!28 = !DILocation(line: 7, column: 9, scope: !18) +!29 = !DILocation(line: 7, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 8, type: !21) +!31 = !DILocation(line: 8, column: 9, scope: !18) +!32 = !DILocation(line: 8, column: 18, scope: !18) +!33 = !DILocation(line: 8, column: 19, scope: !18) +!34 = !DILocation(line: 8, column: 15, scope: !18) +!35 = !DILocation(line: 8, column: 23, scope: !18) +!36 = !DILocation(line: 9, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 9, column: 9) +!38 = !DILocation(line: 9, column: 13, scope: !37) +!39 = !DILocation(line: 9, column: 9, scope: !18) +!40 = !DILocation(line: 9, column: 18, scope: !37) +!41 = !DILocation(line: 10, column: 12, scope: !18) +!42 = !DILocation(line: 10, column: 5, scope: !18) +!43 = !DILocation(line: 11, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 13, type: !45, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DISubroutineType(types: !46) +!46 = !{!21} +!47 = !DILocalVariable(name: "x", scope: !44, file: !2, line: 14, type: !21) +!48 = !DILocation(line: 14, column: 9, scope: !44) +!49 = !DILocation(line: 15, column: 5, scope: !44) +!50 = !DILocation(line: 16, column: 8, scope: !51) +!51 = distinct !DILexicalBlock(scope: !44, file: !2, line: 16, column: 8) +!52 = !DILocation(line: 16, column: 10, scope: !51) +!53 = !DILocation(line: 16, column: 8, scope: !44) +!54 = !DILocalVariable(name: "res", scope: !55, file: !2, line: 17, type: !21) +!55 = distinct !DILexicalBlock(scope: !51, file: !2, line: 16, column: 16) +!56 = !DILocation(line: 17, column: 13, scope: !55) +!57 = !DILocation(line: 17, column: 22, scope: !55) +!58 = !DILocation(line: 17, column: 19, scope: !55) +!59 = !DILocation(line: 18, column: 20, scope: !55) +!60 = !DILocation(line: 18, column: 24, scope: !55) +!61 = !DILocation(line: 18, column: 9, scope: !55) +!62 = !DILocation(line: 19, column: 5, scope: !55) +!63 = !DILocation(line: 20, column: 1, scope: !44) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_4.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_4.c.bc new file mode 100644 index 00000000..c921b027 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_4.c.bc @@ -0,0 +1,157 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_4.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_4.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !20 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !25, metadata !DIExpression()), !dbg !26 + %0 = load i32, ptr %x.addr, align 4, !dbg !27 + %cmp = icmp eq i32 %0, 0, !dbg !29 + br i1 %cmp, label %if.then, label %if.end, !dbg !30 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !31 + br label %return, !dbg !31 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !32, metadata !DIExpression()), !dbg !33 + %1 = load i32, ptr %x.addr, align 4, !dbg !34 + %sub = sub i32 %1, 1, !dbg !35 + %call = call i32 @id(i32 noundef %sub), !dbg !36 + %add = add nsw i32 %call, 1, !dbg !37 + store i32 %add, ptr %ret, align 4, !dbg !33 + %2 = load i32, ptr %ret, align 4, !dbg !38 + %cmp1 = icmp sgt i32 %2, 5, !dbg !40 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !41 + +if.then2: ; preds = %if.end + store i32 5, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !43 + store i32 %3, ptr %retval, align 4, !dbg !44 + br label %return, !dbg !44 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !45 + ret i32 %4, !dbg !45 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !46 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %res = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !49, metadata !DIExpression()), !dbg !50 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !51 + %0 = load i32, ptr %x, align 4, !dbg !52 + %cmp = icmp sge i32 %0, 0, !dbg !54 + br i1 %cmp, label %if.then, label %if.end, !dbg !55 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %res, metadata !56, metadata !DIExpression()), !dbg !58 + %1 = load i32, ptr %x, align 4, !dbg !59 + %call1 = call i32 @id(i32 noundef %1), !dbg !60 + store i32 %call1, ptr %res, align 4, !dbg !58 + %2 = load i32, ptr %res, align 4, !dbg !61 + %cmp2 = icmp sle i32 %2, 5, !dbg !62 + call void @svf_assert(i1 noundef zeroext %cmp2), !dbg !63 + br label %if.end, !dbg !64 + +if.end: ; preds = %if.then, %entry + %3 = load i32, ptr %retval, align 4, !dbg !65 + ret i32 %3, !dbg !65 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!12, !13, !14, !15, !16, !17, !18} +!llvm.ident = !{!19} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 15, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ff148f82e463ebb221b1aff32e7dc5c2") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 3) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ff148f82e463ebb221b1aff32e7dc5c2") +!9 = !{!10} +!10 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!11 = !{!0} +!12 = !{i32 7, !"Dwarf Version", i32 5} +!13 = !{i32 2, !"Debug Info Version", i32 3} +!14 = !{i32 1, !"wchar_size", i32 4} +!15 = !{i32 8, !"PIC Level", i32 2} +!16 = !{i32 7, !"PIE Level", i32 2} +!17 = !{i32 7, !"uwtable", i32 2} +!18 = !{i32 7, !"frame-pointer", i32 2} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!20 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 6, type: !21, scopeLine: 6, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) +!21 = !DISubroutineType(types: !22) +!22 = !{!23, !23} +!23 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!24 = !{} +!25 = !DILocalVariable(name: "x", arg: 1, scope: !20, file: !2, line: 6, type: !23) +!26 = !DILocation(line: 6, column: 12, scope: !20) +!27 = !DILocation(line: 7, column: 9, scope: !28) +!28 = distinct !DILexicalBlock(scope: !20, file: !2, line: 7, column: 9) +!29 = !DILocation(line: 7, column: 10, scope: !28) +!30 = !DILocation(line: 7, column: 9, scope: !20) +!31 = !DILocation(line: 7, column: 15, scope: !28) +!32 = !DILocalVariable(name: "ret", scope: !20, file: !2, line: 8, type: !23) +!33 = !DILocation(line: 8, column: 9, scope: !20) +!34 = !DILocation(line: 8, column: 32, scope: !20) +!35 = !DILocation(line: 8, column: 33, scope: !20) +!36 = !DILocation(line: 8, column: 15, scope: !20) +!37 = !DILocation(line: 8, column: 37, scope: !20) +!38 = !DILocation(line: 9, column: 9, scope: !39) +!39 = distinct !DILexicalBlock(scope: !20, file: !2, line: 9, column: 9) +!40 = !DILocation(line: 9, column: 13, scope: !39) +!41 = !DILocation(line: 9, column: 9, scope: !20) +!42 = !DILocation(line: 9, column: 18, scope: !39) +!43 = !DILocation(line: 10, column: 12, scope: !20) +!44 = !DILocation(line: 10, column: 5, scope: !20) +!45 = !DILocation(line: 11, column: 1, scope: !20) +!46 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 13, type: !47, scopeLine: 13, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) +!47 = !DISubroutineType(types: !48) +!48 = !{!23} +!49 = !DILocalVariable(name: "x", scope: !46, file: !2, line: 14, type: !23) +!50 = !DILocation(line: 14, column: 9, scope: !46) +!51 = !DILocation(line: 15, column: 5, scope: !46) +!52 = !DILocation(line: 16, column: 8, scope: !53) +!53 = distinct !DILexicalBlock(scope: !46, file: !2, line: 16, column: 8) +!54 = !DILocation(line: 16, column: 10, scope: !53) +!55 = !DILocation(line: 16, column: 8, scope: !46) +!56 = !DILocalVariable(name: "res", scope: !57, file: !2, line: 17, type: !23) +!57 = distinct !DILexicalBlock(scope: !53, file: !2, line: 16, column: 15) +!58 = !DILocation(line: 17, column: 13, scope: !57) +!59 = !DILocation(line: 17, column: 22, scope: !57) +!60 = !DILocation(line: 17, column: 19, scope: !57) +!61 = !DILocation(line: 18, column: 20, scope: !57) +!62 = !DILocation(line: 18, column: 24, scope: !57) +!63 = !DILocation(line: 18, column: 9, scope: !57) +!64 = !DILocation(line: 19, column: 5, scope: !57) +!65 = !DILocation(line: 20, column: 1, scope: !46) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_5.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_5.c.bc new file mode 100644 index 00000000..d3ce5565 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_5.c.bc @@ -0,0 +1,202 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_5.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_5.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [4 x i8] c"%ud\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub i32 %1, 1, !dbg !33 + %call = call i32 @id2(i32 noundef %sub), !dbg !34 + %add = add i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp ugt i32 %2, 2, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 2, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id2(i32 noundef %x) #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !45, metadata !DIExpression()), !dbg !46 + %0 = load i32, ptr %x.addr, align 4, !dbg !47 + %cmp = icmp eq i32 %0, 0, !dbg !49 + br i1 %cmp, label %if.then, label %if.end, !dbg !50 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !51 + br label %return, !dbg !51 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !52, metadata !DIExpression()), !dbg !53 + %1 = load i32, ptr %x.addr, align 4, !dbg !54 + %sub = sub i32 %1, 1, !dbg !55 + %call = call i32 @id(i32 noundef %sub), !dbg !56 + %add = add i32 %call, 1, !dbg !57 + store i32 %add, ptr %ret, align 4, !dbg !53 + %2 = load i32, ptr %ret, align 4, !dbg !58 + %cmp1 = icmp ugt i32 %2, 2, !dbg !60 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !61 + +if.then2: ; preds = %if.end + store i32 2, ptr %retval, align 4, !dbg !62 + br label %return, !dbg !62 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !63 + store i32 %3, ptr %retval, align 4, !dbg !64 + br label %return, !dbg !64 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !65 + ret i32 %4, !dbg !65 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !66 { +entry: + %x = alloca i32, align 4 + %res = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !70, metadata !DIExpression()), !dbg !71 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !72 + call void @llvm.dbg.declare(metadata ptr %res, metadata !73, metadata !DIExpression()), !dbg !74 + %0 = load i32, ptr %x, align 4, !dbg !75 + %call1 = call i32 @id(i32 noundef %0), !dbg !76 + store i32 %call1, ptr %res, align 4, !dbg !74 + %1 = load i32, ptr %res, align 4, !dbg !77 + %cmp = icmp sle i32 %1, 2, !dbg !78 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !79 + ret i32 0, !dbg !80 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 25, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_5.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5a1fddf916afdb8377d8bc3ce82f68b8") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 32, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 4) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_5.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5a1fddf916afdb8377d8bc3ce82f68b8") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 9, type: !19, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 9, type: !21) +!24 = !DILocation(line: 9, column: 30, scope: !18) +!25 = !DILocation(line: 10, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 10, column: 9) +!27 = !DILocation(line: 10, column: 10, scope: !26) +!28 = !DILocation(line: 10, column: 9, scope: !18) +!29 = !DILocation(line: 10, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 11, type: !21) +!31 = !DILocation(line: 11, column: 18, scope: !18) +!32 = !DILocation(line: 11, column: 28, scope: !18) +!33 = !DILocation(line: 11, column: 29, scope: !18) +!34 = !DILocation(line: 11, column: 24, scope: !18) +!35 = !DILocation(line: 11, column: 33, scope: !18) +!36 = !DILocation(line: 12, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 12, column: 9) +!38 = !DILocation(line: 12, column: 13, scope: !37) +!39 = !DILocation(line: 12, column: 9, scope: !18) +!40 = !DILocation(line: 12, column: 18, scope: !37) +!41 = !DILocation(line: 13, column: 12, scope: !18) +!42 = !DILocation(line: 13, column: 5, scope: !18) +!43 = !DILocation(line: 14, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "id2", scope: !2, file: !2, line: 16, type: !19, scopeLine: 16, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DILocalVariable(name: "x", arg: 1, scope: !44, file: !2, line: 16, type: !21) +!46 = !DILocation(line: 16, column: 31, scope: !44) +!47 = !DILocation(line: 17, column: 9, scope: !48) +!48 = distinct !DILexicalBlock(scope: !44, file: !2, line: 17, column: 9) +!49 = !DILocation(line: 17, column: 10, scope: !48) +!50 = !DILocation(line: 17, column: 9, scope: !44) +!51 = !DILocation(line: 17, column: 15, scope: !48) +!52 = !DILocalVariable(name: "ret", scope: !44, file: !2, line: 18, type: !21) +!53 = !DILocation(line: 18, column: 18, scope: !44) +!54 = !DILocation(line: 18, column: 27, scope: !44) +!55 = !DILocation(line: 18, column: 28, scope: !44) +!56 = !DILocation(line: 18, column: 24, scope: !44) +!57 = !DILocation(line: 18, column: 32, scope: !44) +!58 = !DILocation(line: 19, column: 9, scope: !59) +!59 = distinct !DILexicalBlock(scope: !44, file: !2, line: 19, column: 9) +!60 = !DILocation(line: 19, column: 13, scope: !59) +!61 = !DILocation(line: 19, column: 9, scope: !44) +!62 = !DILocation(line: 19, column: 18, scope: !59) +!63 = !DILocation(line: 20, column: 12, scope: !44) +!64 = !DILocation(line: 20, column: 5, scope: !44) +!65 = !DILocation(line: 21, column: 1, scope: !44) +!66 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 23, type: !67, scopeLine: 23, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!67 = !DISubroutineType(types: !68) +!68 = !{!69} +!69 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!70 = !DILocalVariable(name: "x", scope: !66, file: !2, line: 24, type: !69) +!71 = !DILocation(line: 24, column: 9, scope: !66) +!72 = !DILocation(line: 25, column: 5, scope: !66) +!73 = !DILocalVariable(name: "res", scope: !66, file: !2, line: 27, type: !69) +!74 = !DILocation(line: 27, column: 9, scope: !66) +!75 = !DILocation(line: 27, column: 18, scope: !66) +!76 = !DILocation(line: 27, column: 15, scope: !66) +!77 = !DILocation(line: 28, column: 16, scope: !66) +!78 = !DILocation(line: 28, column: 20, scope: !66) +!79 = !DILocation(line: 28, column: 5, scope: !66) +!80 = !DILocation(line: 29, column: 1, scope: !66) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_6.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_6.c.bc new file mode 100644 index 00000000..c288fbe5 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_6.c.bc @@ -0,0 +1,218 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_6.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_6.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub nsw i32 %1, 1, !dbg !33 + %call = call i32 @id2(i32 noundef %sub), !dbg !34 + %add = add nsw i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp sgt i32 %2, 2, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 2, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id2(i32 noundef %x) #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !45, metadata !DIExpression()), !dbg !46 + %0 = load i32, ptr %x.addr, align 4, !dbg !47 + %cmp = icmp eq i32 %0, 0, !dbg !49 + br i1 %cmp, label %if.then, label %if.end, !dbg !50 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !51 + br label %return, !dbg !51 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !52, metadata !DIExpression()), !dbg !53 + %1 = load i32, ptr %x.addr, align 4, !dbg !54 + %sub = sub nsw i32 %1, 1, !dbg !55 + %call = call i32 @id(i32 noundef %sub), !dbg !56 + %add = add nsw i32 %call, 1, !dbg !57 + store i32 %add, ptr %ret, align 4, !dbg !53 + %2 = load i32, ptr %ret, align 4, !dbg !58 + %cmp1 = icmp sgt i32 %2, 2, !dbg !60 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !61 + +if.then2: ; preds = %if.end + store i32 2, ptr %retval, align 4, !dbg !62 + br label %return, !dbg !62 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !63 + store i32 %3, ptr %retval, align 4, !dbg !64 + br label %return, !dbg !64 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !65 + ret i32 %4, !dbg !65 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !66 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %res = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !69, metadata !DIExpression()), !dbg !70 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !71 + %0 = load i32, ptr %x, align 4, !dbg !72 + %cmp = icmp sge i32 %0, 0, !dbg !74 + br i1 %cmp, label %if.then, label %if.end, !dbg !75 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %res, metadata !76, metadata !DIExpression()), !dbg !78 + %1 = load i32, ptr %x, align 4, !dbg !79 + %call1 = call i32 @id(i32 noundef %1), !dbg !80 + store i32 %call1, ptr %res, align 4, !dbg !78 + %2 = load i32, ptr %res, align 4, !dbg !81 + %cmp2 = icmp sle i32 %2, 2, !dbg !82 + call void @svf_assert(i1 noundef zeroext %cmp2), !dbg !83 + br label %if.end, !dbg !84 + +if.end: ; preds = %if.then, %entry + %3 = load i32, ptr %retval, align 4, !dbg !85 + ret i32 %3, !dbg !85 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 25, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_6.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "08f251caba0993616bcd67e774c28346") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 3) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_6.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "08f251caba0993616bcd67e774c28346") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 9, type: !19, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 9, type: !21) +!24 = !DILocation(line: 9, column: 12, scope: !18) +!25 = !DILocation(line: 10, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 10, column: 9) +!27 = !DILocation(line: 10, column: 10, scope: !26) +!28 = !DILocation(line: 10, column: 9, scope: !18) +!29 = !DILocation(line: 10, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 11, type: !21) +!31 = !DILocation(line: 11, column: 9, scope: !18) +!32 = !DILocation(line: 11, column: 19, scope: !18) +!33 = !DILocation(line: 11, column: 20, scope: !18) +!34 = !DILocation(line: 11, column: 15, scope: !18) +!35 = !DILocation(line: 11, column: 24, scope: !18) +!36 = !DILocation(line: 12, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 12, column: 9) +!38 = !DILocation(line: 12, column: 13, scope: !37) +!39 = !DILocation(line: 12, column: 9, scope: !18) +!40 = !DILocation(line: 12, column: 18, scope: !37) +!41 = !DILocation(line: 13, column: 12, scope: !18) +!42 = !DILocation(line: 13, column: 5, scope: !18) +!43 = !DILocation(line: 14, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "id2", scope: !2, file: !2, line: 16, type: !19, scopeLine: 16, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DILocalVariable(name: "x", arg: 1, scope: !44, file: !2, line: 16, type: !21) +!46 = !DILocation(line: 16, column: 13, scope: !44) +!47 = !DILocation(line: 17, column: 9, scope: !48) +!48 = distinct !DILexicalBlock(scope: !44, file: !2, line: 17, column: 9) +!49 = !DILocation(line: 17, column: 10, scope: !48) +!50 = !DILocation(line: 17, column: 9, scope: !44) +!51 = !DILocation(line: 17, column: 15, scope: !48) +!52 = !DILocalVariable(name: "ret", scope: !44, file: !2, line: 18, type: !21) +!53 = !DILocation(line: 18, column: 9, scope: !44) +!54 = !DILocation(line: 18, column: 18, scope: !44) +!55 = !DILocation(line: 18, column: 19, scope: !44) +!56 = !DILocation(line: 18, column: 15, scope: !44) +!57 = !DILocation(line: 18, column: 23, scope: !44) +!58 = !DILocation(line: 19, column: 9, scope: !59) +!59 = distinct !DILexicalBlock(scope: !44, file: !2, line: 19, column: 9) +!60 = !DILocation(line: 19, column: 13, scope: !59) +!61 = !DILocation(line: 19, column: 9, scope: !44) +!62 = !DILocation(line: 19, column: 18, scope: !59) +!63 = !DILocation(line: 20, column: 12, scope: !44) +!64 = !DILocation(line: 20, column: 5, scope: !44) +!65 = !DILocation(line: 21, column: 1, scope: !44) +!66 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 23, type: !67, scopeLine: 23, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!67 = !DISubroutineType(types: !68) +!68 = !{!21} +!69 = !DILocalVariable(name: "x", scope: !66, file: !2, line: 24, type: !21) +!70 = !DILocation(line: 24, column: 9, scope: !66) +!71 = !DILocation(line: 25, column: 5, scope: !66) +!72 = !DILocation(line: 26, column: 8, scope: !73) +!73 = distinct !DILexicalBlock(scope: !66, file: !2, line: 26, column: 8) +!74 = !DILocation(line: 26, column: 10, scope: !73) +!75 = !DILocation(line: 26, column: 8, scope: !66) +!76 = !DILocalVariable(name: "res", scope: !77, file: !2, line: 27, type: !21) +!77 = distinct !DILexicalBlock(scope: !73, file: !2, line: 26, column: 15) +!78 = !DILocation(line: 27, column: 13, scope: !77) +!79 = !DILocation(line: 27, column: 22, scope: !77) +!80 = !DILocation(line: 27, column: 19, scope: !77) +!81 = !DILocation(line: 28, column: 20, scope: !77) +!82 = !DILocation(line: 28, column: 24, scope: !77) +!83 = !DILocation(line: 28, column: 9, scope: !77) +!84 = !DILocation(line: 29, column: 5, scope: !77) +!85 = !DILocation(line: 30, column: 1, scope: !66) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_7.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_7.c.bc new file mode 100644 index 00000000..31b34093 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_7.c.bc @@ -0,0 +1,218 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_7.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_7.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub nsw i32 %1, 1, !dbg !33 + %call = call i32 @id2(i32 noundef %sub), !dbg !34 + %add = add nsw i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp sgt i32 %2, 3, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 3, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id2(i32 noundef %x) #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !45, metadata !DIExpression()), !dbg !46 + %0 = load i32, ptr %x.addr, align 4, !dbg !47 + %cmp = icmp eq i32 %0, 0, !dbg !49 + br i1 %cmp, label %if.then, label %if.end, !dbg !50 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !51 + br label %return, !dbg !51 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !52, metadata !DIExpression()), !dbg !53 + %1 = load i32, ptr %x.addr, align 4, !dbg !54 + %sub = sub nsw i32 %1, 1, !dbg !55 + %call = call i32 @id(i32 noundef %sub), !dbg !56 + %add = add nsw i32 %call, 1, !dbg !57 + store i32 %add, ptr %ret, align 4, !dbg !53 + %2 = load i32, ptr %ret, align 4, !dbg !58 + %cmp1 = icmp sgt i32 %2, 3, !dbg !60 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !61 + +if.then2: ; preds = %if.end + store i32 3, ptr %retval, align 4, !dbg !62 + br label %return, !dbg !62 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !63 + store i32 %3, ptr %retval, align 4, !dbg !64 + br label %return, !dbg !64 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !65 + ret i32 %4, !dbg !65 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !66 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %res = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !69, metadata !DIExpression()), !dbg !70 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !71 + %0 = load i32, ptr %x, align 4, !dbg !72 + %cmp = icmp sge i32 %0, 0, !dbg !74 + br i1 %cmp, label %if.then, label %if.end, !dbg !75 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %res, metadata !76, metadata !DIExpression()), !dbg !78 + %1 = load i32, ptr %x, align 4, !dbg !79 + %call1 = call i32 @id(i32 noundef %1), !dbg !80 + store i32 %call1, ptr %res, align 4, !dbg !78 + %2 = load i32, ptr %res, align 4, !dbg !81 + %cmp2 = icmp sle i32 %2, 3, !dbg !82 + call void @svf_assert(i1 noundef zeroext %cmp2), !dbg !83 + br label %if.end, !dbg !84 + +if.end: ; preds = %if.then, %entry + %3 = load i32, ptr %retval, align 4, !dbg !85 + ret i32 %3, !dbg !85 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 25, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_7.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2c9f5a7265383a2696fa5d8a422143cc") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 3) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_7.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2c9f5a7265383a2696fa5d8a422143cc") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 9, type: !19, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 9, type: !21) +!24 = !DILocation(line: 9, column: 12, scope: !18) +!25 = !DILocation(line: 10, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 10, column: 9) +!27 = !DILocation(line: 10, column: 10, scope: !26) +!28 = !DILocation(line: 10, column: 9, scope: !18) +!29 = !DILocation(line: 10, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 11, type: !21) +!31 = !DILocation(line: 11, column: 9, scope: !18) +!32 = !DILocation(line: 11, column: 19, scope: !18) +!33 = !DILocation(line: 11, column: 20, scope: !18) +!34 = !DILocation(line: 11, column: 15, scope: !18) +!35 = !DILocation(line: 11, column: 24, scope: !18) +!36 = !DILocation(line: 12, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 12, column: 9) +!38 = !DILocation(line: 12, column: 13, scope: !37) +!39 = !DILocation(line: 12, column: 9, scope: !18) +!40 = !DILocation(line: 12, column: 18, scope: !37) +!41 = !DILocation(line: 13, column: 12, scope: !18) +!42 = !DILocation(line: 13, column: 5, scope: !18) +!43 = !DILocation(line: 14, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "id2", scope: !2, file: !2, line: 16, type: !19, scopeLine: 16, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DILocalVariable(name: "x", arg: 1, scope: !44, file: !2, line: 16, type: !21) +!46 = !DILocation(line: 16, column: 13, scope: !44) +!47 = !DILocation(line: 17, column: 9, scope: !48) +!48 = distinct !DILexicalBlock(scope: !44, file: !2, line: 17, column: 9) +!49 = !DILocation(line: 17, column: 10, scope: !48) +!50 = !DILocation(line: 17, column: 9, scope: !44) +!51 = !DILocation(line: 17, column: 15, scope: !48) +!52 = !DILocalVariable(name: "ret", scope: !44, file: !2, line: 18, type: !21) +!53 = !DILocation(line: 18, column: 9, scope: !44) +!54 = !DILocation(line: 18, column: 18, scope: !44) +!55 = !DILocation(line: 18, column: 19, scope: !44) +!56 = !DILocation(line: 18, column: 15, scope: !44) +!57 = !DILocation(line: 18, column: 23, scope: !44) +!58 = !DILocation(line: 19, column: 9, scope: !59) +!59 = distinct !DILexicalBlock(scope: !44, file: !2, line: 19, column: 9) +!60 = !DILocation(line: 19, column: 13, scope: !59) +!61 = !DILocation(line: 19, column: 9, scope: !44) +!62 = !DILocation(line: 19, column: 18, scope: !59) +!63 = !DILocation(line: 20, column: 12, scope: !44) +!64 = !DILocation(line: 20, column: 5, scope: !44) +!65 = !DILocation(line: 21, column: 1, scope: !44) +!66 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 23, type: !67, scopeLine: 23, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!67 = !DISubroutineType(types: !68) +!68 = !{!21} +!69 = !DILocalVariable(name: "x", scope: !66, file: !2, line: 24, type: !21) +!70 = !DILocation(line: 24, column: 9, scope: !66) +!71 = !DILocation(line: 25, column: 5, scope: !66) +!72 = !DILocation(line: 26, column: 8, scope: !73) +!73 = distinct !DILexicalBlock(scope: !66, file: !2, line: 26, column: 8) +!74 = !DILocation(line: 26, column: 10, scope: !73) +!75 = !DILocation(line: 26, column: 8, scope: !66) +!76 = !DILocalVariable(name: "res", scope: !77, file: !2, line: 27, type: !21) +!77 = distinct !DILexicalBlock(scope: !73, file: !2, line: 26, column: 15) +!78 = !DILocation(line: 27, column: 13, scope: !77) +!79 = !DILocation(line: 27, column: 22, scope: !77) +!80 = !DILocation(line: 27, column: 19, scope: !77) +!81 = !DILocation(line: 28, column: 20, scope: !77) +!82 = !DILocation(line: 28, column: 24, scope: !77) +!83 = !DILocation(line: 28, column: 9, scope: !77) +!84 = !DILocation(line: 29, column: 5, scope: !77) +!85 = !DILocation(line: 30, column: 1, scope: !66) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_8.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_8.c.bc new file mode 100644 index 00000000..fc19d5a7 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_8.c.bc @@ -0,0 +1,218 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_8.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_8.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub nsw i32 %1, 1, !dbg !33 + %call = call i32 @id2(i32 noundef %sub), !dbg !34 + %add = add nsw i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp sgt i32 %2, 3, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 3, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id2(i32 noundef %x) #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !45, metadata !DIExpression()), !dbg !46 + %0 = load i32, ptr %x.addr, align 4, !dbg !47 + %cmp = icmp eq i32 %0, 0, !dbg !49 + br i1 %cmp, label %if.then, label %if.end, !dbg !50 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !51 + br label %return, !dbg !51 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !52, metadata !DIExpression()), !dbg !53 + %1 = load i32, ptr %x.addr, align 4, !dbg !54 + %sub = sub nsw i32 %1, 1, !dbg !55 + %call = call i32 @id(i32 noundef %sub), !dbg !56 + %add = add nsw i32 %call, 1, !dbg !57 + store i32 %add, ptr %ret, align 4, !dbg !53 + %2 = load i32, ptr %ret, align 4, !dbg !58 + %cmp1 = icmp sgt i32 %2, 3, !dbg !60 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !61 + +if.then2: ; preds = %if.end + store i32 3, ptr %retval, align 4, !dbg !62 + br label %return, !dbg !62 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !63 + store i32 %3, ptr %retval, align 4, !dbg !64 + br label %return, !dbg !64 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !65 + ret i32 %4, !dbg !65 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !66 { +entry: + %retval = alloca i32, align 4 + %x = alloca i32, align 4 + %res = alloca i32, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !69, metadata !DIExpression()), !dbg !70 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !71 + %0 = load i32, ptr %x, align 4, !dbg !72 + %cmp = icmp sge i32 %0, 0, !dbg !74 + br i1 %cmp, label %if.then, label %if.end, !dbg !75 + +if.then: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %res, metadata !76, metadata !DIExpression()), !dbg !78 + %1 = load i32, ptr %x, align 4, !dbg !79 + %call1 = call i32 @id(i32 noundef %1), !dbg !80 + store i32 %call1, ptr %res, align 4, !dbg !78 + %2 = load i32, ptr %res, align 4, !dbg !81 + %cmp2 = icmp ne i32 %2, 4, !dbg !82 + call void @svf_assert(i1 noundef zeroext %cmp2), !dbg !83 + br label %if.end, !dbg !84 + +if.end: ; preds = %if.then, %entry + %3 = load i32, ptr %retval, align 4, !dbg !85 + ret i32 %3, !dbg !85 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 25, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_8.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1065f8374ad962308732533486129476") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 3) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_8.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1065f8374ad962308732533486129476") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 9, type: !19, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 9, type: !21) +!24 = !DILocation(line: 9, column: 12, scope: !18) +!25 = !DILocation(line: 10, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 10, column: 9) +!27 = !DILocation(line: 10, column: 10, scope: !26) +!28 = !DILocation(line: 10, column: 9, scope: !18) +!29 = !DILocation(line: 10, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 11, type: !21) +!31 = !DILocation(line: 11, column: 9, scope: !18) +!32 = !DILocation(line: 11, column: 19, scope: !18) +!33 = !DILocation(line: 11, column: 20, scope: !18) +!34 = !DILocation(line: 11, column: 15, scope: !18) +!35 = !DILocation(line: 11, column: 24, scope: !18) +!36 = !DILocation(line: 12, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 12, column: 9) +!38 = !DILocation(line: 12, column: 13, scope: !37) +!39 = !DILocation(line: 12, column: 9, scope: !18) +!40 = !DILocation(line: 12, column: 18, scope: !37) +!41 = !DILocation(line: 13, column: 12, scope: !18) +!42 = !DILocation(line: 13, column: 5, scope: !18) +!43 = !DILocation(line: 14, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "id2", scope: !2, file: !2, line: 16, type: !19, scopeLine: 16, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DILocalVariable(name: "x", arg: 1, scope: !44, file: !2, line: 16, type: !21) +!46 = !DILocation(line: 16, column: 13, scope: !44) +!47 = !DILocation(line: 17, column: 9, scope: !48) +!48 = distinct !DILexicalBlock(scope: !44, file: !2, line: 17, column: 9) +!49 = !DILocation(line: 17, column: 10, scope: !48) +!50 = !DILocation(line: 17, column: 9, scope: !44) +!51 = !DILocation(line: 17, column: 15, scope: !48) +!52 = !DILocalVariable(name: "ret", scope: !44, file: !2, line: 18, type: !21) +!53 = !DILocation(line: 18, column: 9, scope: !44) +!54 = !DILocation(line: 18, column: 18, scope: !44) +!55 = !DILocation(line: 18, column: 19, scope: !44) +!56 = !DILocation(line: 18, column: 15, scope: !44) +!57 = !DILocation(line: 18, column: 23, scope: !44) +!58 = !DILocation(line: 19, column: 9, scope: !59) +!59 = distinct !DILexicalBlock(scope: !44, file: !2, line: 19, column: 9) +!60 = !DILocation(line: 19, column: 13, scope: !59) +!61 = !DILocation(line: 19, column: 9, scope: !44) +!62 = !DILocation(line: 19, column: 18, scope: !59) +!63 = !DILocation(line: 20, column: 12, scope: !44) +!64 = !DILocation(line: 20, column: 5, scope: !44) +!65 = !DILocation(line: 21, column: 1, scope: !44) +!66 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 23, type: !67, scopeLine: 23, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!67 = !DISubroutineType(types: !68) +!68 = !{!21} +!69 = !DILocalVariable(name: "x", scope: !66, file: !2, line: 24, type: !21) +!70 = !DILocation(line: 24, column: 9, scope: !66) +!71 = !DILocation(line: 25, column: 5, scope: !66) +!72 = !DILocation(line: 26, column: 8, scope: !73) +!73 = distinct !DILexicalBlock(scope: !66, file: !2, line: 26, column: 8) +!74 = !DILocation(line: 26, column: 10, scope: !73) +!75 = !DILocation(line: 26, column: 8, scope: !66) +!76 = !DILocalVariable(name: "res", scope: !77, file: !2, line: 27, type: !21) +!77 = distinct !DILexicalBlock(scope: !73, file: !2, line: 26, column: 15) +!78 = !DILocation(line: 27, column: 13, scope: !77) +!79 = !DILocation(line: 27, column: 22, scope: !77) +!80 = !DILocation(line: 27, column: 19, scope: !77) +!81 = !DILocation(line: 28, column: 20, scope: !77) +!82 = !DILocation(line: 28, column: 24, scope: !77) +!83 = !DILocation(line: 28, column: 9, scope: !77) +!84 = !DILocation(line: 29, column: 5, scope: !77) +!85 = !DILocation(line: 30, column: 1, scope: !66) diff --git a/test_cases_bc/ae_recursion_tests/recursive_id_9.c.bc b/test_cases_bc/ae_recursion_tests/recursive_id_9.c.bc new file mode 100644 index 00000000..582c0711 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_id_9.c.bc @@ -0,0 +1,201 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_id_9.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_9.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [4 x i8] c"%ud\00", align 1, !dbg !0 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id(i32 noundef %x) #0 !dbg !18 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !23, metadata !DIExpression()), !dbg !24 + %0 = load i32, ptr %x.addr, align 4, !dbg !25 + %cmp = icmp eq i32 %0, 0, !dbg !27 + br i1 %cmp, label %if.then, label %if.end, !dbg !28 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !29 + br label %return, !dbg !29 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !30, metadata !DIExpression()), !dbg !31 + %1 = load i32, ptr %x.addr, align 4, !dbg !32 + %sub = sub nsw i32 %1, 1, !dbg !33 + %call = call i32 @id2(i32 noundef %sub), !dbg !34 + %add = add nsw i32 %call, 1, !dbg !35 + store i32 %add, ptr %ret, align 4, !dbg !31 + %2 = load i32, ptr %ret, align 4, !dbg !36 + %cmp1 = icmp sgt i32 %2, 5, !dbg !38 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !39 + +if.then2: ; preds = %if.end + store i32 5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !41 + store i32 %3, ptr %retval, align 4, !dbg !42 + br label %return, !dbg !42 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !43 + ret i32 %4, !dbg !43 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @id2(i32 noundef %x) #0 !dbg !44 { +entry: + %retval = alloca i32, align 4 + %x.addr = alloca i32, align 4 + %ret = alloca i32, align 4 + store i32 %x, ptr %x.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !45, metadata !DIExpression()), !dbg !46 + %0 = load i32, ptr %x.addr, align 4, !dbg !47 + %cmp = icmp eq i32 %0, 0, !dbg !49 + br i1 %cmp, label %if.then, label %if.end, !dbg !50 + +if.then: ; preds = %entry + store i32 0, ptr %retval, align 4, !dbg !51 + br label %return, !dbg !51 + +if.end: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %ret, metadata !52, metadata !DIExpression()), !dbg !53 + %1 = load i32, ptr %x.addr, align 4, !dbg !54 + %sub = sub nsw i32 %1, 1, !dbg !55 + %call = call i32 @id(i32 noundef %sub), !dbg !56 + %add = add nsw i32 %call, 1, !dbg !57 + store i32 %add, ptr %ret, align 4, !dbg !53 + %2 = load i32, ptr %ret, align 4, !dbg !58 + %cmp1 = icmp sgt i32 %2, 5, !dbg !60 + br i1 %cmp1, label %if.then2, label %if.end3, !dbg !61 + +if.then2: ; preds = %if.end + store i32 5, ptr %retval, align 4, !dbg !62 + br label %return, !dbg !62 + +if.end3: ; preds = %if.end + %3 = load i32, ptr %ret, align 4, !dbg !63 + store i32 %3, ptr %retval, align 4, !dbg !64 + br label %return, !dbg !64 + +return: ; preds = %if.end3, %if.then2, %if.then + %4 = load i32, ptr %retval, align 4, !dbg !65 + ret i32 %4, !dbg !65 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !66 { +entry: + %x = alloca i32, align 4 + %res = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %x, metadata !69, metadata !DIExpression()), !dbg !70 + %call = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %x), !dbg !71 + call void @llvm.dbg.declare(metadata ptr %res, metadata !72, metadata !DIExpression()), !dbg !73 + %0 = load i32, ptr %x, align 4, !dbg !74 + %call1 = call i32 @id(i32 noundef %0), !dbg !75 + store i32 %call1, ptr %res, align 4, !dbg !73 + %1 = load i32, ptr %res, align 4, !dbg !76 + %cmp = icmp sle i32 %1, 5, !dbg !77 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !78 + ret i32 0, !dbg !79 +} + +declare i32 @__isoc99_scanf(ptr noundef, ...) #2 + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!7} +!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} +!llvm.ident = !{!17} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 25, type: !3, isLocal: true, isDefinition: true) +!2 = !DIFile(filename: "src/ae_recursion_tests/recursive_id_9.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5b3df7cb461f7e2e2480aa5c28911f1b") +!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 32, elements: !5) +!4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) +!5 = !{!6} +!6 = !DISubrange(count: 4) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_id_9.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5b3df7cb461f7e2e2480aa5c28911f1b") +!9 = !{!0} +!10 = !{i32 7, !"Dwarf Version", i32 5} +!11 = !{i32 2, !"Debug Info Version", i32 3} +!12 = !{i32 1, !"wchar_size", i32 4} +!13 = !{i32 8, !"PIC Level", i32 2} +!14 = !{i32 7, !"PIE Level", i32 2} +!15 = !{i32 7, !"uwtable", i32 2} +!16 = !{i32 7, !"frame-pointer", i32 2} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!18 = distinct !DISubprogram(name: "id", scope: !2, file: !2, line: 9, type: !19, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!19 = !DISubroutineType(types: !20) +!20 = !{!21, !21} +!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!22 = !{} +!23 = !DILocalVariable(name: "x", arg: 1, scope: !18, file: !2, line: 9, type: !21) +!24 = !DILocation(line: 9, column: 12, scope: !18) +!25 = !DILocation(line: 10, column: 9, scope: !26) +!26 = distinct !DILexicalBlock(scope: !18, file: !2, line: 10, column: 9) +!27 = !DILocation(line: 10, column: 10, scope: !26) +!28 = !DILocation(line: 10, column: 9, scope: !18) +!29 = !DILocation(line: 10, column: 15, scope: !26) +!30 = !DILocalVariable(name: "ret", scope: !18, file: !2, line: 11, type: !21) +!31 = !DILocation(line: 11, column: 9, scope: !18) +!32 = !DILocation(line: 11, column: 19, scope: !18) +!33 = !DILocation(line: 11, column: 20, scope: !18) +!34 = !DILocation(line: 11, column: 15, scope: !18) +!35 = !DILocation(line: 11, column: 24, scope: !18) +!36 = !DILocation(line: 12, column: 9, scope: !37) +!37 = distinct !DILexicalBlock(scope: !18, file: !2, line: 12, column: 9) +!38 = !DILocation(line: 12, column: 13, scope: !37) +!39 = !DILocation(line: 12, column: 9, scope: !18) +!40 = !DILocation(line: 12, column: 18, scope: !37) +!41 = !DILocation(line: 13, column: 12, scope: !18) +!42 = !DILocation(line: 13, column: 5, scope: !18) +!43 = !DILocation(line: 14, column: 1, scope: !18) +!44 = distinct !DISubprogram(name: "id2", scope: !2, file: !2, line: 16, type: !19, scopeLine: 16, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!45 = !DILocalVariable(name: "x", arg: 1, scope: !44, file: !2, line: 16, type: !21) +!46 = !DILocation(line: 16, column: 13, scope: !44) +!47 = !DILocation(line: 17, column: 9, scope: !48) +!48 = distinct !DILexicalBlock(scope: !44, file: !2, line: 17, column: 9) +!49 = !DILocation(line: 17, column: 10, scope: !48) +!50 = !DILocation(line: 17, column: 9, scope: !44) +!51 = !DILocation(line: 17, column: 15, scope: !48) +!52 = !DILocalVariable(name: "ret", scope: !44, file: !2, line: 18, type: !21) +!53 = !DILocation(line: 18, column: 9, scope: !44) +!54 = !DILocation(line: 18, column: 18, scope: !44) +!55 = !DILocation(line: 18, column: 19, scope: !44) +!56 = !DILocation(line: 18, column: 15, scope: !44) +!57 = !DILocation(line: 18, column: 23, scope: !44) +!58 = !DILocation(line: 19, column: 9, scope: !59) +!59 = distinct !DILexicalBlock(scope: !44, file: !2, line: 19, column: 9) +!60 = !DILocation(line: 19, column: 13, scope: !59) +!61 = !DILocation(line: 19, column: 9, scope: !44) +!62 = !DILocation(line: 19, column: 18, scope: !59) +!63 = !DILocation(line: 20, column: 12, scope: !44) +!64 = !DILocation(line: 20, column: 5, scope: !44) +!65 = !DILocation(line: 21, column: 1, scope: !44) +!66 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 23, type: !67, scopeLine: 23, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !22) +!67 = !DISubroutineType(types: !68) +!68 = !{!21} +!69 = !DILocalVariable(name: "x", scope: !66, file: !2, line: 24, type: !21) +!70 = !DILocation(line: 24, column: 9, scope: !66) +!71 = !DILocation(line: 25, column: 5, scope: !66) +!72 = !DILocalVariable(name: "res", scope: !66, file: !2, line: 27, type: !21) +!73 = !DILocation(line: 27, column: 9, scope: !66) +!74 = !DILocation(line: 27, column: 18, scope: !66) +!75 = !DILocation(line: 27, column: 15, scope: !66) +!76 = !DILocation(line: 28, column: 16, scope: !66) +!77 = !DILocation(line: 28, column: 20, scope: !66) +!78 = !DILocation(line: 28, column: 5, scope: !66) +!79 = !DILocation(line: 29, column: 1, scope: !66) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_0.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_0.c.bc new file mode 100644 index 00000000..cab173f4 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_0.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_0.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_0.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 40), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sge i32 %0, 91, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "bd1c09073b96a825bfc31957b77ee829") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "bd1c09073b96a825bfc31957b77ee829") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_1.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_1.c.bc new file mode 100644 index 00000000..1635d79b --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_1.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_1.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 60), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sge i32 %0, 91, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fe3702430005dba80f55ce15776ff89b") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fe3702430005dba80f55ce15776ff89b") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_2.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_2.c.bc new file mode 100644 index 00000000..d10035a4 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_2.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_2.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 80), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sge i32 %0, 91, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "833dedf827e84b20fe5a5423d91b0cb2") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "833dedf827e84b20fe5a5423d91b0cb2") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_3.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_3.c.bc new file mode 100644 index 00000000..25f174c7 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_3.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_3.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_3.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 100), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sge i32 %0, 91, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f082eed92282be9d90a434aa0aae3e32") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f082eed92282be9d90a434aa0aae3e32") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_4.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_4.c.bc new file mode 100644 index 00000000..44cde826 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_4.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_4.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_4.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 120), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp eq i32 %0, 110, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ec9b088b14cecd065a2ff3dcdfac4007") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ec9b088b14cecd065a2ff3dcdfac4007") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_5.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_5.c.bc new file mode 100644 index 00000000..e071f33c --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_5.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_5.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_5.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 40), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sle i32 %0, 110, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_5.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2a27718acec142f1cd8ee90b8a54bc13") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_5.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2a27718acec142f1cd8ee90b8a54bc13") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_6.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_6.c.bc new file mode 100644 index 00000000..d8d58209 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_6.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_6.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_6.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 60), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sle i32 %0, 110, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_6.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ee4823becbf9bf85709a6ecc7866b330") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_6.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ee4823becbf9bf85709a6ecc7866b330") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_7.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_7.c.bc new file mode 100644 index 00000000..216c0431 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_7.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_7.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_7.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 80), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sle i32 %0, 110, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_7.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "969690be71ce2b8e18cb7b1c37f96b78") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_7.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "969690be71ce2b8e18cb7b1c37f96b78") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_mc91_8.c.bc b/test_cases_bc/ae_recursion_tests/recursive_mc91_8.c.bc new file mode 100644 index 00000000..6c3e7495 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_mc91_8.c.bc @@ -0,0 +1,125 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_mc91_8.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_8.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @mc91(i32 noundef %p) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %p.addr = alloca i32, align 4 + %p1 = alloca i32, align 4 + %p2 = alloca i32, align 4 + %result = alloca i32, align 4 + store i32 %p, ptr %p.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !16, metadata !DIExpression()), !dbg !17 + %0 = load i32, ptr %p.addr, align 4, !dbg !18 + %cmp = icmp sgt i32 %0, 100, !dbg !20 + br i1 %cmp, label %if.then, label %if.else, !dbg !21 + +if.then: ; preds = %entry + %1 = load i32, ptr %p.addr, align 4, !dbg !22 + %sub = sub nsw i32 %1, 10, !dbg !24 + store i32 %sub, ptr %retval, align 4, !dbg !25 + br label %return, !dbg !25 + +if.else: ; preds = %entry + call void @llvm.dbg.declare(metadata ptr %p1, metadata !26, metadata !DIExpression()), !dbg !28 + %2 = load i32, ptr %p.addr, align 4, !dbg !29 + %add = add nsw i32 %2, 11, !dbg !30 + store i32 %add, ptr %p1, align 4, !dbg !28 + call void @llvm.dbg.declare(metadata ptr %p2, metadata !31, metadata !DIExpression()), !dbg !32 + %3 = load i32, ptr %p1, align 4, !dbg !33 + %call = call i32 @mc91(i32 noundef %3), !dbg !34 + store i32 %call, ptr %p2, align 4, !dbg !32 + call void @llvm.dbg.declare(metadata ptr %result, metadata !35, metadata !DIExpression()), !dbg !36 + %4 = load i32, ptr %p2, align 4, !dbg !37 + %call1 = call i32 @mc91(i32 noundef %4), !dbg !38 + store i32 %call1, ptr %result, align 4, !dbg !36 + %5 = load i32, ptr %result, align 4, !dbg !39 + store i32 %5, ptr %retval, align 4, !dbg !40 + br label %return, !dbg !40 + +return: ; preds = %if.else, %if.then + %6 = load i32, ptr %retval, align 4, !dbg !41 + ret i32 %6, !dbg !41 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !42 { +entry: + %result = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %result, metadata !45, metadata !DIExpression()), !dbg !46 + %call = call i32 @mc91(i32 noundef 100), !dbg !47 + store i32 %call, ptr %result, align 4, !dbg !46 + %0 = load i32, ptr %result, align 4, !dbg !48 + %cmp = icmp sle i32 %0, 110, !dbg !49 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !50 + ret i32 0, !dbg !51 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_mc91_8.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f631704cb0d5473889e97be399c4c7b3") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "mc91", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_mc91_8.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f631704cb0d5473889e97be399c4c7b3") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "p", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 14, scope: !10) +!18 = !DILocation(line: 5, column: 8, scope: !19) +!19 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 8) +!20 = !DILocation(line: 5, column: 10, scope: !19) +!21 = !DILocation(line: 5, column: 8, scope: !10) +!22 = !DILocation(line: 6, column: 16, scope: !23) +!23 = distinct !DILexicalBlock(scope: !19, file: !11, line: 5, column: 16) +!24 = !DILocation(line: 6, column: 18, scope: !23) +!25 = !DILocation(line: 6, column: 9, scope: !23) +!26 = !DILocalVariable(name: "p1", scope: !27, file: !11, line: 8, type: !14) +!27 = distinct !DILexicalBlock(scope: !19, file: !11, line: 7, column: 10) +!28 = !DILocation(line: 8, column: 13, scope: !27) +!29 = !DILocation(line: 8, column: 18, scope: !27) +!30 = !DILocation(line: 8, column: 20, scope: !27) +!31 = !DILocalVariable(name: "p2", scope: !27, file: !11, line: 9, type: !14) +!32 = !DILocation(line: 9, column: 13, scope: !27) +!33 = !DILocation(line: 9, column: 23, scope: !27) +!34 = !DILocation(line: 9, column: 18, scope: !27) +!35 = !DILocalVariable(name: "result", scope: !27, file: !11, line: 10, type: !14) +!36 = !DILocation(line: 10, column: 13, scope: !27) +!37 = !DILocation(line: 10, column: 27, scope: !27) +!38 = !DILocation(line: 10, column: 22, scope: !27) +!39 = !DILocation(line: 11, column: 16, scope: !27) +!40 = !DILocation(line: 11, column: 9, scope: !27) +!41 = !DILocation(line: 13, column: 1, scope: !10) +!42 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 15, type: !43, scopeLine: 15, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!43 = !DISubroutineType(types: !44) +!44 = !{!14} +!45 = !DILocalVariable(name: "result", scope: !42, file: !11, line: 16, type: !14) +!46 = !DILocation(line: 16, column: 9, scope: !42) +!47 = !DILocation(line: 16, column: 18, scope: !42) +!48 = !DILocation(line: 17, column: 16, scope: !42) +!49 = !DILocation(line: 17, column: 23, scope: !42) +!50 = !DILocation(line: 17, column: 5, scope: !42) +!51 = !DILocation(line: 18, column: 1, scope: !42) diff --git a/test_cases_bc/ae_recursion_tests/recursive_sum_0.c.bc b/test_cases_bc/ae_recursion_tests/recursive_sum_0.c.bc new file mode 100644 index 00000000..fde37e94 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_sum_0.c.bc @@ -0,0 +1,127 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_sum_0.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_sum_0.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @sum(i32 noundef %n, i32 noundef %m) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %n.addr = alloca i32, align 4 + %m.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp sle i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.else, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + %2 = load i32, ptr %n.addr, align 4, !dbg !26 + %add = add nsw i32 %1, %2, !dbg !27 + store i32 %add, ptr %retval, align 4, !dbg !28 + br label %return, !dbg !28 + +if.else: ; preds = %entry + %3 = load i32, ptr %n.addr, align 4, !dbg !29 + %sub = sub nsw i32 %3, 1, !dbg !31 + %4 = load i32, ptr %m.addr, align 4, !dbg !32 + %add1 = add nsw i32 %4, 1, !dbg !33 + %call = call i32 @sum(i32 noundef %sub, i32 noundef %add1), !dbg !34 + store i32 %call, ptr %retval, align 4, !dbg !35 + br label %return, !dbg !35 + +return: ; preds = %if.else, %if.then + %5 = load i32, ptr %retval, align 4, !dbg !36 + ret i32 %5, !dbg !36 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !37 { +entry: + %a = alloca i32, align 4 + %b = alloca i32, align 4 + %res = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !40, metadata !DIExpression()), !dbg !41 + store i32 0, ptr %a, align 4, !dbg !41 + call void @llvm.dbg.declare(metadata ptr %b, metadata !42, metadata !DIExpression()), !dbg !43 + store i32 3, ptr %b, align 4, !dbg !43 + call void @llvm.dbg.declare(metadata ptr %res, metadata !44, metadata !DIExpression()), !dbg !45 + %0 = load i32, ptr %a, align 4, !dbg !46 + %1 = load i32, ptr %b, align 4, !dbg !47 + %call = call i32 @sum(i32 noundef %0, i32 noundef %1), !dbg !48 + store i32 %call, ptr %res, align 4, !dbg !45 + %2 = load i32, ptr %res, align 4, !dbg !49 + %cmp = icmp sle i32 %2, 3, !dbg !50 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !51 + ret i32 0, !dbg !52 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_sum_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "40701ebe788b10ba882fd483c46adf1b") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "sum", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_sum_0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "40701ebe788b10ba882fd483c46adf1b") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "n", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 13, scope: !10) +!18 = !DILocalVariable(name: "m", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 20, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 20, scope: !25) +!27 = !DILocation(line: 6, column: 18, scope: !25) +!28 = !DILocation(line: 6, column: 9, scope: !25) +!29 = !DILocation(line: 8, column: 20, scope: !30) +!30 = distinct !DILexicalBlock(scope: !21, file: !11, line: 7, column: 12) +!31 = !DILocation(line: 8, column: 22, scope: !30) +!32 = !DILocation(line: 8, column: 27, scope: !30) +!33 = !DILocation(line: 8, column: 29, scope: !30) +!34 = !DILocation(line: 8, column: 16, scope: !30) +!35 = !DILocation(line: 8, column: 9, scope: !30) +!36 = !DILocation(line: 10, column: 1, scope: !10) +!37 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 12, type: !38, scopeLine: 12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!38 = !DISubroutineType(types: !39) +!39 = !{!14} +!40 = !DILocalVariable(name: "a", scope: !37, file: !11, line: 13, type: !14) +!41 = !DILocation(line: 13, column: 9, scope: !37) +!42 = !DILocalVariable(name: "b", scope: !37, file: !11, line: 14, type: !14) +!43 = !DILocation(line: 14, column: 9, scope: !37) +!44 = !DILocalVariable(name: "res", scope: !37, file: !11, line: 15, type: !14) +!45 = !DILocation(line: 15, column: 9, scope: !37) +!46 = !DILocation(line: 15, column: 19, scope: !37) +!47 = !DILocation(line: 15, column: 22, scope: !37) +!48 = !DILocation(line: 15, column: 15, scope: !37) +!49 = !DILocation(line: 16, column: 16, scope: !37) +!50 = !DILocation(line: 16, column: 20, scope: !37) +!51 = !DILocation(line: 16, column: 5, scope: !37) +!52 = !DILocation(line: 17, column: 1, scope: !37) diff --git a/test_cases_bc/ae_recursion_tests/recursive_sum_1.c.bc b/test_cases_bc/ae_recursion_tests/recursive_sum_1.c.bc new file mode 100644 index 00000000..89044dfd --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_sum_1.c.bc @@ -0,0 +1,127 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_sum_1.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_sum_1.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @sum(i32 noundef %n, i32 noundef %m) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %n.addr = alloca i32, align 4 + %m.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp sle i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.else, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + %2 = load i32, ptr %n.addr, align 4, !dbg !26 + %add = add nsw i32 %1, %2, !dbg !27 + store i32 %add, ptr %retval, align 4, !dbg !28 + br label %return, !dbg !28 + +if.else: ; preds = %entry + %3 = load i32, ptr %n.addr, align 4, !dbg !29 + %sub = sub nsw i32 %3, 1, !dbg !31 + %4 = load i32, ptr %m.addr, align 4, !dbg !32 + %add1 = add nsw i32 %4, 1, !dbg !33 + %call = call i32 @sum(i32 noundef %sub, i32 noundef %add1), !dbg !34 + store i32 %call, ptr %retval, align 4, !dbg !35 + br label %return, !dbg !35 + +return: ; preds = %if.else, %if.then + %5 = load i32, ptr %retval, align 4, !dbg !36 + ret i32 %5, !dbg !36 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !37 { +entry: + %a = alloca i32, align 4 + %b = alloca i32, align 4 + %res = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !40, metadata !DIExpression()), !dbg !41 + store i32 -10, ptr %a, align 4, !dbg !41 + call void @llvm.dbg.declare(metadata ptr %b, metadata !42, metadata !DIExpression()), !dbg !43 + store i32 3, ptr %b, align 4, !dbg !43 + call void @llvm.dbg.declare(metadata ptr %res, metadata !44, metadata !DIExpression()), !dbg !45 + %0 = load i32, ptr %a, align 4, !dbg !46 + %1 = load i32, ptr %b, align 4, !dbg !47 + %call = call i32 @sum(i32 noundef %0, i32 noundef %1), !dbg !48 + store i32 %call, ptr %res, align 4, !dbg !45 + %2 = load i32, ptr %res, align 4, !dbg !49 + %cmp = icmp sle i32 %2, 3, !dbg !50 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !51 + ret i32 0, !dbg !52 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_sum_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d9d910652265dfe38c9b74a0970a3b2a") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "sum", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_sum_1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d9d910652265dfe38c9b74a0970a3b2a") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "n", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 13, scope: !10) +!18 = !DILocalVariable(name: "m", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 20, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 20, scope: !25) +!27 = !DILocation(line: 6, column: 18, scope: !25) +!28 = !DILocation(line: 6, column: 9, scope: !25) +!29 = !DILocation(line: 8, column: 20, scope: !30) +!30 = distinct !DILexicalBlock(scope: !21, file: !11, line: 7, column: 12) +!31 = !DILocation(line: 8, column: 22, scope: !30) +!32 = !DILocation(line: 8, column: 27, scope: !30) +!33 = !DILocation(line: 8, column: 29, scope: !30) +!34 = !DILocation(line: 8, column: 16, scope: !30) +!35 = !DILocation(line: 8, column: 9, scope: !30) +!36 = !DILocation(line: 10, column: 1, scope: !10) +!37 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 12, type: !38, scopeLine: 12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!38 = !DISubroutineType(types: !39) +!39 = !{!14} +!40 = !DILocalVariable(name: "a", scope: !37, file: !11, line: 13, type: !14) +!41 = !DILocation(line: 13, column: 9, scope: !37) +!42 = !DILocalVariable(name: "b", scope: !37, file: !11, line: 14, type: !14) +!43 = !DILocation(line: 14, column: 9, scope: !37) +!44 = !DILocalVariable(name: "res", scope: !37, file: !11, line: 15, type: !14) +!45 = !DILocation(line: 15, column: 9, scope: !37) +!46 = !DILocation(line: 15, column: 19, scope: !37) +!47 = !DILocation(line: 15, column: 22, scope: !37) +!48 = !DILocation(line: 15, column: 15, scope: !37) +!49 = !DILocation(line: 16, column: 16, scope: !37) +!50 = !DILocation(line: 16, column: 20, scope: !37) +!51 = !DILocation(line: 16, column: 5, scope: !37) +!52 = !DILocation(line: 17, column: 1, scope: !37) diff --git a/test_cases_bc/ae_recursion_tests/recursive_sum_2.c.bc b/test_cases_bc/ae_recursion_tests/recursive_sum_2.c.bc new file mode 100644 index 00000000..da998206 --- /dev/null +++ b/test_cases_bc/ae_recursion_tests/recursive_sum_2.c.bc @@ -0,0 +1,127 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/ae_recursion_tests/recursive_sum_2.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_sum_2.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @sum(i32 noundef %n, i32 noundef %m) #0 !dbg !10 { +entry: + %retval = alloca i32, align 4 + %n.addr = alloca i32, align 4 + %m.addr = alloca i32, align 4 + store i32 %n, ptr %n.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %n.addr, metadata !16, metadata !DIExpression()), !dbg !17 + store i32 %m, ptr %m.addr, align 4 + call void @llvm.dbg.declare(metadata ptr %m.addr, metadata !18, metadata !DIExpression()), !dbg !19 + %0 = load i32, ptr %n.addr, align 4, !dbg !20 + %cmp = icmp sle i32 %0, 0, !dbg !22 + br i1 %cmp, label %if.then, label %if.else, !dbg !23 + +if.then: ; preds = %entry + %1 = load i32, ptr %m.addr, align 4, !dbg !24 + %2 = load i32, ptr %n.addr, align 4, !dbg !26 + %add = add nsw i32 %1, %2, !dbg !27 + store i32 %add, ptr %retval, align 4, !dbg !28 + br label %return, !dbg !28 + +if.else: ; preds = %entry + %3 = load i32, ptr %n.addr, align 4, !dbg !29 + %sub = sub nsw i32 %3, 1, !dbg !31 + %4 = load i32, ptr %m.addr, align 4, !dbg !32 + %add1 = add nsw i32 %4, 1, !dbg !33 + %call = call i32 @sum(i32 noundef %sub, i32 noundef %add1), !dbg !34 + store i32 %call, ptr %retval, align 4, !dbg !35 + br label %return, !dbg !35 + +return: ; preds = %if.else, %if.then + %5 = load i32, ptr %retval, align 4, !dbg !36 + ret i32 %5, !dbg !36 +} + +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main() #0 !dbg !37 { +entry: + %a = alloca i32, align 4 + %b = alloca i32, align 4 + %res = alloca i32, align 4 + call void @llvm.dbg.declare(metadata ptr %a, metadata !40, metadata !DIExpression()), !dbg !41 + store i32 -100, ptr %a, align 4, !dbg !41 + call void @llvm.dbg.declare(metadata ptr %b, metadata !42, metadata !DIExpression()), !dbg !43 + store i32 3, ptr %b, align 4, !dbg !43 + call void @llvm.dbg.declare(metadata ptr %res, metadata !44, metadata !DIExpression()), !dbg !45 + %0 = load i32, ptr %a, align 4, !dbg !46 + %1 = load i32, ptr %b, align 4, !dbg !47 + %call = call i32 @sum(i32 noundef %0, i32 noundef %1), !dbg !48 + store i32 %call, ptr %res, align 4, !dbg !45 + %2 = load i32, ptr %res, align 4, !dbg !49 + %cmp = icmp sle i32 %2, 3, !dbg !50 + call void @svf_assert(i1 noundef zeroext %cmp), !dbg !51 + ret i32 0, !dbg !52 +} + +declare void @svf_assert(i1 noundef zeroext) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/ae_recursion_tests/recursive_sum_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4d3d58150c7bb96752c8b84c8b77aba6") +!2 = !{i32 7, !"Dwarf Version", i32 5} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{i32 8, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} +!10 = distinct !DISubprogram(name: "sum", scope: !11, file: !11, line: 4, type: !12, scopeLine: 4, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!11 = !DIFile(filename: "src/ae_recursion_tests/recursive_sum_2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4d3d58150c7bb96752c8b84c8b77aba6") +!12 = !DISubroutineType(types: !13) +!13 = !{!14, !14, !14} +!14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!15 = !{} +!16 = !DILocalVariable(name: "n", arg: 1, scope: !10, file: !11, line: 4, type: !14) +!17 = !DILocation(line: 4, column: 13, scope: !10) +!18 = !DILocalVariable(name: "m", arg: 2, scope: !10, file: !11, line: 4, type: !14) +!19 = !DILocation(line: 4, column: 20, scope: !10) +!20 = !DILocation(line: 5, column: 9, scope: !21) +!21 = distinct !DILexicalBlock(scope: !10, file: !11, line: 5, column: 9) +!22 = !DILocation(line: 5, column: 11, scope: !21) +!23 = !DILocation(line: 5, column: 9, scope: !10) +!24 = !DILocation(line: 6, column: 16, scope: !25) +!25 = distinct !DILexicalBlock(scope: !21, file: !11, line: 5, column: 17) +!26 = !DILocation(line: 6, column: 20, scope: !25) +!27 = !DILocation(line: 6, column: 18, scope: !25) +!28 = !DILocation(line: 6, column: 9, scope: !25) +!29 = !DILocation(line: 8, column: 20, scope: !30) +!30 = distinct !DILexicalBlock(scope: !21, file: !11, line: 7, column: 12) +!31 = !DILocation(line: 8, column: 22, scope: !30) +!32 = !DILocation(line: 8, column: 27, scope: !30) +!33 = !DILocation(line: 8, column: 29, scope: !30) +!34 = !DILocation(line: 8, column: 16, scope: !30) +!35 = !DILocation(line: 8, column: 9, scope: !30) +!36 = !DILocation(line: 10, column: 1, scope: !10) +!37 = distinct !DISubprogram(name: "main", scope: !11, file: !11, line: 12, type: !38, scopeLine: 12, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !15) +!38 = !DISubroutineType(types: !39) +!39 = !{!14} +!40 = !DILocalVariable(name: "a", scope: !37, file: !11, line: 13, type: !14) +!41 = !DILocation(line: 13, column: 9, scope: !37) +!42 = !DILocalVariable(name: "b", scope: !37, file: !11, line: 14, type: !14) +!43 = !DILocation(line: 14, column: 9, scope: !37) +!44 = !DILocalVariable(name: "res", scope: !37, file: !11, line: 15, type: !14) +!45 = !DILocation(line: 15, column: 9, scope: !37) +!46 = !DILocation(line: 15, column: 19, scope: !37) +!47 = !DILocation(line: 15, column: 22, scope: !37) +!48 = !DILocation(line: 15, column: 15, scope: !37) +!49 = !DILocation(line: 16, column: 16, scope: !37) +!50 = !DILocation(line: 16, column: 20, scope: !37) +!51 = !DILocation(line: 16, column: 5, scope: !37) +!52 = !DILocation(line: 17, column: 1, scope: !37) diff --git a/test_cases_bc/basic_c_tests/CI-funptr.c.bc b/test_cases_bc/basic_c_tests/CI-funptr.c.bc index fd5b6f0f..e26130fe 100644 --- a/test_cases_bc/basic_c_tests/CI-funptr.c.bc +++ b/test_cases_bc/basic_c_tests/CI-funptr.c.bc @@ -190,4 +190,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/CI-global.c.bc b/test_cases_bc/basic_c_tests/CI-global.c.bc index c7df73bb..7c1ba815 100644 --- a/test_cases_bc/basic_c_tests/CI-global.c.bc +++ b/test_cases_bc/basic_c_tests/CI-global.c.bc @@ -174,4 +174,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/CI-local.c.bc b/test_cases_bc/basic_c_tests/CI-local.c.bc index ad01f9fc..cc250563 100644 --- a/test_cases_bc/basic_c_tests/CI-local.c.bc +++ b/test_cases_bc/basic_c_tests/CI-local.c.bc @@ -197,4 +197,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/array-constIdx.c.bc b/test_cases_bc/basic_c_tests/array-constIdx.c.bc index 52ec1b83..e5a34281 100644 --- a/test_cases_bc/basic_c_tests/array-constIdx.c.bc +++ b/test_cases_bc/basic_c_tests/array-constIdx.c.bc @@ -184,4 +184,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/array-varIdx.c.bc b/test_cases_bc/basic_c_tests/array-varIdx.c.bc index c1cb56c1..7bfa8921 100644 --- a/test_cases_bc/basic_c_tests/array-varIdx.c.bc +++ b/test_cases_bc/basic_c_tests/array-varIdx.c.bc @@ -181,4 +181,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/array-varIdx2.c.bc b/test_cases_bc/basic_c_tests/array-varIdx2.c.bc index cb7ef16f..3469bdd9 100644 --- a/test_cases_bc/basic_c_tests/array-varIdx2.c.bc +++ b/test_cases_bc/basic_c_tests/array-varIdx2.c.bc @@ -192,4 +192,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/arraycopy1.c.bc b/test_cases_bc/basic_c_tests/arraycopy1.c.bc index ef51da0e..23e7d50c 100644 --- a/test_cases_bc/basic_c_tests/arraycopy1.c.bc +++ b/test_cases_bc/basic_c_tests/arraycopy1.c.bc @@ -37,4 +37,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/branch-call.c.bc b/test_cases_bc/basic_c_tests/branch-call.c.bc index c49c5d57..e57d40a3 100644 --- a/test_cases_bc/basic_c_tests/branch-call.c.bc +++ b/test_cases_bc/basic_c_tests/branch-call.c.bc @@ -212,4 +212,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/branch-intra.c.bc b/test_cases_bc/basic_c_tests/branch-intra.c.bc index a761beb0..6d285f4f 100644 --- a/test_cases_bc/basic_c_tests/branch-intra.c.bc +++ b/test_cases_bc/basic_c_tests/branch-intra.c.bc @@ -182,4 +182,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/byteoffset1.c.bc b/test_cases_bc/basic_c_tests/byteoffset1.c.bc index a9fda41e..35b0e000 100644 --- a/test_cases_bc/basic_c_tests/byteoffset1.c.bc +++ b/test_cases_bc/basic_c_tests/byteoffset1.c.bc @@ -82,4 +82,4 @@ attributes #3 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/constraint-cycle-copy.c.bc b/test_cases_bc/basic_c_tests/constraint-cycle-copy.c.bc index d8c2c88b..545a0053 100644 --- a/test_cases_bc/basic_c_tests/constraint-cycle-copy.c.bc +++ b/test_cases_bc/basic_c_tests/constraint-cycle-copy.c.bc @@ -204,4 +204,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/constraint-cycle-field.c.bc b/test_cases_bc/basic_c_tests/constraint-cycle-field.c.bc index c720d672..7fb52931 100644 --- a/test_cases_bc/basic_c_tests/constraint-cycle-field.c.bc +++ b/test_cases_bc/basic_c_tests/constraint-cycle-field.c.bc @@ -217,6 +217,6 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_c_tests/constraint-cycle-pwc.c.bc b/test_cases_bc/basic_c_tests/constraint-cycle-pwc.c.bc index 96331ee1..d9ab0732 100644 --- a/test_cases_bc/basic_c_tests/constraint-cycle-pwc.c.bc +++ b/test_cases_bc/basic_c_tests/constraint-cycle-pwc.c.bc @@ -78,6 +78,6 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_c_tests/field-ptr-arith-constIdx.c.bc b/test_cases_bc/basic_c_tests/field-ptr-arith-constIdx.c.bc index ababcb4c..93b217ca 100644 --- a/test_cases_bc/basic_c_tests/field-ptr-arith-constIdx.c.bc +++ b/test_cases_bc/basic_c_tests/field-ptr-arith-constIdx.c.bc @@ -178,4 +178,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/field-ptr-arith-varIdx.c.bc b/test_cases_bc/basic_c_tests/field-ptr-arith-varIdx.c.bc index a6c00cfb..d34e4d90 100644 --- a/test_cases_bc/basic_c_tests/field-ptr-arith-varIdx.c.bc +++ b/test_cases_bc/basic_c_tests/field-ptr-arith-varIdx.c.bc @@ -180,4 +180,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/funptr-global.c.bc b/test_cases_bc/basic_c_tests/funptr-global.c.bc index 22dd2b0e..33065931 100644 --- a/test_cases_bc/basic_c_tests/funptr-global.c.bc +++ b/test_cases_bc/basic_c_tests/funptr-global.c.bc @@ -212,4 +212,4 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/funptr-nested-call.c.bc b/test_cases_bc/basic_c_tests/funptr-nested-call.c.bc index dd56a3e8..cd5237d3 100644 --- a/test_cases_bc/basic_c_tests/funptr-nested-call.c.bc +++ b/test_cases_bc/basic_c_tests/funptr-nested-call.c.bc @@ -87,4 +87,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/funptr-nested-struct-simple.c.bc b/test_cases_bc/basic_c_tests/funptr-nested-struct-simple.c.bc new file mode 100644 index 00000000..e8d31d2a --- /dev/null +++ b/test_cases_bc/basic_c_tests/funptr-nested-struct-simple.c.bc @@ -0,0 +1,65 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/basic_c_tests/funptr-nested-struct-simple.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_c_tests/funptr-nested-struct-simple.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.interesting = type { i32, ptr, ptr } +%struct.nested_ptr = type { i32, ptr } + +@g = dso_local global i32 0, align 4 +@i1 = dso_local global %struct.interesting { i32 0, ptr @f1, ptr @f2 }, align 8 +@n1 = dso_local global %struct.nested_ptr { i32 0, ptr @i1 }, align 8 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f1(ptr noundef %a) #0 { +entry: + %a.addr = alloca ptr, align 8 + store ptr %a, ptr %a.addr, align 8 + %0 = load ptr, ptr %a.addr, align 8 + call void @MAYALIAS(ptr noundef %0, ptr noundef @g) + ret void +} + +declare void @MAYALIAS(ptr noundef, ptr noundef) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f2(ptr noundef %a) #0 { +entry: + %a.addr = alloca ptr, align 8 + store ptr %a, ptr %a.addr, align 8 + %0 = load ptr, ptr %a.addr, align 8 + call void @MAYALIAS(ptr noundef %0, ptr noundef @g) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_ptr() #0 { +entry: + %interesting_stub = alloca %struct.interesting, align 8 + %0 = load ptr, ptr getelementptr inbounds (%struct.nested_ptr, ptr @n1, i32 0, i32 1), align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %interesting_stub, ptr align 8 %0, i64 24, i1 false) + %f1 = getelementptr inbounds %struct.interesting, ptr %interesting_stub, i32 0, i32 1 + %1 = load ptr, ptr %f1, align 8 + call void %1(ptr noundef @g) + %f2 = getelementptr inbounds %struct.interesting, ptr %interesting_stub, i32 0, i32 2 + %2 = load ptr, ptr %f2, align 8 + call void %2(ptr noundef @g) + ret void +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/funptr-nested-struct.c.bc b/test_cases_bc/basic_c_tests/funptr-nested-struct.c.bc new file mode 100644 index 00000000..a6df35a8 --- /dev/null +++ b/test_cases_bc/basic_c_tests/funptr-nested-struct.c.bc @@ -0,0 +1,68 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/basic_c_tests/funptr-nested-struct.c.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_c_tests/funptr-nested-struct.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +%struct.interesting = type { i32, ptr, ptr } +%struct.nested_ptr = type { i32, ptr } + +@g = dso_local global i32 0, align 4 +@i1 = dso_local global %struct.interesting { i32 0, ptr @f1, ptr @f2 }, align 8 +@n1 = dso_local global %struct.nested_ptr { i32 0, ptr @i1 }, align 8 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f1(ptr noundef %a) #0 { +entry: + %a.addr = alloca ptr, align 8 + store ptr %a, ptr %a.addr, align 8 + %0 = load ptr, ptr %a.addr, align 8 + call void @MAYALIAS(ptr noundef %0, ptr noundef @g) + ret void +} + +declare void @MAYALIAS(ptr noundef, ptr noundef) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @f2(ptr noundef %a) #0 { +entry: + %a.addr = alloca ptr, align 8 + store ptr %a, ptr %a.addr, align 8 + %0 = load ptr, ptr %a.addr, align 8 + call void @MAYALIAS(ptr noundef %0, ptr noundef @g) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @test_ptr() #0 { +entry: + %tmp = alloca %struct.nested_ptr, align 8 + %interesting_stub = alloca %struct.interesting, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %tmp, ptr align 8 @n1, i64 16, i1 false) + %ptr = getelementptr inbounds %struct.nested_ptr, ptr %tmp, i32 0, i32 1 + %0 = load ptr, ptr %ptr, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %interesting_stub, ptr align 8 %0, i64 24, i1 false) + %f1 = getelementptr inbounds %struct.interesting, ptr %interesting_stub, i32 0, i32 1 + %1 = load ptr, ptr %f1, align 8 + call void %1(ptr noundef @g) + %f2 = getelementptr inbounds %struct.interesting, ptr %interesting_stub, i32 0, i32 2 + %2 = load ptr, ptr %f2, align 8 + call void %2(ptr noundef @g) + ret void +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2 + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/funptr-simple.c.bc b/test_cases_bc/basic_c_tests/funptr-simple.c.bc index 223b09b1..1e32deb8 100644 --- a/test_cases_bc/basic_c_tests/funptr-simple.c.bc +++ b/test_cases_bc/basic_c_tests/funptr-simple.c.bc @@ -200,4 +200,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/funptr-struct.c.bc b/test_cases_bc/basic_c_tests/funptr-struct.c.bc index 420d509d..e42c16a1 100644 --- a/test_cases_bc/basic_c_tests/funptr-struct.c.bc +++ b/test_cases_bc/basic_c_tests/funptr-struct.c.bc @@ -206,4 +206,4 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-array.c.bc b/test_cases_bc/basic_c_tests/global-array.c.bc index e60ea36e..68550369 100644 --- a/test_cases_bc/basic_c_tests/global-array.c.bc +++ b/test_cases_bc/basic_c_tests/global-array.c.bc @@ -228,6 +228,6 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_c_tests/global-call-noparam.c.bc b/test_cases_bc/basic_c_tests/global-call-noparam.c.bc index 2939e5de..8c8c5094 100644 --- a/test_cases_bc/basic_c_tests/global-call-noparam.c.bc +++ b/test_cases_bc/basic_c_tests/global-call-noparam.c.bc @@ -182,4 +182,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-call-struct.c.bc b/test_cases_bc/basic_c_tests/global-call-struct.c.bc index 6ba7dd7d..8e770939 100644 --- a/test_cases_bc/basic_c_tests/global-call-struct.c.bc +++ b/test_cases_bc/basic_c_tests/global-call-struct.c.bc @@ -206,4 +206,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-call-twoparms.c.bc b/test_cases_bc/basic_c_tests/global-call-twoparms.c.bc index 223b40af..6e92705b 100644 --- a/test_cases_bc/basic_c_tests/global-call-twoparms.c.bc +++ b/test_cases_bc/basic_c_tests/global-call-twoparms.c.bc @@ -233,4 +233,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-const-struct.c.bc b/test_cases_bc/basic_c_tests/global-const-struct.c.bc index 418eeb1c..fc45b055 100644 --- a/test_cases_bc/basic_c_tests/global-const-struct.c.bc +++ b/test_cases_bc/basic_c_tests/global-const-struct.c.bc @@ -197,4 +197,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-funptr.c.bc b/test_cases_bc/basic_c_tests/global-funptr.c.bc index 07b2b7bb..73e832cf 100644 --- a/test_cases_bc/basic_c_tests/global-funptr.c.bc +++ b/test_cases_bc/basic_c_tests/global-funptr.c.bc @@ -179,4 +179,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-initializer.c.bc b/test_cases_bc/basic_c_tests/global-initializer.c.bc index 34b0bfcd..e73bc1e2 100644 --- a/test_cases_bc/basic_c_tests/global-initializer.c.bc +++ b/test_cases_bc/basic_c_tests/global-initializer.c.bc @@ -185,4 +185,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-nested-calls.c.bc b/test_cases_bc/basic_c_tests/global-nested-calls.c.bc index 6d47c376..7f2c0769 100644 --- a/test_cases_bc/basic_c_tests/global-nested-calls.c.bc +++ b/test_cases_bc/basic_c_tests/global-nested-calls.c.bc @@ -187,4 +187,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/global-simple.c.bc b/test_cases_bc/basic_c_tests/global-simple.c.bc index fdbe4430..d8d25528 100644 --- a/test_cases_bc/basic_c_tests/global-simple.c.bc +++ b/test_cases_bc/basic_c_tests/global-simple.c.bc @@ -177,4 +177,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/heap-indirect.c.bc b/test_cases_bc/basic_c_tests/heap-indirect.c.bc index 645b8ef9..572d4af0 100644 --- a/test_cases_bc/basic_c_tests/heap-indirect.c.bc +++ b/test_cases_bc/basic_c_tests/heap-indirect.c.bc @@ -194,4 +194,4 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/heap-linkedlist.c.bc b/test_cases_bc/basic_c_tests/heap-linkedlist.c.bc index 7ee25ec7..8c178517 100644 --- a/test_cases_bc/basic_c_tests/heap-linkedlist.c.bc +++ b/test_cases_bc/basic_c_tests/heap-linkedlist.c.bc @@ -242,6 +242,6 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_c_tests/heap-wrapper.c.bc b/test_cases_bc/basic_c_tests/heap-wrapper.c.bc index 1f1f4962..60bee4e6 100644 --- a/test_cases_bc/basic_c_tests/heap-wrapper.c.bc +++ b/test_cases_bc/basic_c_tests/heap-wrapper.c.bc @@ -183,4 +183,4 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/int2pointer.c.bc b/test_cases_bc/basic_c_tests/int2pointer.c.bc index 47ab9e4c..edb830ae 100644 --- a/test_cases_bc/basic_c_tests/int2pointer.c.bc +++ b/test_cases_bc/basic_c_tests/int2pointer.c.bc @@ -178,4 +178,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/mesa.c.bc b/test_cases_bc/basic_c_tests/mesa.c.bc index ac2e517e..b6d681fc 100644 --- a/test_cases_bc/basic_c_tests/mesa.c.bc +++ b/test_cases_bc/basic_c_tests/mesa.c.bc @@ -110,6 +110,6 @@ attributes #3 = { nounwind allocsize(0,1) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_c_tests/ptr-dereference1.c.bc b/test_cases_bc/basic_c_tests/ptr-dereference1.c.bc index d11f98ea..f1742c78 100644 --- a/test_cases_bc/basic_c_tests/ptr-dereference1.c.bc +++ b/test_cases_bc/basic_c_tests/ptr-dereference1.c.bc @@ -174,4 +174,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/ptr-dereference2.c.bc b/test_cases_bc/basic_c_tests/ptr-dereference2.c.bc index 6cd8fe15..8be78e01 100644 --- a/test_cases_bc/basic_c_tests/ptr-dereference2.c.bc +++ b/test_cases_bc/basic_c_tests/ptr-dereference2.c.bc @@ -178,4 +178,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/ptr-dereference3.c.bc b/test_cases_bc/basic_c_tests/ptr-dereference3.c.bc index 36445b8b..c10729ea 100644 --- a/test_cases_bc/basic_c_tests/ptr-dereference3.c.bc +++ b/test_cases_bc/basic_c_tests/ptr-dereference3.c.bc @@ -194,4 +194,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/spec-equake.c.bc b/test_cases_bc/basic_c_tests/spec-equake.c.bc index 16dea3e9..8f565f5a 100644 --- a/test_cases_bc/basic_c_tests/spec-equake.c.bc +++ b/test_cases_bc/basic_c_tests/spec-equake.c.bc @@ -1104,7 +1104,7 @@ attributes #6 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_c_tests/spec-gap.c.bc b/test_cases_bc/basic_c_tests/spec-gap.c.bc index 1c544157..0e657587 100644 --- a/test_cases_bc/basic_c_tests/spec-gap.c.bc +++ b/test_cases_bc/basic_c_tests/spec-gap.c.bc @@ -289,7 +289,7 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_c_tests/spec-mesa.c.bc b/test_cases_bc/basic_c_tests/spec-mesa.c.bc index 976a840f..ee58096a 100644 --- a/test_cases_bc/basic_c_tests/spec-mesa.c.bc +++ b/test_cases_bc/basic_c_tests/spec-mesa.c.bc @@ -377,4 +377,4 @@ attributes #6 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/spec-parser.c.bc b/test_cases_bc/basic_c_tests/spec-parser.c.bc index cf546afe..3f64dcf6 100644 --- a/test_cases_bc/basic_c_tests/spec-parser.c.bc +++ b/test_cases_bc/basic_c_tests/spec-parser.c.bc @@ -265,7 +265,7 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_c_tests/spec-vortex.c.bc b/test_cases_bc/basic_c_tests/spec-vortex.c.bc index 36ca4289..9ebd05cb 100644 --- a/test_cases_bc/basic_c_tests/spec-vortex.c.bc +++ b/test_cases_bc/basic_c_tests/spec-vortex.c.bc @@ -296,4 +296,4 @@ attributes #3 = { nounwind allocsize(0,1) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-array.c.bc b/test_cases_bc/basic_c_tests/struct-array.c.bc index ebbdf0b1..357795bd 100644 --- a/test_cases_bc/basic_c_tests/struct-array.c.bc +++ b/test_cases_bc/basic_c_tests/struct-array.c.bc @@ -190,4 +190,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-assignment-direct.c.bc b/test_cases_bc/basic_c_tests/struct-assignment-direct.c.bc index 9c6906a1..24e94aef 100644 --- a/test_cases_bc/basic_c_tests/struct-assignment-direct.c.bc +++ b/test_cases_bc/basic_c_tests/struct-assignment-direct.c.bc @@ -181,4 +181,4 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-assignment-indirect.c.bc b/test_cases_bc/basic_c_tests/struct-assignment-indirect.c.bc index a59d92b1..fadf0c88 100644 --- a/test_cases_bc/basic_c_tests/struct-assignment-indirect.c.bc +++ b/test_cases_bc/basic_c_tests/struct-assignment-indirect.c.bc @@ -188,4 +188,4 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-assignment-nested.c.bc b/test_cases_bc/basic_c_tests/struct-assignment-nested.c.bc index 994e09df..02414c5e 100644 --- a/test_cases_bc/basic_c_tests/struct-assignment-nested.c.bc +++ b/test_cases_bc/basic_c_tests/struct-assignment-nested.c.bc @@ -200,4 +200,4 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-field-multi-dereference.c.bc b/test_cases_bc/basic_c_tests/struct-field-multi-dereference.c.bc index ab241ef0..d58ae06d 100644 --- a/test_cases_bc/basic_c_tests/struct-field-multi-dereference.c.bc +++ b/test_cases_bc/basic_c_tests/struct-field-multi-dereference.c.bc @@ -181,4 +181,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-idx-inbound.c.bc b/test_cases_bc/basic_c_tests/struct-idx-inbound.c.bc index 1f0aa5c5..a92c6600 100644 --- a/test_cases_bc/basic_c_tests/struct-idx-inbound.c.bc +++ b/test_cases_bc/basic_c_tests/struct-idx-inbound.c.bc @@ -44,4 +44,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-idx-overflow.c.bc b/test_cases_bc/basic_c_tests/struct-idx-overflow.c.bc index 41c8f464..f9c1fd8a 100644 --- a/test_cases_bc/basic_c_tests/struct-idx-overflow.c.bc +++ b/test_cases_bc/basic_c_tests/struct-idx-overflow.c.bc @@ -44,4 +44,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-incompab-typecast-nested.c.bc b/test_cases_bc/basic_c_tests/struct-incompab-typecast-nested.c.bc index b7dba022..e6aad456 100644 --- a/test_cases_bc/basic_c_tests/struct-incompab-typecast-nested.c.bc +++ b/test_cases_bc/basic_c_tests/struct-incompab-typecast-nested.c.bc @@ -208,4 +208,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-incompab-typecast.c.bc b/test_cases_bc/basic_c_tests/struct-incompab-typecast.c.bc index 218a49b3..d987285d 100644 --- a/test_cases_bc/basic_c_tests/struct-incompab-typecast.c.bc +++ b/test_cases_bc/basic_c_tests/struct-incompab-typecast.c.bc @@ -192,4 +192,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-instance-return.c.bc b/test_cases_bc/basic_c_tests/struct-instance-return.c.bc index 59b6e9c1..75ba5b56 100644 --- a/test_cases_bc/basic_c_tests/struct-instance-return.c.bc +++ b/test_cases_bc/basic_c_tests/struct-instance-return.c.bc @@ -193,4 +193,4 @@ attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-nested-1-layer.c.bc b/test_cases_bc/basic_c_tests/struct-nested-1-layer.c.bc index 79df45b9..64397501 100644 --- a/test_cases_bc/basic_c_tests/struct-nested-1-layer.c.bc +++ b/test_cases_bc/basic_c_tests/struct-nested-1-layer.c.bc @@ -195,4 +195,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-nested-2-layers.c.bc b/test_cases_bc/basic_c_tests/struct-nested-2-layers.c.bc index 665a29d7..4628ac99 100644 --- a/test_cases_bc/basic_c_tests/struct-nested-2-layers.c.bc +++ b/test_cases_bc/basic_c_tests/struct-nested-2-layers.c.bc @@ -216,4 +216,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-nested-array1.c.bc b/test_cases_bc/basic_c_tests/struct-nested-array1.c.bc index fa4ef380..c4590a74 100644 --- a/test_cases_bc/basic_c_tests/struct-nested-array1.c.bc +++ b/test_cases_bc/basic_c_tests/struct-nested-array1.c.bc @@ -191,4 +191,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-nested-array2.c.bc b/test_cases_bc/basic_c_tests/struct-nested-array2.c.bc index 789615f2..d566a630 100644 --- a/test_cases_bc/basic_c_tests/struct-nested-array2.c.bc +++ b/test_cases_bc/basic_c_tests/struct-nested-array2.c.bc @@ -201,4 +201,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-nested-array3.c.bc b/test_cases_bc/basic_c_tests/struct-nested-array3.c.bc index 0ebc552d..7ecbd7f7 100644 --- a/test_cases_bc/basic_c_tests/struct-nested-array3.c.bc +++ b/test_cases_bc/basic_c_tests/struct-nested-array3.c.bc @@ -204,4 +204,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-onefld.c.bc b/test_cases_bc/basic_c_tests/struct-onefld.c.bc index 4ca35bcc..92444fa1 100644 --- a/test_cases_bc/basic_c_tests/struct-onefld.c.bc +++ b/test_cases_bc/basic_c_tests/struct-onefld.c.bc @@ -190,4 +190,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-simple.c.bc b/test_cases_bc/basic_c_tests/struct-simple.c.bc index 06c7eb09..180b664c 100644 --- a/test_cases_bc/basic_c_tests/struct-simple.c.bc +++ b/test_cases_bc/basic_c_tests/struct-simple.c.bc @@ -174,4 +174,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/struct-twoflds.c.bc b/test_cases_bc/basic_c_tests/struct-twoflds.c.bc index 38c1a6ee..ff62b880 100644 --- a/test_cases_bc/basic_c_tests/struct-twoflds.c.bc +++ b/test_cases_bc/basic_c_tests/struct-twoflds.c.bc @@ -202,4 +202,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_c_tests/structcopy1.c.bc b/test_cases_bc/basic_c_tests/structcopy1.c.bc index e530c888..fa79a632 100644 --- a/test_cases_bc/basic_c_tests/structcopy1.c.bc +++ b/test_cases_bc/basic_c_tests/structcopy1.c.bc @@ -48,4 +48,4 @@ attributes #4 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/abstract.cpp.bc b/test_cases_bc/basic_cpp_tests/abstract.cpp.bc index 70a110b0..5d6800eb 100644 --- a/test_cases_bc/basic_cpp_tests/abstract.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/abstract.cpp.bc @@ -296,4 +296,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/array-1.cpp.bc b/test_cases_bc/basic_cpp_tests/array-1.cpp.bc index 06b3a1af..e4ebb9c8 100644 --- a/test_cases_bc/basic_cpp_tests/array-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/array-1.cpp.bc @@ -11,8 +11,6 @@ $_ZNSt5arrayIPK1ALm2EEixEm = comdat any $_ZNK1A1fEPi = comdat any -$_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -224,8 +222,8 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_elems = getelementptr inbounds %"struct.std::array", ptr %this1, i32 0, i32 0 %0 = load i64, ptr %__n.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m(ptr noundef nonnull align 8 dereferenceable(16) %_M_elems, i64 noundef %0) #7 - ret ptr %call + %arrayidx = getelementptr inbounds [2 x ptr], ptr %_M_elems, i64 0, i64 %0 + ret ptr %arrayidx } ; Function Attrs: mustprogress noinline optnone uwtable @@ -242,19 +240,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m(ptr noundef nonnull align 8 dereferenceable(16) %__t, i64 noundef %__n) #2 comdat align 2 { -entry: - %__t.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__t, ptr %__t.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__t.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %arrayidx = getelementptr inbounds [2 x ptr], ptr %0, i64 0, i64 %1 - ret ptr %arrayidx -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -272,4 +257,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/array-2.cpp.bc b/test_cases_bc/basic_cpp_tests/array-2.cpp.bc index 93ee80a0..13f21150 100644 --- a/test_cases_bc/basic_cpp_tests/array-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/array-2.cpp.bc @@ -13,14 +13,6 @@ $_ZNSt5arrayIPK1ALm2EE5frontEv = comdat any $_ZNK1A1fEPi = comdat any -$_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m = comdat any - -$_ZNSt5arrayIPK1ALm2EE5beginEv = comdat any - -$_ZNSt5arrayIPK1ALm2EE4dataEv = comdat any - -$_ZNSt14__array_traitsIPK1ALm2EE6_S_ptrERA2_KS2_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -232,8 +224,8 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_elems = getelementptr inbounds %"struct.std::array", ptr %this1, i32 0, i32 0 %0 = load i64, ptr %__n.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m(ptr noundef nonnull align 8 dereferenceable(16) %_M_elems, i64 noundef %0) #7 - ret ptr %call + %arrayidx = getelementptr inbounds [2 x ptr], ptr %_M_elems, i64 0, i64 %0 + ret ptr %arrayidx } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -242,8 +234,9 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt5arrayIPK1ALm2EE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #7 - ret ptr %call + %_M_elems = getelementptr inbounds %"struct.std::array", ptr %this1, i32 0, i32 0 + %arrayidx = getelementptr inbounds [2 x ptr], ptr %_M_elems, i64 0, i64 0 + ret ptr %arrayidx } ; Function Attrs: mustprogress noinline optnone uwtable @@ -260,50 +253,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m(ptr noundef nonnull align 8 dereferenceable(16) %__t, i64 noundef %__n) #2 comdat align 2 { -entry: - %__t.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__t, ptr %__t.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__t.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %arrayidx = getelementptr inbounds [2 x ptr], ptr %0, i64 0, i64 %1 - ret ptr %arrayidx -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt5arrayIPK1ALm2EE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt5arrayIPK1ALm2EE4dataEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #7 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt5arrayIPK1ALm2EE4dataEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_elems = getelementptr inbounds %"struct.std::array", ptr %this1, i32 0, i32 0 - %call = call noundef ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_ptrERA2_KS2_(ptr noundef nonnull align 8 dereferenceable(16) %_M_elems) #7 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_ptrERA2_KS2_(ptr noundef nonnull align 8 dereferenceable(16) %__t) #2 comdat align 2 { -entry: - %__t.addr = alloca ptr, align 8 - store ptr %__t, ptr %__t.addr, align 8 - %0 = load ptr, ptr %__t.addr, align 8 - %arraydecay = getelementptr inbounds [2 x ptr], ptr %0, i64 0, i64 0 - ret ptr %arraydecay -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -321,4 +270,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/array-3.cpp.bc b/test_cases_bc/basic_cpp_tests/array-3.cpp.bc index fa75857e..f5d7d7cf 100644 --- a/test_cases_bc/basic_cpp_tests/array-3.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/array-3.cpp.bc @@ -13,14 +13,6 @@ $_ZNSt5arrayIPK1ALm2EE4backEv = comdat any $_ZNK1A1fEPi = comdat any -$_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m = comdat any - -$_ZNSt5arrayIPK1ALm2EE3endEv = comdat any - -$_ZNSt5arrayIPK1ALm2EE4dataEv = comdat any - -$_ZNSt14__array_traitsIPK1ALm2EE6_S_ptrERA2_KS2_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -232,8 +224,8 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_elems = getelementptr inbounds %"struct.std::array", ptr %this1, i32 0, i32 0 %0 = load i64, ptr %__n.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m(ptr noundef nonnull align 8 dereferenceable(16) %_M_elems, i64 noundef %0) #7 - ret ptr %call + %arrayidx = getelementptr inbounds [2 x ptr], ptr %_M_elems, i64 0, i64 %0 + ret ptr %arrayidx } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -242,9 +234,9 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt5arrayIPK1ALm2EE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #7 - %add.ptr = getelementptr inbounds ptr, ptr %call, i64 -1 - ret ptr %add.ptr + %_M_elems = getelementptr inbounds %"struct.std::array", ptr %this1, i32 0, i32 0 + %arrayidx = getelementptr inbounds [2 x ptr], ptr %_M_elems, i64 0, i64 1 + ret ptr %arrayidx } ; Function Attrs: mustprogress noinline optnone uwtable @@ -261,51 +253,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_refERA2_KS2_m(ptr noundef nonnull align 8 dereferenceable(16) %__t, i64 noundef %__n) #2 comdat align 2 { -entry: - %__t.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__t, ptr %__t.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__t.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %arrayidx = getelementptr inbounds [2 x ptr], ptr %0, i64 0, i64 %1 - ret ptr %arrayidx -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt5arrayIPK1ALm2EE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt5arrayIPK1ALm2EE4dataEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #7 - %add.ptr = getelementptr inbounds ptr, ptr %call, i64 2 - ret ptr %add.ptr -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt5arrayIPK1ALm2EE4dataEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_elems = getelementptr inbounds %"struct.std::array", ptr %this1, i32 0, i32 0 - %call = call noundef ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_ptrERA2_KS2_(ptr noundef nonnull align 8 dereferenceable(16) %_M_elems) #7 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14__array_traitsIPK1ALm2EE6_S_ptrERA2_KS2_(ptr noundef nonnull align 8 dereferenceable(16) %__t) #2 comdat align 2 { -entry: - %__t.addr = alloca ptr, align 8 - store ptr %__t, ptr %__t.addr, align 8 - %0 = load ptr, ptr %__t.addr, align 8 - %arraydecay = getelementptr inbounds [2 x ptr], ptr %0, i64 0, i64 0 - ret ptr %arraydecay -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -323,4 +270,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/constructor-1.cpp.bc b/test_cases_bc/basic_cpp_tests/constructor-1.cpp.bc index 6653d566..919775dc 100644 --- a/test_cases_bc/basic_cpp_tests/constructor-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/constructor-1.cpp.bc @@ -264,4 +264,4 @@ attributes #4 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/constructor-2.cpp.bc b/test_cases_bc/basic_cpp_tests/constructor-2.cpp.bc index da1e6725..c50f5c51 100644 --- a/test_cases_bc/basic_cpp_tests/constructor-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/constructor-2.cpp.bc @@ -278,4 +278,4 @@ attributes #4 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/deque-1.cpp.bc b/test_cases_bc/basic_cpp_tests/deque-1.cpp.bc index 9c6df6fe..e4964632 100644 --- a/test_cases_bc/basic_cpp_tests/deque-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/deque-1.cpp.bc @@ -29,12 +29,8 @@ $_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_initialize_mapEm = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev = comdat any -$_ZNSaIPK1AEC2Ev = comdat any - $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev = comdat any $_ZSt16__deque_buf_sizem = comdat any @@ -53,47 +49,27 @@ $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_ = comdat any $_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m = comdat any - -$_ZNSaIPPK1AED2Ev = comdat any - $_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIPPK1AEC2IS1_EERKSaIT_E = comdat any +$_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev = comdat any +$_ZNSt15__new_allocatorIPPK1AED2Ev = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_allocate_nodeEv = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIPK1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m = comdat any +$_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m = comdat any -$_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m = comdat any +$_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m = comdat any $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv = comdat any -$_ZNSaIPK1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev = comdat any +$_ZNSt15__new_allocatorIPK1AED2Ev = comdat any $_ZNK1A1fEPi = comdat any @@ -111,14 +87,10 @@ $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_ = comdat any - $_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE4backEv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_ = comdat any - $_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv = comdat any $_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv = comdat any @@ -129,12 +101,8 @@ $_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv = comdat any - $_ZNSt5dequeIPK1ASaIS2_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPPPK1AS4_ET0_T_S6_S5_ = comdat any @@ -153,7 +121,9 @@ $_ZSt12__niter_baseIPPPK1AET_S5_ = comdat any $_ZSt14__copy_move_a2ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any @@ -161,7 +131,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_ = comdat any $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv = comdat any @@ -335,13 +305,13 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5dequeIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #11 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #12 store ptr %a, ptr %ref.tmp, align 8 invoke void @_ZNSt5dequeIPK1ASaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(80) %adeque, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 %0 = load ptr, ptr %call, align 8 store ptr %0, ptr %aptr, align 8 %1 = load ptr, ptr %aptr, align 8 @@ -354,7 +324,7 @@ invoke.cont: ; preds = %entry invoke.cont1: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -365,7 +335,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -418,8 +388,8 @@ entry: %ref.tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #12 ret ptr %call } @@ -431,21 +401,21 @@ entry: %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 invoke void @_ZNSt5dequeIPK1ASaIS2_EE15_M_destroy_dataESt15_Deque_iteratorIS2_RS2_PS2_ES8_RKS3_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #12 + call void @__clang_call_terminate(ptr %1) #13 unreachable } @@ -458,7 +428,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 invoke void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -472,7 +442,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -486,11 +456,16 @@ eh.resume: ; preds = %lpad ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void } @@ -564,21 +539,21 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #12 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #12 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 %_M_impl21 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size22 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl21, i32 0, i32 1 store i64 0, ptr %_M_map_size22, align 8 - invoke void @__cxa_rethrow() #13 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad23 lpad23: ; preds = %catch @@ -598,12 +573,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #12 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #12 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -637,7 +612,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #12 + call void @__clang_call_terminate(ptr %26) #13 unreachable unreachable: ; preds = %catch @@ -647,20 +622,13 @@ unreachable: ; preds = %catch ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void } @@ -675,18 +643,9 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -759,9 +718,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i4 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -770,23 +733,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i3 = invoke noundef ptr @_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 + ret ptr %call.i3 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i4, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i5) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -846,11 +820,11 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #12 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #11 - invoke void @__cxa_rethrow() #13 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #12 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad2 for.end: ; preds = %for.cond @@ -883,7 +857,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #12 + call void @__clang_call_terminate(ptr %15) #13 unreachable unreachable: ; preds = %catch @@ -892,9 +866,13 @@ unreachable: ; preds = %catch declare ptr @__cxa_begin_catch(ptr) -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -903,21 +881,29 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #13 unreachable } @@ -927,8 +913,8 @@ declare void @__cxa_end_catch() ; Function Attrs: noinline noreturn nounwind define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #11 - call void @_ZSt9terminatev() #12 + %2 = call ptr @__cxa_begin_catch(ptr %0) #12 + call void @_ZSt9terminatev() #13 unreachable } @@ -951,46 +937,30 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #12 %add.ptr = getelementptr inbounds ptr, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSaIPPK1AEC2IS1_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #11 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -1004,30 +974,10 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPPK1AEC2IS1_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1036,30 +986,34 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #7 + ; Function Attrs: noreturn declare void @_ZSt17__throw_bad_allocv() #7 @@ -1067,7 +1021,7 @@ declare void @_ZSt17__throw_bad_allocv() #7 declare noundef nonnull ptr @_Znwm(i64 noundef) #8 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1078,13 +1032,19 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1111,7 +1071,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #12 br label %for.inc for.inc: ; preds = %for.body @@ -1125,21 +1085,9 @@ for.end: ; preds = %for.cond } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1148,33 +1096,37 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1183,82 +1135,56 @@ entry: %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__p.addr, align 8 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - invoke void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #12 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #13 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } ; Function Attrs: nobuiltin nounwind declare void @_ZdlPv(ptr noundef) #9 -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } @@ -1270,17 +1196,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1323,7 +1239,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret void } @@ -1337,7 +1253,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -1373,19 +1289,19 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #12 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #12 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #12 ret void } @@ -1423,6 +1339,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1447,56 +1369,59 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + %9 = load ptr, ptr %8, align 8 + store ptr %9, ptr %7, align 8 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %4, i32 1 + %10 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %11 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %11) br label %if.end if.end: ; preds = %if.else, %if.then - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + %call = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #13 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #17 unreachable if.end: ; preds = %entry @@ -1514,23 +1439,36 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + %8 = load ptr, ptr %7, align 8 + store ptr %8, ptr %6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #11 + %9 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %9, i64 1 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #12 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %10 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 + store ptr %10, ptr %_M_cur17, align 8 ret void } @@ -1541,29 +1479,12 @@ entry: %__tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #11 - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #12 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #12 ret ptr %call2 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { entry: @@ -1574,7 +1495,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret i64 %call } @@ -1584,13 +1505,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #12 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #7 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1636,7 +1557,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #12 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1647,69 +1568,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #13 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1740,16 +1664,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -1911,7 +1825,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #12 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -1926,14 +1840,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #12 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #12 ret void } @@ -1983,11 +1897,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPPK1AET_RKS5_S5_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2050,12 +1964,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2072,8 +1986,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2081,17 +1995,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #10 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #11 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2103,11 +2045,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPPK1AET_RKS5_S5_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2141,12 +2083,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2163,8 +2105,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2175,14 +2117,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2202,7 +2159,7 @@ if.then: ; preds = %entry %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 3 %2 = load ptr, ptr %_M_node, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #12 %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 %3 = load ptr, ptr %_M_last, align 8 %_M_cur2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 0 @@ -2238,11 +2195,14 @@ attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping- attributes #7 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #11 = { nounwind } -attributes #12 = { noreturn nounwind } -attributes #13 = { noreturn } -attributes #14 = { allocsize(0) } +attributes #10 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #12 = { nounwind } +attributes #13 = { noreturn nounwind } +attributes #14 = { noreturn } +attributes #15 = { builtin allocsize(0) } +attributes #16 = { builtin nounwind } +attributes #17 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2252,7 +2212,7 @@ attributes #14 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/deque-2.cpp.bc b/test_cases_bc/basic_cpp_tests/deque-2.cpp.bc index 3cb0ecaa..daff61dc 100644 --- a/test_cases_bc/basic_cpp_tests/deque-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/deque-2.cpp.bc @@ -31,12 +31,8 @@ $_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_initialize_mapEm = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev = comdat any -$_ZNSaIPK1AEC2Ev = comdat any - $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev = comdat any $_ZSt16__deque_buf_sizem = comdat any @@ -55,47 +51,27 @@ $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_ = comdat any $_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m = comdat any - -$_ZNSaIPPK1AED2Ev = comdat any - $_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIPPK1AEC2IS1_EERKSaIT_E = comdat any +$_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev = comdat any +$_ZNSt15__new_allocatorIPPK1AED2Ev = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_allocate_nodeEv = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIPK1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m = comdat any +$_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m = comdat any -$_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m = comdat any +$_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m = comdat any $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv = comdat any -$_ZNSaIPK1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev = comdat any +$_ZNSt15__new_allocatorIPK1AED2Ev = comdat any $_ZNK1A1fEPi = comdat any @@ -111,14 +87,10 @@ $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_ = comdat any - $_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE4backEv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_ = comdat any - $_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv = comdat any $_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv = comdat any @@ -129,12 +101,8 @@ $_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv = comdat any - $_ZNSt5dequeIPK1ASaIS2_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPPPK1AS4_ET0_T_S6_S5_ = comdat any @@ -153,7 +121,9 @@ $_ZSt12__niter_baseIPPPK1AET_S5_ = comdat any $_ZSt14__copy_move_a2ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any @@ -161,7 +131,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_ = comdat any $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv = comdat any @@ -334,14 +304,14 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5dequeIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #11 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #12 store ptr %a, ptr %ref.tmp, align 8 invoke void @_ZNSt5dequeIPK1ASaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(80) %adeque, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %it, ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %it) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %it, ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %it) #12 %0 = load ptr, ptr %call, align 8 store ptr %0, ptr %aptr, align 8 %1 = load ptr, ptr %aptr, align 8 @@ -354,7 +324,7 @@ invoke.cont: ; preds = %entry invoke.cont1: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -365,7 +335,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -421,7 +391,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret void } @@ -444,21 +414,21 @@ entry: %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 invoke void @_ZNSt5dequeIPK1ASaIS2_EE15_M_destroy_dataESt15_Deque_iteratorIS2_RS2_PS2_ES8_RKS3_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #12 + call void @__clang_call_terminate(ptr %1) #13 unreachable } @@ -471,7 +441,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 invoke void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -485,7 +455,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -499,11 +469,16 @@ eh.resume: ; preds = %lpad ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void } @@ -577,21 +552,21 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #12 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #12 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 %_M_impl21 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size22 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl21, i32 0, i32 1 store i64 0, ptr %_M_map_size22, align 8 - invoke void @__cxa_rethrow() #13 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad23 lpad23: ; preds = %catch @@ -611,12 +586,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #12 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #12 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -650,7 +625,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #12 + call void @__clang_call_terminate(ptr %26) #13 unreachable unreachable: ; preds = %catch @@ -660,20 +635,13 @@ unreachable: ; preds = %catch ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void } @@ -688,18 +656,9 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -772,9 +731,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i4 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -783,23 +746,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i3 = invoke noundef ptr @_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 + ret ptr %call.i3 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i4, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i5) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -859,11 +833,11 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #12 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #11 - invoke void @__cxa_rethrow() #13 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #12 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad2 for.end: ; preds = %for.cond @@ -896,7 +870,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #12 + call void @__clang_call_terminate(ptr %15) #13 unreachable unreachable: ; preds = %catch @@ -905,9 +879,13 @@ unreachable: ; preds = %catch declare ptr @__cxa_begin_catch(ptr) -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -916,21 +894,29 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #13 unreachable } @@ -940,8 +926,8 @@ declare void @__cxa_end_catch() ; Function Attrs: noinline noreturn nounwind define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #11 - call void @_ZSt9terminatev() #12 + %2 = call ptr @__cxa_begin_catch(ptr %0) #12 + call void @_ZSt9terminatev() #13 unreachable } @@ -964,46 +950,30 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #12 %add.ptr = getelementptr inbounds ptr, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSaIPPK1AEC2IS1_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #11 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -1017,30 +987,10 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPPK1AEC2IS1_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1049,30 +999,34 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #7 + ; Function Attrs: noreturn declare void @_ZSt17__throw_bad_allocv() #7 @@ -1080,7 +1034,7 @@ declare void @_ZSt17__throw_bad_allocv() #7 declare noundef nonnull ptr @_Znwm(i64 noundef) #8 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1091,13 +1045,19 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1124,7 +1084,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #12 br label %for.inc for.inc: ; preds = %for.body @@ -1138,21 +1098,9 @@ for.end: ; preds = %for.cond } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1161,33 +1109,37 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1196,82 +1148,56 @@ entry: %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__p.addr, align 8 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - invoke void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #12 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #13 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } ; Function Attrs: nobuiltin nounwind declare void @_ZdlPv(ptr noundef) #9 -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } @@ -1283,17 +1209,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1336,7 +1252,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -1372,19 +1288,19 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #12 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #12 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #12 ret void } @@ -1422,6 +1338,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1446,56 +1368,59 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + %9 = load ptr, ptr %8, align 8 + store ptr %9, ptr %7, align 8 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %4, i32 1 + %10 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %11 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %11) br label %if.end if.end: ; preds = %if.else, %if.then - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + %call = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #13 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #17 unreachable if.end: ; preds = %entry @@ -1513,23 +1438,36 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + %8 = load ptr, ptr %7, align 8 + store ptr %8, ptr %6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #11 + %9 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %9, i64 1 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #12 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %10 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 + store ptr %10, ptr %_M_cur17, align 8 ret void } @@ -1540,29 +1478,12 @@ entry: %__tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #11 - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #11 + call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #12 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #12 ret ptr %call2 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { entry: @@ -1573,7 +1494,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret i64 %call } @@ -1583,13 +1504,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #12 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #7 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1635,7 +1556,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #12 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1646,69 +1567,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #13 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1739,16 +1663,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -1910,7 +1824,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #11 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #12 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -1925,14 +1839,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #12 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #12 ret void } @@ -1982,11 +1896,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPPK1AET_RKS5_S5_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2049,12 +1963,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2071,8 +1985,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2080,17 +1994,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #10 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #11 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2102,11 +2044,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPPK1AET_RKS5_S5_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2140,12 +2082,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2162,8 +2104,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2174,14 +2116,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2201,7 +2158,7 @@ if.then: ; preds = %entry %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 3 %2 = load ptr, ptr %_M_node, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #11 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #12 %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 %3 = load ptr, ptr %_M_last, align 8 %_M_cur2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 0 @@ -2226,11 +2183,14 @@ attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping- attributes #7 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #11 = { nounwind } -attributes #12 = { noreturn nounwind } -attributes #13 = { noreturn } -attributes #14 = { allocsize(0) } +attributes #10 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #12 = { nounwind } +attributes #13 = { noreturn nounwind } +attributes #14 = { noreturn } +attributes #15 = { builtin allocsize(0) } +attributes #16 = { builtin nounwind } +attributes #17 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2240,7 +2200,7 @@ attributes #14 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/deque-3.cpp.bc b/test_cases_bc/basic_cpp_tests/deque-3.cpp.bc index 56547ba8..4fd56d9d 100644 --- a/test_cases_bc/basic_cpp_tests/deque-3.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/deque-3.cpp.bc @@ -29,12 +29,8 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev = comdat any -$_ZNSaI1AEC2Ev = comdat any - $_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev = comdat any $_ZSt16__deque_buf_sizem = comdat any @@ -53,47 +49,27 @@ $_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_ = comdat any $_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m = comdat any - -$_ZNSaIP1AED2Ev = comdat any - $_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIP1AEC2IS_EERKSaIT_E = comdat any +$_ZNSt15__new_allocatorIP1AE8allocateEmPKv = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AED2Ev = comdat any +$_ZNSt15__new_allocatorIP1AED2Ev = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorI1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m = comdat any +$_ZNSt15__new_allocatorI1AE10deallocateEPS0_m = comdat any -$_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m = comdat any +$_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv = comdat any -$_ZNSaI1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AED2Ev = comdat any +$_ZNSt15__new_allocatorI1AED2Ev = comdat any $_ZNK1A1fEPi = comdat any @@ -109,12 +85,8 @@ $_ZNSt11_Deque_baseI1ASaIS0_EED2Ev = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_ = comdat any - $_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_ = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_ = comdat any - $_ZN1AC2ERKS_ = comdat any $_ZNKSt5dequeI1ASaIS0_EE4sizeEv = comdat any @@ -127,12 +99,8 @@ $_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_ = comdat any $_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv = comdat any - $_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPP1AS2_ET0_T_S4_S3_ = comdat any @@ -151,7 +119,9 @@ $_ZSt12__niter_baseIPP1AET_S3_ = comdat any $_ZSt14__copy_move_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any @@ -159,7 +129,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_ = comdat any $_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv = comdat any @@ -330,12 +300,12 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5dequeI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #11 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #12 invoke void @_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %adeque, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeI1ASaIS0_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeI1ASaIS0_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 store ptr %call, ptr %aptr, align 8 %0 = load ptr, ptr %aptr, align 8 %1 = load ptr, ptr %ptr, align 8 @@ -347,7 +317,7 @@ invoke.cont: ; preds = %entry invoke.cont1: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -358,7 +328,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -392,6 +362,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -416,18 +392,30 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #12 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %4, i32 1 + %9 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %9, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %10 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %10) br label %if.end if.end: ; preds = %if.else, %if.then @@ -443,8 +431,8 @@ entry: %ref.tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 + call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #12 ret ptr %call } @@ -456,21 +444,21 @@ entry: %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 invoke void @_ZNSt5dequeI1ASaIS0_EE15_M_destroy_dataESt15_Deque_iteratorIS0_RS0_PS0_ES6_RKS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #12 + call void @__clang_call_terminate(ptr %1) #13 unreachable } @@ -483,7 +471,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 invoke void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -497,7 +485,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -511,11 +499,16 @@ eh.resume: ; preds = %lpad ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void } @@ -589,21 +582,21 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #12 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #12 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 %_M_impl21 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size22 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl21, i32 0, i32 1 store i64 0, ptr %_M_map_size22, align 8 - invoke void @__cxa_rethrow() #13 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad23 lpad23: ; preds = %catch @@ -623,12 +616,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #12 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #12 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -662,7 +655,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #12 + call void @__clang_call_terminate(ptr %26) #13 unreachable unreachable: ; preds = %catch @@ -672,20 +665,13 @@ unreachable: ; preds = %catch ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void } @@ -700,18 +686,9 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -784,9 +761,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i4 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -795,23 +776,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i3 = invoke noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 + ret ptr %call.i3 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i4, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i5) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -871,11 +863,11 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #12 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #11 - invoke void @__cxa_rethrow() #13 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #12 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad2 for.end: ; preds = %for.cond @@ -908,7 +900,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #12 + call void @__clang_call_terminate(ptr %15) #13 unreachable unreachable: ; preds = %catch @@ -917,9 +909,13 @@ unreachable: ; preds = %catch declare ptr @__cxa_begin_catch(ptr) -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -928,21 +924,29 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #13 unreachable } @@ -952,8 +956,8 @@ declare void @__cxa_end_catch() ; Function Attrs: noinline noreturn nounwind define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #11 - call void @_ZSt9terminatev() #12 + %2 = call ptr @__cxa_begin_catch(ptr %0) #12 + call void @_ZSt9terminatev() #13 unreachable } @@ -976,46 +980,30 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #12 %add.ptr = getelementptr inbounds %class.A, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #11 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -1029,30 +1017,10 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1061,30 +1029,34 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #7 + ; Function Attrs: noreturn declare void @_ZSt17__throw_bad_allocv() #7 @@ -1092,7 +1064,7 @@ declare void @_ZSt17__throw_bad_allocv() #7 declare noundef nonnull ptr @_Znwm(i64 noundef) #8 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1103,13 +1075,19 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1136,7 +1114,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #12 br label %for.inc for.inc: ; preds = %for.body @@ -1150,21 +1128,9 @@ for.end: ; preds = %for.cond } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1173,33 +1139,37 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1208,82 +1178,56 @@ entry: %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__p.addr, align 8 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - invoke void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #12 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #13 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } ; Function Attrs: nobuiltin nounwind declare void @_ZdlPv(ptr noundef) #9 -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } @@ -1295,17 +1239,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1348,7 +1282,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret void } @@ -1362,7 +1296,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -1398,19 +1332,19 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #12 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #12 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #12 ret void } @@ -1445,37 +1379,27 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #13 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #17 unreachable if.end: ; preds = %entry @@ -1493,39 +1417,35 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #12 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #11 + %8 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %8, i64 1 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #12 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %9 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #11 + store ptr %9, ptr %_M_cur17, align 8 ret void } @@ -1551,7 +1471,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret i64 %call } @@ -1561,13 +1481,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #12 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #7 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1613,7 +1533,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #12 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1624,69 +1544,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #13 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1717,16 +1640,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -1888,7 +1801,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #12 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -1903,14 +1816,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #12 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #12 ret void } @@ -1960,11 +1873,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2027,12 +1940,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2049,8 +1962,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2058,17 +1971,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #10 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #11 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2080,11 +2021,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2118,12 +2059,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2140,8 +2081,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2152,14 +2093,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2183,11 +2139,14 @@ attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping- attributes #7 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #11 = { nounwind } -attributes #12 = { noreturn nounwind } -attributes #13 = { noreturn } -attributes #14 = { allocsize(0) } +attributes #10 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #12 = { nounwind } +attributes #13 = { noreturn nounwind } +attributes #14 = { noreturn } +attributes #15 = { builtin allocsize(0) } +attributes #16 = { builtin nounwind } +attributes #17 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2197,7 +2156,7 @@ attributes #14 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/deque-4.cpp.bc b/test_cases_bc/basic_cpp_tests/deque-4.cpp.bc index 177da3d6..58af63e1 100644 --- a/test_cases_bc/basic_cpp_tests/deque-4.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/deque-4.cpp.bc @@ -31,12 +31,8 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev = comdat any -$_ZNSaI1AEC2Ev = comdat any - $_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev = comdat any $_ZSt16__deque_buf_sizem = comdat any @@ -55,47 +51,27 @@ $_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_ = comdat any $_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m = comdat any - -$_ZNSaIP1AED2Ev = comdat any - $_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIP1AEC2IS_EERKSaIT_E = comdat any +$_ZNSt15__new_allocatorIP1AE8allocateEmPKv = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AED2Ev = comdat any +$_ZNSt15__new_allocatorIP1AED2Ev = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorI1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m = comdat any +$_ZNSt15__new_allocatorI1AE10deallocateEPS0_m = comdat any -$_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m = comdat any +$_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv = comdat any -$_ZNSaI1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AED2Ev = comdat any +$_ZNSt15__new_allocatorI1AED2Ev = comdat any $_ZNK1A1fEPi = comdat any @@ -109,12 +85,8 @@ $_ZNSt11_Deque_baseI1ASaIS0_EED2Ev = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_ = comdat any - $_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_ = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_ = comdat any - $_ZN1AC2ERKS_ = comdat any $_ZNKSt5dequeI1ASaIS0_EE4sizeEv = comdat any @@ -127,12 +99,8 @@ $_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_ = comdat any $_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv = comdat any - $_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPP1AS2_ET0_T_S4_S3_ = comdat any @@ -151,7 +119,9 @@ $_ZSt12__niter_baseIPP1AET_S3_ = comdat any $_ZSt14__copy_move_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any @@ -159,7 +129,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_ = comdat any $_ZTV1A = comdat any @@ -329,13 +299,13 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5dequeI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #11 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #12 invoke void @_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %adeque, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %it, ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %it) #11 + call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %it, ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %it) #12 store ptr %call, ptr %aptr, align 8 %0 = load ptr, ptr %aptr, align 8 %1 = load ptr, ptr %ptr, align 8 @@ -347,7 +317,7 @@ invoke.cont: ; preds = %entry invoke.cont1: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -358,7 +328,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #11 + call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %adeque) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -392,6 +362,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -416,18 +392,30 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #12 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %4, i32 1 + %9 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %9, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %10 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %10) br label %if.end if.end: ; preds = %if.else, %if.then @@ -446,7 +434,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret void } @@ -469,21 +457,21 @@ entry: %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 invoke void @_ZNSt5dequeI1ASaIS0_EE15_M_destroy_dataESt15_Deque_iteratorIS0_RS0_PS0_ES6_RKS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #12 + call void @__clang_call_terminate(ptr %1) #13 unreachable } @@ -496,7 +484,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 invoke void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -510,7 +498,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -524,11 +512,16 @@ eh.resume: ; preds = %lpad ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 ret void } @@ -602,21 +595,21 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #12 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #12 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 %_M_impl21 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size22 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl21, i32 0, i32 1 store i64 0, ptr %_M_map_size22, align 8 - invoke void @__cxa_rethrow() #13 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad23 lpad23: ; preds = %catch @@ -636,12 +629,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #12 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #12 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -675,7 +668,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #12 + call void @__clang_call_terminate(ptr %26) #13 unreachable unreachable: ; preds = %catch @@ -685,20 +678,13 @@ unreachable: ; preds = %catch ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void } @@ -713,18 +699,9 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -797,9 +774,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i4 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -808,23 +789,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i3 = invoke noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 + ret ptr %call.i3 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i4, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i5) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -884,11 +876,11 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #11 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #12 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #11 - invoke void @__cxa_rethrow() #13 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #12 + invoke void @__cxa_rethrow() #14 to label %unreachable unwind label %lpad2 for.end: ; preds = %for.cond @@ -921,7 +913,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #12 + call void @__clang_call_terminate(ptr %15) #13 unreachable unreachable: ; preds = %catch @@ -930,9 +922,13 @@ unreachable: ; preds = %catch declare ptr @__cxa_begin_catch(ptr) -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -941,21 +937,29 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #11 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #13 unreachable } @@ -965,8 +969,8 @@ declare void @__cxa_end_catch() ; Function Attrs: noinline noreturn nounwind define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #11 - call void @_ZSt9terminatev() #12 + %2 = call ptr @__cxa_begin_catch(ptr %0) #12 + call void @_ZSt9terminatev() #13 unreachable } @@ -989,46 +993,30 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #12 %add.ptr = getelementptr inbounds %class.A, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - call void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #11 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -1042,30 +1030,10 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1074,30 +1042,34 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #7 + ; Function Attrs: noreturn declare void @_ZSt17__throw_bad_allocv() #7 @@ -1105,7 +1077,7 @@ declare void @_ZSt17__throw_bad_allocv() #7 declare noundef nonnull ptr @_Znwm(i64 noundef) #8 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1116,13 +1088,19 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1149,7 +1127,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #12 br label %for.inc for.inc: ; preds = %for.body @@ -1163,21 +1141,9 @@ for.end: ; preds = %for.cond } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1186,33 +1152,37 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1221,82 +1191,56 @@ entry: %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__p.addr, align 8 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - invoke void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #12 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #13 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } ; Function Attrs: nobuiltin nounwind declare void @_ZdlPv(ptr noundef) #9 -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #11 + call void @_ZdlPv(ptr noundef %0) #16 ret void } @@ -1308,17 +1252,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1361,7 +1295,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #12 ret void } @@ -1397,19 +1331,19 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #12 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #12 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #12 ret void } @@ -1444,37 +1378,27 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 + %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #13 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #17 unreachable if.end: ; preds = %entry @@ -1492,39 +1416,35 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #11 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #12 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #11 + %8 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %8, i64 1 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #12 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %9 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #11 + store ptr %9, ptr %_M_cur17, align 8 ret void } @@ -1550,7 +1470,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #11 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #12 ret i64 %call } @@ -1560,13 +1480,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #11 - %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #11 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #12 + %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #12 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #7 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1612,7 +1532,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #11 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #12 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1623,69 +1543,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #13 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1716,16 +1639,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #11 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -1887,7 +1800,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #11 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #12 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -1902,14 +1815,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #12 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #11 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #12 ret void } @@ -1959,11 +1872,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2026,12 +1939,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2048,8 +1961,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2057,17 +1970,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #10 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #11 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2079,11 +2020,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #11 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #12 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #11 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #12 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #11 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #12 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2117,12 +2058,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2139,8 +2080,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2151,14 +2092,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -2171,11 +2127,14 @@ attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping- attributes #7 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #11 = { nounwind } -attributes #12 = { noreturn nounwind } -attributes #13 = { noreturn } -attributes #14 = { allocsize(0) } +attributes #10 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #12 = { nounwind } +attributes #13 = { noreturn nounwind } +attributes #14 = { noreturn } +attributes #15 = { builtin allocsize(0) } +attributes #16 = { builtin nounwind } +attributes #17 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2185,7 +2144,7 @@ attributes #14 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/destructor-1.cpp.bc b/test_cases_bc/basic_cpp_tests/destructor-1.cpp.bc index 82c81635..0d3cf98f 100644 --- a/test_cases_bc/basic_cpp_tests/destructor-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/destructor-1.cpp.bc @@ -402,4 +402,4 @@ attributes #12 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/destructor-2.cpp.bc b/test_cases_bc/basic_cpp_tests/destructor-2.cpp.bc index bb6f1a6a..d2de84bf 100644 --- a/test_cases_bc/basic_cpp_tests/destructor-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/destructor-2.cpp.bc @@ -409,4 +409,4 @@ attributes #12 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/diamond-inheritance.cpp.bc b/test_cases_bc/basic_cpp_tests/diamond-inheritance.cpp.bc index 180e7c5e..352c90fb 100644 --- a/test_cases_bc/basic_cpp_tests/diamond-inheritance.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/diamond-inheritance.cpp.bc @@ -354,4 +354,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/dynamic_cast-1.cpp.bc b/test_cases_bc/basic_cpp_tests/dynamic_cast-1.cpp.bc index 16b1cf10..2074b82c 100644 --- a/test_cases_bc/basic_cpp_tests/dynamic_cast-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/dynamic_cast-1.cpp.bc @@ -290,4 +290,4 @@ attributes #8 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/forward_list-1.cpp.bc b/test_cases_bc/basic_cpp_tests/forward_list-1.cpp.bc index 1672c53c..1db3fc2f 100644 --- a/test_cases_bc/basic_cpp_tests/forward_list-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/forward_list-1.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/f target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::forward_list" = type { %"struct.std::_Fwd_list_base" } %"struct.std::_Fwd_list_base" = type { %"struct.std::_Fwd_list_base>::_Fwd_list_impl" } %"struct.std::_Fwd_list_base>::_Fwd_list_impl" = type { %"struct.std::_Fwd_list_node_base" } @@ -27,12 +28,8 @@ $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev = comdat any -$_ZNSaISt14_Fwd_list_nodeIPK1AEEC2Ev = comdat any - $_ZNSt19_Fwd_list_node_baseC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev = comdat any @@ -43,29 +40,21 @@ $__clang_call_terminate = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_ = comdat any - $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE7destroyIS4_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv = comdat any -$_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeIPK1AEE10pointer_toERS4_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE10deallocateERS5_PS4_m = comdat any +$_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeIPK1AES4_Lb0EE10pointer_toERS4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS5_m = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS4_m = comdat any -$_ZNSaISt14_Fwd_list_nodeIPK1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE15_M_insert_afterIJRKS2_EEEPSt19_Fwd_list_node_baseSt24_Fwd_list_const_iteratorIS2_EDpOT_ = comdat any @@ -77,17 +66,9 @@ $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_get_nodeEv = comdat any $_ZNSt14_Fwd_list_nodeIPK1AEC2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE9constructIS3_JRKS3_EEEvRS5_PT_DpOT0_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE8allocateERS5_m = comdat any - $_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE9constructIS4_JRKS4_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv = comdat any $_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base = comdat any @@ -100,15 +81,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_forward_list_1.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -243,24 +221,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -275,12 +237,12 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 - %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #13 + call void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 + %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #11 to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #10 store ptr %call, ptr %a, align 8 invoke void @_ZNSt12forward_listIPK1ASaIS2_EE10push_frontERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %alist, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont1 unwind label %lpad @@ -302,7 +264,7 @@ invoke.cont2: ; preds = %invoke.cont1 invoke.cont4: ; preds = %invoke.cont2 store i32 0, ptr %retval, align 4 - call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -313,7 +275,7 @@ lpad: ; preds = %invoke.cont2, %invo store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 br label %eh.resume eh.resume: ; preds = %lpad @@ -325,22 +287,22 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #8 +declare noundef nonnull ptr @_Znwm(i64 noundef) #5 declare i32 @__gxx_personality_v0(...) ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -358,7 +320,7 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__val, ptr %__val.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call ptr @_ZNKSt12forward_listIPK1ASaIS2_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call ptr @_ZNKSt12forward_listIPK1ASaIS2_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %agg.tmp, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %0 = load ptr, ptr %__val.addr, align 8 @@ -381,59 +343,54 @@ entry: %0 = load ptr, ptr %_M_next, align 8 store ptr %0, ptr %__front, align 8 %1 = load ptr, ptr %__front, align 8 - %call = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #5 + %call = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #10 ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %this1, i32 0, i32 0 call void @llvm.memset.p0.i64(ptr align 8 %_M_head, i8 0, i64 8, i1 false) - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #10 ret void } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -443,15 +400,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -467,7 +415,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -479,20 +427,24 @@ entry: invoke.cont: ; preds = %entry %_M_impl2 = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #10 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #14 + call void @__clang_call_terminate(ptr %1) #12 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_M_erase_afterEPSt19_Fwd_list_node_baseS6_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__pos, ptr noundef %__last) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__pos.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -521,28 +473,35 @@ while.body: ; preds = %while.cond %_M_next2 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %5, i32 0, i32 0 %6 = load ptr, ptr %_M_next2, align 8 store ptr %6, ptr %__curr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %7 = load ptr, ptr %__temp, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #5 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call3) #5 - %8 = load ptr, ptr %__temp, align 8 - %9 = load ptr, ptr %__temp, align 8 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %9) + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + %8 = load ptr, ptr %__a.addr.i, align 8 + %9 = load ptr, ptr %__p.addr.i, align 8 + store ptr %8, ptr %this.addr.i, align 8 + store ptr %9, ptr %__p.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %10 = load ptr, ptr %__p.addr.i5, align 8 + %11 = load ptr, ptr %__temp, align 8 + %12 = load ptr, ptr %__temp, align 8 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %12) br label %while.cond, !llvm.loop !6 while.end: ; preds = %while.cond - %10 = load ptr, ptr %__last.addr, align 8 - %11 = load ptr, ptr %__pos.addr, align 8 - %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %11, i32 0, i32 0 - store ptr %10, ptr %_M_next4, align 8 - %12 = load ptr, ptr %__last.addr, align 8 - ret ptr %12 + %13 = load ptr, ptr %__last.addr, align 8 + %14 = load ptr, ptr %__pos.addr, align 8 + %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %14, i32 0, i32 0 + store ptr %13, ptr %_M_next4, align 8 + %15 = load ptr, ptr %__last.addr, align 8 + ret ptr %15 } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #10 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #14 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #7 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #10 + call void @_ZSt9terminatev() #12 unreachable } @@ -551,25 +510,15 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } @@ -590,13 +539,16 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #10 ret ptr %call } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 @@ -604,23 +556,17 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeIPK1AEE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeIPK1AES4_Lb0EE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 store ptr %call, ptr %__ptr, align 8 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__ptr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %1, i64 noundef 1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) ret void } @@ -630,7 +576,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret ptr %call } @@ -645,7 +591,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeIPK1AEE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeIPK1AES4_Lb0EE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -653,52 +599,26 @@ entry: ret ptr %0 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #13 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #11 +declare void @_ZdlPv(ptr noundef) #8 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -750,7 +670,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %_M_impl, i32 0, i32 0 - call void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #5 + call void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 @@ -759,6 +679,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_M_create_nodeIJRKS2_EEEPSt14_Fwd_list_nodeIS2_EDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i4 = alloca ptr, align 8 + %__args.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__node = alloca ptr, align 8 @@ -768,71 +694,61 @@ entry: %call = call noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) store ptr %call, ptr %__node, align 8 %0 = load ptr, ptr %__node, align 8 - call void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__node, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #5 + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #10 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE9constructIS3_JRKS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %call3, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__node, align 8 - ret ptr %3 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i4, align 8 + store ptr %5, ptr %__args.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i4, align 8 + %7 = load ptr, ptr %__args.addr.i5, align 8 + %8 = load ptr, ptr %7, align 8 + store ptr %8, ptr %6, align 8 + %9 = load ptr, ptr %__node, align 8 + ret ptr %9 } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - store ptr %call2, ptr %__ptr, align 8 - %0 = load ptr, ptr %__ptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_(ptr noundef %0) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + store ptr %call.i, ptr %__ptr, align 8 + %2 = load ptr, ptr %__ptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_(ptr noundef %2) #10 ret ptr %call3 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE9constructIS3_JRKS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE9constructIS4_JRKS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_(ptr noundef %__ptr) #2 comdat { entry: @@ -843,8 +759,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -853,52 +770,39 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 576460752303423487 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #15 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 1152921504606846975 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 16 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #16 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 576460752303423487 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 16 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #11 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #12 +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE9constructIS4_JRKS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -911,30 +815,21 @@ entry: ret void } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_forward_list_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #10 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { builtin allocsize(0) } -attributes #14 = { noreturn nounwind } -attributes #15 = { noreturn } -attributes #16 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #7 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nounwind } +attributes #11 = { builtin allocsize(0) } +attributes #12 = { noreturn nounwind } +attributes #13 = { builtin nounwind } +attributes #14 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -944,6 +839,6 @@ attributes #16 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/forward_list-2.cpp.bc b/test_cases_bc/basic_cpp_tests/forward_list-2.cpp.bc index 4dcf28c2..8f125962 100644 --- a/test_cases_bc/basic_cpp_tests/forward_list-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/forward_list-2.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/f target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::forward_list" = type { %"struct.std::_Fwd_list_base" } %"struct.std::_Fwd_list_base" = type { %"struct.std::_Fwd_list_base>::_Fwd_list_impl" } %"struct.std::_Fwd_list_base>::_Fwd_list_impl" = type { %"struct.std::_Fwd_list_node_base" } @@ -30,12 +31,8 @@ $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev = comdat any -$_ZNSaISt14_Fwd_list_nodeIPK1AEEC2Ev = comdat any - $_ZNSt19_Fwd_list_node_baseC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev = comdat any @@ -46,29 +43,21 @@ $__clang_call_terminate = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_ = comdat any - $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE7destroyIS4_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv = comdat any -$_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeIPK1AEE10pointer_toERS4_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE10deallocateERS5_PS4_m = comdat any +$_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeIPK1AES4_Lb0EE10pointer_toERS4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS5_m = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS4_m = comdat any -$_ZNSaISt14_Fwd_list_nodeIPK1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev = comdat any $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE15_M_insert_afterIJRKS2_EEEPSt19_Fwd_list_node_baseSt24_Fwd_list_const_iteratorIS2_EDpOT_ = comdat any @@ -80,17 +69,9 @@ $_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_get_nodeEv = comdat any $_ZNSt14_Fwd_list_nodeIPK1AEC2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE9constructIS3_JRKS3_EEEvRS5_PT_DpOT0_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE8allocateERS5_m = comdat any - $_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE9constructIS4_JRKS4_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv = comdat any $_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base = comdat any @@ -105,15 +86,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_forward_list_2.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -248,24 +226,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -281,21 +243,21 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 - %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #13 + call void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 + %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #11 to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #10 store ptr %call, ptr %a, align 8 invoke void @_ZNSt12forward_listIPK1ASaIS2_EE10push_frontERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %alist, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont1 unwind label %lpad invoke.cont1: ; preds = %invoke.cont - %call2 = call ptr @_ZNSt12forward_listIPK1ASaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + %call2 = call ptr @_ZNSt12forward_listIPK1ASaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_iterator", ptr %it, i32 0, i32 0 store ptr %call2, ptr %coerce.dive, align 8 - %call3 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt18_Fwd_list_iteratorIPK1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + %call3 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt18_Fwd_list_iteratorIPK1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #10 %0 = load ptr, ptr %call3, align 8 store ptr %0, ptr %aptr, align 8 %1 = load ptr, ptr %aptr, align 8 @@ -308,7 +270,7 @@ invoke.cont1: ; preds = %invoke.cont invoke.cont4: ; preds = %invoke.cont1 store i32 0, ptr %retval, align 4 - call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -319,7 +281,7 @@ lpad: ; preds = %invoke.cont1, %invo store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 br label %eh.resume eh.resume: ; preds = %lpad @@ -331,22 +293,22 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #8 +declare noundef nonnull ptr @_Znwm(i64 noundef) #5 declare i32 @__gxx_personality_v0(...) ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -364,7 +326,7 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__val, ptr %__val.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call ptr @_ZNKSt12forward_listIPK1ASaIS2_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call ptr @_ZNKSt12forward_listIPK1ASaIS2_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %agg.tmp, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %0 = load ptr, ptr %__val.addr, align 8 @@ -385,7 +347,7 @@ entry: %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %_M_impl, i32 0, i32 0 %_M_next = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %_M_head, i32 0, i32 0 %0 = load ptr, ptr %_M_next, align 8 - call void @_ZNSt18_Fwd_list_iteratorIPK1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 + call void @_ZNSt18_Fwd_list_iteratorIPK1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_iterator", ptr %retval, i32 0, i32 0 %1 = load ptr, ptr %coerce.dive, align 8 ret ptr %1 @@ -399,59 +361,54 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Fwd_list_iterator", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %_M_node, align 8 - %call = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %this1, i32 0, i32 0 call void @llvm.memset.p0.i64(ptr align 8 %_M_head, i8 0, i64 8, i1 false) - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #10 ret void } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -461,15 +418,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -485,7 +433,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -497,20 +445,24 @@ entry: invoke.cont: ; preds = %entry %_M_impl2 = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #5 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #10 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #14 + call void @__clang_call_terminate(ptr %1) #12 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_M_erase_afterEPSt19_Fwd_list_node_baseS6_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__pos, ptr noundef %__last) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__pos.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -539,28 +491,35 @@ while.body: ; preds = %while.cond %_M_next2 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %5, i32 0, i32 0 %6 = load ptr, ptr %_M_next2, align 8 store ptr %6, ptr %__curr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %7 = load ptr, ptr %__temp, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #5 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call3) #5 - %8 = load ptr, ptr %__temp, align 8 - %9 = load ptr, ptr %__temp, align 8 - call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %9) + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + %8 = load ptr, ptr %__a.addr.i, align 8 + %9 = load ptr, ptr %__p.addr.i, align 8 + store ptr %8, ptr %this.addr.i, align 8 + store ptr %9, ptr %__p.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %10 = load ptr, ptr %__p.addr.i5, align 8 + %11 = load ptr, ptr %__temp, align 8 + %12 = load ptr, ptr %__temp, align 8 + call void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %12) br label %while.cond, !llvm.loop !6 while.end: ; preds = %while.cond - %10 = load ptr, ptr %__last.addr, align 8 - %11 = load ptr, ptr %__pos.addr, align 8 - %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %11, i32 0, i32 0 - store ptr %10, ptr %_M_next4, align 8 - %12 = load ptr, ptr %__last.addr, align 8 - ret ptr %12 + %13 = load ptr, ptr %__last.addr, align 8 + %14 = load ptr, ptr %__pos.addr, align 8 + %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %14, i32 0, i32 0 + store ptr %13, ptr %_M_next4, align 8 + %15 = load ptr, ptr %__last.addr, align 8 + ret ptr %15 } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #10 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #14 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #7 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #10 + call void @_ZSt9terminatev() #12 unreachable } @@ -569,25 +528,15 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } @@ -608,13 +557,16 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #10 ret ptr %call } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 @@ -622,23 +574,17 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeIPK1AEE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeIPK1AES4_Lb0EE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 store ptr %call, ptr %__ptr, align 8 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__ptr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %1, i64 noundef 1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) ret void } @@ -648,7 +594,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret ptr %call } @@ -663,7 +609,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeIPK1AEE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeIPK1AES4_Lb0EE10pointer_toERS4_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -671,52 +617,26 @@ entry: ret ptr %0 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #13 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #11 +declare void @_ZdlPv(ptr noundef) #8 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -768,7 +688,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %_M_impl, i32 0, i32 0 - call void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #5 + call void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 @@ -777,6 +697,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE14_M_create_nodeIJRKS2_EEEPSt14_Fwd_list_nodeIS2_EDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i4 = alloca ptr, align 8 + %__args.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__node = alloca ptr, align 8 @@ -786,71 +712,61 @@ entry: %call = call noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) store ptr %call, ptr %__node, align 8 %0 = load ptr, ptr %__node, align 8 - call void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__node, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #5 + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #10 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE9constructIS3_JRKS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %call3, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__node, align 8 - ret ptr %3 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i4, align 8 + store ptr %5, ptr %__args.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i4, align 8 + %7 = load ptr, ptr %__args.addr.i5, align 8 + %8 = load ptr, ptr %7, align 8 + store ptr %8, ptr %6, align 8 + %9 = load ptr, ptr %__node, align 8 + ret ptr %9 } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - store ptr %call2, ptr %__ptr, align 8 - %0 = load ptr, ptr %__ptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_(ptr noundef %0) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseIPK1ASaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + store ptr %call.i, ptr %__ptr, align 8 + %2 = load ptr, ptr %__ptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_(ptr noundef %2) #10 ret ptr %call3 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE9constructIS3_JRKS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE9constructIS4_JRKS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeIPK1AEEPT_S6_(ptr noundef %__ptr) #2 comdat { entry: @@ -861,8 +777,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -871,52 +788,39 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 576460752303423487 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #15 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 1152921504606846975 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 16 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #16 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 576460752303423487 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 16 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #11 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #12 +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeIPK1AEE9constructIS4_JRKS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorIPK1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -930,7 +834,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt18_Fwd_list_iteratorIPK1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt18_Fwd_list_iteratorIPK1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -943,30 +847,21 @@ entry: ret void } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_forward_list_2.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #10 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { builtin allocsize(0) } -attributes #14 = { noreturn nounwind } -attributes #15 = { noreturn } -attributes #16 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #7 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nounwind } +attributes #11 = { builtin allocsize(0) } +attributes #12 = { noreturn nounwind } +attributes #13 = { builtin nounwind } +attributes #14 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -976,6 +871,6 @@ attributes #16 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/forward_list-3.cpp.bc b/test_cases_bc/basic_cpp_tests/forward_list-3.cpp.bc index bde27b51..097679d8 100644 --- a/test_cases_bc/basic_cpp_tests/forward_list-3.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/forward_list-3.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/f target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::forward_list" = type { %"struct.std::_Fwd_list_base" } %"struct.std::_Fwd_list_base" = type { %"struct.std::_Fwd_list_base>::_Fwd_list_impl" } %"struct.std::_Fwd_list_base>::_Fwd_list_impl" = type { %"struct.std::_Fwd_list_node_base" } @@ -28,12 +29,8 @@ $_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev = comdat any -$_ZNSaISt14_Fwd_list_nodeI1AEEC2Ev = comdat any - $_ZNSt19_Fwd_list_node_baseC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev = comdat any @@ -44,29 +41,21 @@ $__clang_call_terminate = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE7destroyIS1_EEvRS3_PT_ = comdat any - $_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE7destroyIS2_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_bufferI1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferI1AE7_M_addrEv = comdat any -$_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeI1AEE10pointer_toERS2_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE10deallocateERS3_PS2_m = comdat any +$_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeI1AES2_Lb0EE10pointer_toERS2_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS3_m = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS2_m = comdat any -$_ZNSaISt14_Fwd_list_nodeI1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEED2Ev = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE15_M_insert_afterIJRKS0_EEEPSt19_Fwd_list_node_baseSt24_Fwd_list_const_iteratorIS0_EDpOT_ = comdat any @@ -78,17 +67,9 @@ $_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_get_nodeEv = comdat any $_ZNSt14_Fwd_list_nodeI1AEC2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE8allocateERS3_m = comdat any - $_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv = comdat any $_ZN1AC2ERKS_ = comdat any @@ -103,15 +84,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_forward_list_3.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -246,24 +224,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -278,8 +240,8 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #10 invoke void @_ZNSt12forward_listI1ASaIS0_EE10push_frontERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %alist, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad @@ -299,7 +261,7 @@ invoke.cont1: ; preds = %invoke.cont invoke.cont2: ; preds = %invoke.cont1 store i32 0, ptr %retval, align 4 - call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -310,7 +272,7 @@ lpad: ; preds = %invoke.cont1, %invo store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 br label %eh.resume eh.resume: ; preds = %lpad @@ -322,17 +284,17 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -350,7 +312,7 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__val, ptr %__val.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call ptr @_ZNKSt12forward_listI1ASaIS0_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call ptr @_ZNKSt12forward_listI1ASaIS0_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %agg.tmp, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %0 = load ptr, ptr %__val.addr, align 8 @@ -375,59 +337,54 @@ entry: %0 = load ptr, ptr %_M_next, align 8 store ptr %0, ptr %__front, align 8 %1 = load ptr, ptr %__front, align 8 - %call = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #5 + %call = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #10 ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %this1, i32 0, i32 0 call void @llvm.memset.p0.i64(ptr align 8 %_M_head, i8 0, i64 8, i1 false) - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #10 ret void } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -437,15 +394,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -461,7 +409,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -473,20 +421,24 @@ entry: invoke.cont: ; preds = %entry %_M_impl2 = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #10 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #13 + call void @__clang_call_terminate(ptr %1) #11 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_M_erase_afterEPSt19_Fwd_list_node_baseS4_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__pos, ptr noundef %__last) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__pos.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -515,28 +467,35 @@ while.body: ; preds = %while.cond %_M_next2 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %5, i32 0, i32 0 %6 = load ptr, ptr %_M_next2, align 8 store ptr %6, ptr %__curr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %7 = load ptr, ptr %__temp, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #5 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE7destroyIS1_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call3) #5 - %8 = load ptr, ptr %__temp, align 8 - %9 = load ptr, ptr %__temp, align 8 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %9) + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + %8 = load ptr, ptr %__a.addr.i, align 8 + %9 = load ptr, ptr %__p.addr.i, align 8 + store ptr %8, ptr %this.addr.i, align 8 + store ptr %9, ptr %__p.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %10 = load ptr, ptr %__p.addr.i5, align 8 + %11 = load ptr, ptr %__temp, align 8 + %12 = load ptr, ptr %__temp, align 8 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %12) br label %while.cond, !llvm.loop !6 while.end: ; preds = %while.cond - %10 = load ptr, ptr %__last.addr, align 8 - %11 = load ptr, ptr %__pos.addr, align 8 - %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %11, i32 0, i32 0 - store ptr %10, ptr %_M_next4, align 8 - %12 = load ptr, ptr %__last.addr, align 8 - ret ptr %12 + %13 = load ptr, ptr %__last.addr, align 8 + %14 = load ptr, ptr %__pos.addr, align 8 + %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %14, i32 0, i32 0 + store ptr %13, ptr %_M_next4, align 8 + %15 = load ptr, ptr %__last.addr, align 8 + ret ptr %15 } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #9 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #13 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #10 + call void @_ZSt9terminatev() #11 unreachable } @@ -545,25 +504,15 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE7destroyIS1_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } @@ -584,13 +533,16 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #10 ret ptr %call } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 @@ -598,23 +550,17 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeI1AEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeI1AES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 store ptr %call, ptr %__ptr, align 8 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__ptr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %1, i64 noundef 1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) ret void } @@ -624,7 +570,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret ptr %call } @@ -639,7 +585,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeI1AEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeI1AES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -647,52 +593,26 @@ entry: ret ptr %0 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #12 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 +declare void @_ZdlPv(ptr noundef) #7 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -744,7 +664,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %_M_impl, i32 0, i32 0 - call void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #5 + call void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 @@ -753,6 +673,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_M_create_nodeIJRKS0_EEEPSt14_Fwd_list_nodeIS0_EDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i4 = alloca ptr, align 8 + %__args.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__node = alloca ptr, align 8 @@ -762,71 +688,60 @@ entry: %call = call noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) store ptr %call, ptr %__node, align 8 %0 = load ptr, ptr %__node, align 8 - call void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__node, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #5 + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #10 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %call3, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__node, align 8 - ret ptr %3 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i4, align 8 + store ptr %5, ptr %__args.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i4, align 8 + %7 = load ptr, ptr %__args.addr.i5, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10 + %8 = load ptr, ptr %__node, align 8 + ret ptr %8 } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - store ptr %call2, ptr %__ptr, align 8 - %0 = load ptr, ptr %__ptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_(ptr noundef %0) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + store ptr %call.i, ptr %__ptr, align 8 + %2 = load ptr, ptr %__ptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_(ptr noundef %2) #10 ret ptr %call3 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_(ptr noundef %__ptr) #2 comdat { entry: @@ -837,8 +752,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -847,54 +763,42 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 576460752303423487 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #14 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 1152921504606846975 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #13 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 16 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #13 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 576460752303423487 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 16 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #11 +declare void @_ZSt28__throw_bad_array_new_lengthv() #8 -; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #12 +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #8 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 - ret void -} +; Function Attrs: nobuiltin allocsize(0) +declare noundef nonnull ptr @_Znwm(i64 noundef) #9 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -906,7 +810,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -919,29 +823,21 @@ entry: ret void } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_forward_list_3.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #9 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { noreturn nounwind } -attributes #14 = { noreturn } -attributes #15 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nounwind } +attributes #11 = { noreturn nounwind } +attributes #12 = { builtin nounwind } +attributes #13 = { noreturn } +attributes #14 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -951,6 +847,6 @@ attributes #15 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/forward_list-4.cpp.bc b/test_cases_bc/basic_cpp_tests/forward_list-4.cpp.bc index 3b4b3016..2f0a2030 100644 --- a/test_cases_bc/basic_cpp_tests/forward_list-4.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/forward_list-4.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/f target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::forward_list" = type { %"struct.std::_Fwd_list_base" } %"struct.std::_Fwd_list_base" = type { %"struct.std::_Fwd_list_base>::_Fwd_list_impl" } %"struct.std::_Fwd_list_base>::_Fwd_list_impl" = type { %"struct.std::_Fwd_list_node_base" } @@ -31,12 +32,8 @@ $_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev = comdat any -$_ZNSaISt14_Fwd_list_nodeI1AEEC2Ev = comdat any - $_ZNSt19_Fwd_list_node_baseC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev = comdat any @@ -47,29 +44,21 @@ $__clang_call_terminate = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE7destroyIS1_EEvRS3_PT_ = comdat any - $_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE7destroyIS2_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_bufferI1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferI1AE7_M_addrEv = comdat any -$_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeI1AEE10pointer_toERS2_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE10deallocateERS3_PS2_m = comdat any +$_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeI1AES2_Lb0EE10pointer_toERS2_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS3_m = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS2_m = comdat any -$_ZNSaISt14_Fwd_list_nodeI1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEED2Ev = comdat any $_ZNSt14_Fwd_list_baseI1ASaIS0_EE15_M_insert_afterIJRKS0_EEEPSt19_Fwd_list_node_baseSt24_Fwd_list_const_iteratorIS0_EDpOT_ = comdat any @@ -81,17 +70,9 @@ $_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_get_nodeEv = comdat any $_ZNSt14_Fwd_list_nodeI1AEC2Ev = comdat any -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_ = comdat any - -$_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE8allocateERS3_m = comdat any - $_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv = comdat any $_ZN1AC2ERKS_ = comdat any @@ -108,15 +89,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_forward_list_4.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -251,24 +229,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -284,16 +246,16 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #10 invoke void @_ZNSt12forward_listI1ASaIS0_EE10push_frontERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %alist, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call = call ptr @_ZNSt12forward_listI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + %call = call ptr @_ZNSt12forward_listI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_iterator", ptr %it, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 - %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt18_Fwd_list_iteratorI1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt18_Fwd_list_iteratorI1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #10 store ptr %call1, ptr %aptr, align 8 %0 = load ptr, ptr %aptr, align 8 %1 = load ptr, ptr %ptr, align 8 @@ -305,7 +267,7 @@ invoke.cont: ; preds = %entry invoke.cont2: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -316,7 +278,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #5 + call void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %alist) #10 br label %eh.resume eh.resume: ; preds = %lpad @@ -328,17 +290,17 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -356,7 +318,7 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__val, ptr %__val.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call ptr @_ZNKSt12forward_listI1ASaIS0_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call ptr @_ZNKSt12forward_listI1ASaIS0_EE13cbefore_beginEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %agg.tmp, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %0 = load ptr, ptr %__val.addr, align 8 @@ -379,7 +341,7 @@ entry: %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %_M_impl, i32 0, i32 0 %_M_next = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %_M_head, i32 0, i32 0 %0 = load ptr, ptr %_M_next, align 8 - call void @_ZNSt18_Fwd_list_iteratorI1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 + call void @_ZNSt18_Fwd_list_iteratorI1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_iterator", ptr %retval, i32 0, i32 0 %1 = load ptr, ptr %coerce.dive, align 8 ret ptr %1 @@ -393,59 +355,54 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Fwd_list_iterator", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %_M_node, align 8 - %call = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12forward_listI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %this1, i32 0, i32 0 call void @llvm.memset.p0.i64(ptr align 8 %_M_head, i8 0, i64 8, i1 false) - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_head) #10 ret void } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -455,15 +412,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -479,7 +427,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -491,20 +439,24 @@ entry: invoke.cont: ; preds = %entry %_M_impl2 = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #5 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_impl2) #10 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #13 + call void @__clang_call_terminate(ptr %1) #11 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_M_erase_afterEPSt19_Fwd_list_node_baseS4_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__pos, ptr noundef %__last) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__pos.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -533,28 +485,35 @@ while.body: ; preds = %while.cond %_M_next2 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %5, i32 0, i32 0 %6 = load ptr, ptr %_M_next2, align 8 store ptr %6, ptr %__curr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %7 = load ptr, ptr %__temp, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #5 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE7destroyIS1_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call3) #5 - %8 = load ptr, ptr %__temp, align 8 - %9 = load ptr, ptr %__temp, align 8 - call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %9) + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + %8 = load ptr, ptr %__a.addr.i, align 8 + %9 = load ptr, ptr %__p.addr.i, align 8 + store ptr %8, ptr %this.addr.i, align 8 + store ptr %9, ptr %__p.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %10 = load ptr, ptr %__p.addr.i5, align 8 + %11 = load ptr, ptr %__temp, align 8 + %12 = load ptr, ptr %__temp, align 8 + call void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %12) br label %while.cond, !llvm.loop !6 while.end: ; preds = %while.cond - %10 = load ptr, ptr %__last.addr, align 8 - %11 = load ptr, ptr %__pos.addr, align 8 - %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %11, i32 0, i32 0 - store ptr %10, ptr %_M_next4, align 8 - %12 = load ptr, ptr %__last.addr, align 8 - ret ptr %12 + %13 = load ptr, ptr %__last.addr, align 8 + %14 = load ptr, ptr %__pos.addr, align 8 + %_M_next4 = getelementptr inbounds %"struct.std::_Fwd_list_node_base", ptr %14, i32 0, i32 0 + store ptr %13, ptr %_M_next4, align 8 + %15 = load ptr, ptr %__last.addr, align 8 + ret ptr %15 } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #9 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #13 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #10 + call void @_ZSt9terminatev() #11 unreachable } @@ -563,25 +522,15 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_Fwd_list_implD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE7destroyIS1_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } @@ -602,13 +551,16 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #10 ret ptr %call } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_put_nodeEPSt14_Fwd_list_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 @@ -616,23 +568,17 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeI1AEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeI1AES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 store ptr %call, ptr %__ptr, align 8 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__ptr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %1, i64 noundef 1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) ret void } @@ -642,7 +588,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 ret ptr %call } @@ -657,7 +603,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPSt14_Fwd_list_nodeI1AEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPSt14_Fwd_list_nodeI1AES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -665,52 +611,26 @@ entry: ret ptr %0 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #12 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 +declare void @_ZdlPv(ptr noundef) #7 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -762,7 +682,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Fwd_list_base", ptr %this1, i32 0, i32 0 %_M_head = getelementptr inbounds %"struct.std::_Fwd_list_base>::_Fwd_list_impl", ptr %_M_impl, i32 0, i32 0 - call void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #5 + call void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_head) #10 %coerce.dive = getelementptr inbounds %"struct.std::_Fwd_list_const_iterator", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 @@ -771,6 +691,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE14_M_create_nodeIJRKS0_EEEPSt14_Fwd_list_nodeIS0_EDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i4 = alloca ptr, align 8 + %__args.addr.i5 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__node = alloca ptr, align 8 @@ -780,71 +706,60 @@ entry: %call = call noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) store ptr %call, ptr %__node, align 8 %0 = load ptr, ptr %__node, align 8 - call void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10 + %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %1 = load ptr, ptr %__node, align 8 - %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #5 + %call3 = call noundef ptr @_ZNSt14_Fwd_list_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %1) #10 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %call3, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__node, align 8 - ret ptr %3 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i4, align 8 + store ptr %5, ptr %__args.addr.i5, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i4, align 8 + %7 = load ptr, ptr %__args.addr.i5, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10 + %8 = load ptr, ptr %__node, align 8 + ret ptr %8 } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - store ptr %call2, ptr %__ptr, align 8 - %0 = load ptr, ptr %__ptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_(ptr noundef %0) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt14_Fwd_list_baseI1ASaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + store ptr %call.i, ptr %__ptr, align 8 + %2 = load ptr, ptr %__ptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_(ptr noundef %2) #10 ret ptr %call3 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt14_Fwd_list_nodeI1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + call void @_ZNSt19_Fwd_list_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #10 %_M_storage = getelementptr inbounds %"struct.std::_Fwd_list_node", ptr %this1, i32 0, i32 1 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt14_Fwd_list_nodeI1AEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressISt14_Fwd_list_nodeI1AEEPT_S4_(ptr noundef %__ptr) #2 comdat { entry: @@ -855,8 +770,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt14_Fwd_list_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -865,54 +781,42 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 576460752303423487 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #14 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 1152921504606846975 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #13 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 16 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #13 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 576460752303423487 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 16 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #11 +declare void @_ZSt28__throw_bad_array_new_lengthv() #8 -; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #12 +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #8 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt14_Fwd_list_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 - ret void -} +; Function Attrs: nobuiltin allocsize(0) +declare noundef nonnull ptr @_Znwm(i64 noundef) #9 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -924,7 +828,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt24_Fwd_list_const_iteratorI1AEC2EPKSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -938,7 +842,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt18_Fwd_list_iteratorI1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt18_Fwd_list_iteratorI1AEC2EPSt19_Fwd_list_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__n) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -951,29 +855,21 @@ entry: ret void } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_forward_list_4.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #9 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { noreturn nounwind } -attributes #14 = { noreturn } -attributes #15 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nounwind } +attributes #11 = { noreturn nounwind } +attributes #12 = { builtin nounwind } +attributes #13 = { noreturn } +attributes #14 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -983,6 +879,6 @@ attributes #15 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/func-ptr-in-class.cpp.bc b/test_cases_bc/basic_cpp_tests/func-ptr-in-class.cpp.bc index 91dfd7d1..944a3b73 100644 --- a/test_cases_bc/basic_cpp_tests/func-ptr-in-class.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/func-ptr-in-class.cpp.bc @@ -330,4 +330,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/global-obj-in-array.cpp.bc b/test_cases_bc/basic_cpp_tests/global-obj-in-array.cpp.bc index aa253c07..efa31bf6 100644 --- a/test_cases_bc/basic_cpp_tests/global-obj-in-array.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/global-obj-in-array.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/g target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %class.A = type <{ ptr, i32, [4 x i8] }> %struct.TableEntry = type { i32, ptr } %"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" } @@ -22,8 +23,6 @@ $_ZTS1A = comdat any $_ZTI1A = comdat any -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 @@ -38,27 +37,11 @@ $_ZTI1A = comdat any @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 @_ZSt4cout = external global %"class.std::basic_ostream", align 8 -@.str.6 = private unnamed_addr constant [7 x i8] c"data: \00", align 1 +@.str.5 = private unnamed_addr constant [7 x i8] c"data: \00", align 1 @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_global_obj_in_array.cpp, ptr null }] -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #0 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #3 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #3 - ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #4 { +define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { entry: %p.addr = alloca ptr, align 8 %q.addr = alloca ptr, align 8 @@ -71,7 +54,7 @@ entry: declare i32 @printf(ptr noundef, ...) #1 ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z12PARTIALALIASPvS_(ptr noundef %p, ptr noundef %q) #4 { +define dso_local void @_Z12PARTIALALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { entry: %p.addr = alloca ptr, align 8 %q.addr = alloca ptr, align 8 @@ -82,7 +65,7 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z8MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #4 { +define dso_local void @_Z8MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { entry: %p.addr = alloca ptr, align 8 %q.addr = alloca ptr, align 8 @@ -93,7 +76,7 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z7NOALIASPvS_(ptr noundef %p, ptr noundef %q) #4 { +define dso_local void @_Z7NOALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { entry: %p.addr = alloca ptr, align 8 %q.addr = alloca ptr, align 8 @@ -104,7 +87,7 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z21EXPECTEDFAIL_MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #4 { +define dso_local void @_Z21EXPECTEDFAIL_MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { entry: %p.addr = alloca ptr, align 8 %q.addr = alloca ptr, align 8 @@ -115,7 +98,7 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z20EXPECTEDFAIL_NOALIASPvS_(ptr noundef %p, ptr noundef %q) #4 { +define dso_local void @_Z20EXPECTEDFAIL_NOALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { entry: %p.addr = alloca ptr, align 8 %q.addr = alloca ptr, align 8 @@ -126,7 +109,7 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z9RC_ACCESSii(i32 noundef %id, i32 noundef %flags) #4 { +define dso_local void @_Z9RC_ACCESSii(i32 noundef %id, i32 noundef %flags) #0 { entry: %id.addr = alloca i32, align 4 %flags.addr = alloca i32, align 4 @@ -137,7 +120,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define dso_local void @_Z10CXT_THREADiPc(i32 noundef %thdid, ptr noundef %cxt) #5 { +define dso_local void @_Z10CXT_THREADiPc(i32 noundef %thdid, ptr noundef %cxt) #2 { entry: %thdid.addr = alloca i32, align 4 %cxt.addr = alloca ptr, align 8 @@ -147,7 +130,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define dso_local void @_Z10TCT_ACCESSiPc(i32 noundef %thdid, ptr noundef %cxt) #5 { +define dso_local void @_Z10TCT_ACCESSiPc(i32 noundef %thdid, ptr noundef %cxt) #2 { entry: %thdid.addr = alloca i32, align 4 %cxt.addr = alloca ptr, align 8 @@ -157,7 +140,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define dso_local void @_Z15INTERLEV_ACCESSiPcS_(i32 noundef %thdid, ptr noundef %cxt, ptr noundef %lev) #5 { +define dso_local void @_Z15INTERLEV_ACCESSiPcS_(i32 noundef %thdid, ptr noundef %cxt, ptr noundef %lev) #2 { entry: %thdid.addr = alloca i32, align 4 %cxt.addr = alloca ptr, align 8 @@ -169,7 +152,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define dso_local void @_Z4LOCKPc(ptr noundef %lockname) #5 { +define dso_local void @_Z4LOCKPc(ptr noundef %lockname) #2 { entry: %lockname.addr = alloca ptr, align 8 store ptr %lockname, ptr %lockname.addr, align 8 @@ -177,7 +160,7 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define dso_local void @_Z5PAUSEPc(ptr noundef %str) #4 { +define dso_local void @_Z5PAUSEPc(ptr noundef %str) #0 { entry: %str.addr = alloca ptr, align 8 store ptr %str, ptr %str.addr, align 8 @@ -191,14 +174,14 @@ entry: declare i32 @getchar() #1 ; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init.3() #0 section ".text.startup" { +define internal void @__cxx_global_var_init() #3 section ".text.startup" { entry: call void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) @a1, i32 noundef 1) ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) %this, i32 noundef %d) unnamed_addr #6 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) %this, i32 noundef %d) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %d.addr = alloca i32, align 4 @@ -213,21 +196,21 @@ entry: } ; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init.4() #0 section ".text.startup" { +define internal void @__cxx_global_var_init.3() #3 section ".text.startup" { entry: call void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) @a2, i32 noundef 2) ret void } ; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init.5() #0 section ".text.startup" { +define internal void @__cxx_global_var_init.4() #3 section ".text.startup" { entry: call void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) @a3, i32 noundef 3) ret void } ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #7 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #5 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -271,14 +254,14 @@ for.end: ; preds = %for.cond } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(12) %this, ptr noundef %p) unnamed_addr #4 comdat align 2 { +define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(12) %this, ptr noundef %p) unnamed_addr #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %p, ptr %p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.6) + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.5) %data = getelementptr inbounds %class.A, ptr %this1, i32 0, i32 1 %0 = load i32, ptr %data, align 8 %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %call, i32 noundef %0) @@ -294,23 +277,20 @@ declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIc declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #1 ; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_global_obj_in_array.cpp() #0 section ".text.startup" { +define internal void @_GLOBAL__sub_I_global_obj_in_array.cpp() #3 section ".text.startup" { entry: call void @__cxx_global_var_init() call void @__cxx_global_var_init.3() call void @__cxx_global_var_init.4() - call void @__cxx_global_var_init.5() ret void } -attributes #0 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { nounwind } -attributes #4 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -320,6 +300,6 @@ attributes #7 = { mustprogress noinline norecurse optnone uwtable "frame-pointer !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/list-1.cpp.bc b/test_cases_bc/basic_cpp_tests/list-1.cpp.bc index c656820a..15ae0eaa 100644 --- a/test_cases_bc/basic_cpp_tests/list-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/list-1.cpp.bc @@ -33,12 +33,8 @@ $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EEC2Ev = comdat any $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE10_List_implC2Ev = comdat any -$_ZNSaISt10_List_nodeIPK1AEEC2Ev = comdat any - $_ZNSt8__detail17_List_node_headerC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEEC2Ev = comdat any - $_ZNSt8__detail17_List_node_header7_M_initEv = comdat any $_ZNK1A1fEPi = comdat any @@ -53,8 +49,6 @@ $_ZNSt10_List_nodeIPK1AE9_M_valptrEv = comdat any $__clang_call_terminate = comdat any -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_ = comdat any - $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E = comdat any @@ -63,15 +57,9 @@ $_ZN9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_membufIPK1AE7_M_addrEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE7destroyIS4_EEvPT_ = comdat any - -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m = comdat any +$_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m = comdat any -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS5_m = comdat any - -$_ZNSaISt10_List_nodeIPK1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt10_List_nodeIPK1AEED2Ev = comdat any $_ZNSt7__cxx114listIPK1ASaIS3_EE9_M_insertIJS3_EEEvSt14_List_iteratorIS3_EDpOT_ = comdat any @@ -85,19 +73,11 @@ $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_get_nodeEv = comdat any $_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEC2ERS5_PS4_ = comdat any -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_ = comdat any - $_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEaSEDn = comdat any $_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEED2Ev = comdat any -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE8allocateERS5_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv = comdat any $_ZNSt14_List_iteratorIPK1AEC2EPNSt8__detail15_List_node_baseE = comdat any @@ -441,25 +421,20 @@ entry: ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE10_List_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 %_M_node = getelementptr inbounds %"struct.std::__cxx11::_List_base>::_List_impl", ptr %this1, i32 0, i32 0 call void @_ZNSt8__detail17_List_node_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_node) #10 ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 - ret void -} - ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail17_List_node_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: @@ -470,15 +445,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail17_List_node_header7_M_initEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -523,6 +489,10 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE8_M_clearEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i6 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__cur = alloca ptr, align 8 %__tmp = alloca ptr, align 8 @@ -558,29 +528,39 @@ invoke.cont: ; preds = %while.body store ptr %call, ptr %__val, align 8 %call5 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %6 = load ptr, ptr %__val, align 8 - call void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call5, ptr noundef %6) #10 - %7 = load ptr, ptr %__tmp, align 8 - call void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %7) #10 + store ptr %call5, ptr %__a.addr.i, align 8 + store ptr %6, ptr %__p.addr.i, align 8 + %7 = load ptr, ptr %__a.addr.i, align 8 + %8 = load ptr, ptr %__p.addr.i, align 8 + store ptr %7, ptr %this.addr.i, align 8 + store ptr %8, ptr %__p.addr.i6, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %9 = load ptr, ptr %__p.addr.i6, align 8 + %10 = load ptr, ptr %__tmp, align 8 + call void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %10) #10 br label %while.cond, !llvm.loop !6 while.end: ; preds = %while.cond ret void terminate.lpad: ; preds = %while.body - %8 = landingpad { ptr, i32 } + %11 = landingpad { ptr, i32 } catch ptr null - %9 = extractvalue { ptr, i32 } %8, 0 - call void @__clang_call_terminate(ptr %9) #11 + %12 = extractvalue { ptr, i32 } %11, 0 + call void @__clang_call_terminate(ptr %12) #11 unreachable } ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE10_List_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } @@ -606,19 +586,6 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #10 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -632,6 +599,9 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -639,17 +609,23 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::__cxx11::_List_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__p.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #11 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #11 unreachable } @@ -674,45 +650,17 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #10 + call void @_ZdlPv(ptr noundef %0) #12 ret void } @@ -720,17 +668,7 @@ entry: declare void @_ZdlPv(ptr noundef) #6 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -779,6 +717,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt7__cxx114listIPK1ASaIS3_EE14_M_create_nodeIJS3_EEEPSt10_List_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i5 = alloca ptr, align 8 + %__args.addr.i6 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__p = alloca ptr, align 8 @@ -798,11 +742,24 @@ entry: %3 = load ptr, ptr %__p, align 8 %call3 = call noundef ptr @_ZNSt10_List_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %3) %4 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %call3, ptr noundef nonnull align 8 dereferenceable(8) %4) #10 + store ptr %2, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + store ptr %4, ptr %__args.addr.i, align 8 + %5 = load ptr, ptr %__a.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i, align 8 + %7 = load ptr, ptr %__args.addr.i, align 8 + store ptr %5, ptr %this.addr.i, align 8 + store ptr %6, ptr %__p.addr.i5, align 8 + store ptr %7, ptr %__args.addr.i6, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %8 = load ptr, ptr %__p.addr.i5, align 8 + %9 = load ptr, ptr %__args.addr.i6, align 8 + %10 = load ptr, ptr %9, align 8 + store ptr %10, ptr %8, align 8 %call4 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEaSEDn(ptr noundef nonnull align 8 dereferenceable(16) %__guard, ptr null) #10 - %5 = load ptr, ptr %__p, align 8 + %11 = load ptr, ptr %__p, align 8 call void @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__guard) #10 - ret ptr %5 + ret ptr %11 } ; Function Attrs: nounwind @@ -829,12 +786,18 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::__cxx11::_List_base", ptr %this1, i32 0, i32 0 - %call = call noundef ptr @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef 1) - ret ptr %call + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: noinline nounwind optnone uwtable @@ -856,22 +819,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #10 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEaSEDn(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr %0) #2 comdat align 2 { entry: @@ -888,6 +835,9 @@ entry: ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -901,8 +851,14 @@ if.then: ; preds = %entry %1 = load ptr, ptr %_M_alloc, align 8 %_M_ptr2 = getelementptr inbounds %"struct.std::__allocated_ptr", ptr %this1, i32 0, i32 1 %2 = load ptr, ptr %_M_ptr2, align 8 - invoke void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %1, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) + br label %invoke.cont invoke.cont: ; preds = %if.then br label %if.end @@ -910,30 +866,18 @@ invoke.cont: ; preds = %if.then if.end: ; preds = %invoke.cont, %entry ret void -terminate.lpad: ; preds = %if.then - %3 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %6 = landingpad { ptr, i32 } catch ptr null - %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #11 + %7 = extractvalue { ptr, i32 } %6, 0 + call void @__clang_call_terminate(ptr %7) #11 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -942,53 +886,40 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 384307168202282325 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #12 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 768614336404564650 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #13 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 24 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #13 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #13 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 384307168202282325 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 24 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 + ret ptr %call5 } +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #8 + ; Function Attrs: noreturn declare void @_ZSt17__throw_bad_allocv() #8 ; Function Attrs: nobuiltin allocsize(0) declare noundef nonnull ptr @_Znwm(i64 noundef) #9 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt14_List_iteratorIPK1AEC2EPNSt8__detail15_List_node_baseE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { entry: @@ -1046,8 +977,9 @@ attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stac attributes #9 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { nounwind } attributes #11 = { noreturn nounwind } -attributes #12 = { noreturn } -attributes #13 = { allocsize(0) } +attributes #12 = { builtin nounwind } +attributes #13 = { noreturn } +attributes #14 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1057,6 +989,6 @@ attributes #13 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/list-2.cpp.bc b/test_cases_bc/basic_cpp_tests/list-2.cpp.bc index b01c46ea..a92baeb3 100644 --- a/test_cases_bc/basic_cpp_tests/list-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/list-2.cpp.bc @@ -28,12 +28,8 @@ $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EEC2Ev = comdat any $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE10_List_implC2Ev = comdat any -$_ZNSaISt10_List_nodeIPK1AEEC2Ev = comdat any - $_ZNSt8__detail17_List_node_headerC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEEC2Ev = comdat any - $_ZNSt8__detail17_List_node_header7_M_initEv = comdat any $_ZNK1A1fEPi = comdat any @@ -48,8 +44,6 @@ $_ZNSt10_List_nodeIPK1AE9_M_valptrEv = comdat any $__clang_call_terminate = comdat any -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_ = comdat any - $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E = comdat any @@ -58,15 +52,9 @@ $_ZN9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_membufIPK1AE7_M_addrEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE7destroyIS4_EEvPT_ = comdat any - -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m = comdat any +$_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m = comdat any -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS5_m = comdat any - -$_ZNSaISt10_List_nodeIPK1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt10_List_nodeIPK1AEED2Ev = comdat any $_ZNSt7__cxx114listIPK1ASaIS3_EE9_M_insertIJS3_EEEvSt14_List_iteratorIS3_EDpOT_ = comdat any @@ -80,19 +68,11 @@ $_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_get_nodeEv = comdat any $_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEC2ERS5_PS4_ = comdat any -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_ = comdat any - $_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEaSEDn = comdat any $_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEED2Ev = comdat any -$_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE8allocateERS5_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE11_M_max_sizeEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv = comdat any $_ZNSt14_List_iteratorIPK1AEC2EPNSt8__detail15_List_node_baseE = comdat any @@ -387,25 +367,20 @@ entry: ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE10_List_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 %_M_node = getelementptr inbounds %"struct.std::__cxx11::_List_base>::_List_impl", ptr %this1, i32 0, i32 0 call void @_ZNSt8__detail17_List_node_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_node) #10 ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 - ret void -} - ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail17_List_node_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: @@ -416,15 +391,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail17_List_node_header7_M_initEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -469,6 +435,10 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE8_M_clearEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i6 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__cur = alloca ptr, align 8 %__tmp = alloca ptr, align 8 @@ -504,29 +474,39 @@ invoke.cont: ; preds = %while.body store ptr %call, ptr %__val, align 8 %call5 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %6 = load ptr, ptr %__val, align 8 - call void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call5, ptr noundef %6) #10 - %7 = load ptr, ptr %__tmp, align 8 - call void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %7) #10 + store ptr %call5, ptr %__a.addr.i, align 8 + store ptr %6, ptr %__p.addr.i, align 8 + %7 = load ptr, ptr %__a.addr.i, align 8 + %8 = load ptr, ptr %__p.addr.i, align 8 + store ptr %7, ptr %this.addr.i, align 8 + store ptr %8, ptr %__p.addr.i6, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %9 = load ptr, ptr %__p.addr.i6, align 8 + %10 = load ptr, ptr %__tmp, align 8 + call void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %10) #10 br label %while.cond, !llvm.loop !6 while.end: ; preds = %while.cond ret void terminate.lpad: ; preds = %while.body - %8 = landingpad { ptr, i32 } + %11 = landingpad { ptr, i32 } catch ptr null - %9 = extractvalue { ptr, i32 } %8, 0 - call void @__clang_call_terminate(ptr %9) #11 + %12 = extractvalue { ptr, i32 } %11, 0 + call void @__clang_call_terminate(ptr %12) #11 unreachable } ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE10_List_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } @@ -552,19 +532,6 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #10 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -578,6 +545,9 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -585,17 +555,23 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::__cxx11::_List_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__p.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #11 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #11 unreachable } @@ -620,45 +596,17 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #10 + call void @_ZdlPv(ptr noundef %0) #12 ret void } @@ -666,17 +614,7 @@ entry: declare void @_ZdlPv(ptr noundef) #6 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -725,6 +663,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt7__cxx114listIPK1ASaIS3_EE14_M_create_nodeIJS3_EEEPSt10_List_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i5 = alloca ptr, align 8 + %__args.addr.i6 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__p = alloca ptr, align 8 @@ -744,11 +688,24 @@ entry: %3 = load ptr, ptr %__p, align 8 %call3 = call noundef ptr @_ZNSt10_List_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %3) %4 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %call3, ptr noundef nonnull align 8 dereferenceable(8) %4) #10 + store ptr %2, ptr %__a.addr.i, align 8 + store ptr %call3, ptr %__p.addr.i, align 8 + store ptr %4, ptr %__args.addr.i, align 8 + %5 = load ptr, ptr %__a.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i, align 8 + %7 = load ptr, ptr %__args.addr.i, align 8 + store ptr %5, ptr %this.addr.i, align 8 + store ptr %6, ptr %__p.addr.i5, align 8 + store ptr %7, ptr %__args.addr.i6, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %8 = load ptr, ptr %__p.addr.i5, align 8 + %9 = load ptr, ptr %__args.addr.i6, align 8 + %10 = load ptr, ptr %9, align 8 + store ptr %10, ptr %8, align 8 %call4 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEaSEDn(ptr noundef nonnull align 8 dereferenceable(16) %__guard, ptr null) #10 - %5 = load ptr, ptr %__p, align 8 + %11 = load ptr, ptr %__p, align 8 call void @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__guard) #10 - ret ptr %5 + ret ptr %11 } ; Function Attrs: nounwind @@ -775,12 +732,18 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt7__cxx1110_List_baseIPK1ASaIS3_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::__cxx11::_List_base", ptr %this1, i32 0, i32 0 - %call = call noundef ptr @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef 1) - ret ptr %call + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: noinline nounwind optnone uwtable @@ -802,22 +765,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #10 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEEaSEDn(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr %0) #2 comdat align 2 { entry: @@ -834,6 +781,9 @@ entry: ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt15__allocated_ptrISaISt10_List_nodeIPK1AEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -847,8 +797,14 @@ if.then: ; preds = %entry %1 = load ptr, ptr %_M_alloc, align 8 %_M_ptr2 = getelementptr inbounds %"struct.std::__allocated_ptr", ptr %this1, i32 0, i32 1 %2 = load ptr, ptr %_M_ptr2, align 8 - invoke void @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %1, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) + br label %invoke.cont invoke.cont: ; preds = %if.then br label %if.end @@ -856,30 +812,18 @@ invoke.cont: ; preds = %if.then if.end: ; preds = %invoke.cont, %entry ret void -terminate.lpad: ; preds = %if.then - %3 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %6 = landingpad { ptr, i32 } catch ptr null - %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #11 + %7 = extractvalue { ptr, i32 } %6, 0 + call void @__clang_call_terminate(ptr %7) #11 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt10_List_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt10_List_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -888,53 +832,40 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #10 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 384307168202282325 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #12 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 768614336404564650 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #13 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 24 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #13 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #13 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 384307168202282325 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 24 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 + ret ptr %call5 } +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #8 + ; Function Attrs: noreturn declare void @_ZSt17__throw_bad_allocv() #8 ; Function Attrs: nobuiltin allocsize(0) declare noundef nonnull ptr @_Znwm(i64 noundef) #9 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - ; Function Attrs: noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt14_List_iteratorIPK1AEC2EPNSt8__detail15_List_node_baseE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { entry: @@ -990,8 +921,9 @@ attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stac attributes #9 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { nounwind } attributes #11 = { noreturn nounwind } -attributes #12 = { noreturn } -attributes #13 = { allocsize(0) } +attributes #12 = { builtin nounwind } +attributes #13 = { noreturn } +attributes #14 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1001,6 +933,6 @@ attributes #13 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/map-1.cpp.bc b/test_cases_bc/basic_cpp_tests/map-1.cpp.bc index ddbc19a6..039e90b6 100644 --- a/test_cases_bc/basic_cpp_tests/map-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/map-1.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/m target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::map" = type { %"class.std::_Rb_tree" } %"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Rb_tree_impl" } %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Rb_tree_impl" = type { %"struct.std::_Rb_tree_key_compare", %"struct.std::_Rb_tree_header" } @@ -19,8 +20,9 @@ target triple = "x86_64-unknown-linux-gnu" %"struct.std::pair.2" = type { i32, %class.A } %"struct.std::_Rb_tree_node" = type { %"struct.std::_Rb_tree_node_base", %"struct.__gnu_cxx::__aligned_membuf" } %"struct.__gnu_cxx::__aligned_membuf" = type { [16 x i8] } -%"struct.std::pair.4" = type { ptr, ptr } %"struct.std::_Select1st" = type { i8 } +%"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node" = type { ptr, ptr } +%"struct.std::pair.4" = type { ptr, ptr } $_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEEC2Ev = comdat any @@ -42,14 +44,10 @@ $_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EEC2Ev = comdat $_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EEC2Ev = comdat any -$_ZNSaISt13_Rb_tree_nodeISt4pairIKi1AEEEC2Ev = comdat any - $_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev = comdat any $_ZNSt15_Rb_tree_headerC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEEC2Ev = comdat any - $_ZNSt15_Rb_tree_header8_M_resetEv = comdat any $__clang_call_terminate = comdat any @@ -76,81 +74,107 @@ $_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE15_M_destroy_ $_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE7destroyIS4_EEvRS6_PT_ = comdat any - $_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE7destroyIS5_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE10deallocateERS6_PS5_m = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE10deallocateEPS5_m = comdat any + +$_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE9_M_mbeginEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE10deallocateEPS6_m = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev = comdat any -$_ZNSaISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev = comdat any +$_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE11lower_boundERS4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev = comdat any +$_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKi1AEES6_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_emplace_uniqueIJS0_IiS2_EEEES0_ISt17_Rb_tree_iteratorIS3_EbEDpOT_ = comdat any +$_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE3endEv = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_create_nodeIJS0_IiS2_EEEEPSt13_Rb_tree_nodeIS3_EDpOT_ = comdat any +$_ZNKSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE8key_compEv = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_ = comdat any +$_ZNKSt4lessIiEclERKiS2_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E = comdat any +$_ZNKSt17_Rb_tree_iteratorISt4pairIKi1AEEdeEv = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSB_PSt13_Rb_tree_nodeIS3_E = comdat any +$_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE12emplace_hintIJS3_IiS0_EEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_ = comdat any + +$_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IRS4_bLb1EEEOT_OT0_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11lower_boundERS1_ = comdat any -$_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IS4_bLb1EEEOT_OT0_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_EPSt18_Rb_tree_node_baseRS1_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E = comdat any $_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_get_nodeEv = comdat any +$_ZNKSt10_Select1stISt4pairIKi1AEEclERKS3_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_construct_nodeIJS0_IiS2_EEEEvPSt13_Rb_tree_nodeIS3_EDpOT_ = comdat any +$_ZNKSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv = comdat any + +$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv = comdat any + +$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE3endEv = comdat any + +$_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8key_compEv = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE22_M_emplace_hint_uniqueIJS0_IiS2_EEEESt17_Rb_tree_iteratorIS3_ESt23_Rb_tree_const_iteratorIS3_EDpOT_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_nodeC2IJS0_IiS2_EEEERS9_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE8allocateERS6_m = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS3_ERS1_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE8allocateEmPKv = comdat any +$_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_node6_M_keyEv = comdat any -$_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE11_M_max_sizeEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_node9_M_insertES0_IPSt18_Rb_tree_node_baseSC_E = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE9constructIS4_JS1_IiS3_EEEEvRS6_PT_DpOT0_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_nodeD2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE9constructIS5_JS2_IiS4_EEEEvPT_DpOT0_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_create_nodeIJS0_IiS2_EEEEPSt13_Rb_tree_nodeIS3_EDpOT_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_get_nodeEv = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_construct_nodeIJS0_IiS2_EEEEvPSt13_Rb_tree_nodeIS3_EDpOT_ = comdat any + +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE8allocateEmPKv = comdat any $_ZNSt4pairIKi1AEC2IiS1_Lb1EEEOS_IT_T0_E = comdat any $_ZN1AC2EOS_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv = comdat any +$_ZNKSt23_Rb_tree_const_iteratorISt4pairIKi1AEE13_M_const_castEv = comdat any -$_ZNKSt4lessIiEclERKiS2_ = comdat any +$_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE4sizeEv = comdat any -$_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKi1AEES6_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_rightmostEv = comdat any -$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_ = comdat any +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_ = comdat any -$_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEmmEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_leftmostEv = comdat any -$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_ = comdat any +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_ = comdat any -$_ZNKSt10_Select1stISt4pairIKi1AEEclERKS3_ = comdat any +$_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEmmEv = comdat any -$_ZNKSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv = comdat any +$_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEppEv = comdat any -$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv = comdat any -$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv = comdat any +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSB_PSt13_Rb_tree_nodeIS3_E = comdat any $_ZTV1A = comdat any @@ -161,15 +185,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_map_1.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -304,24 +325,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -341,8 +346,8 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #13 store i32 0, ptr %ref.tmp1, align 4 invoke void @_ZNSt4pairIi1AEC2IiRS0_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp1, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad @@ -358,11 +363,11 @@ invoke.cont2: ; preds = %invoke.cont %2 = getelementptr inbounds { ptr, i8 }, ptr %coerce, i32 0, i32 1 %3 = extractvalue { ptr, i8 } %call, 1 store i8 %3, ptr %2, align 8 - %call4 = call ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 + %call4 = call ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp3, i32 0, i32 0 store ptr %call4, ptr %coerce.dive, align 8 - call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKi1AEEC2ERKSt17_Rb_tree_iteratorIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3) #5 - %call5 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKi1AEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKi1AEEC2ERKSt17_Rb_tree_iteratorIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp3) #13 + %call5 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKi1AEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #13 %second = getelementptr inbounds %"struct.std::pair.2", ptr %call5, i32 0, i32 1 store ptr %second, ptr %aptr, align 8 %4 = load ptr, ptr %aptr, align 8 @@ -375,7 +380,7 @@ invoke.cont2: ; preds = %invoke.cont invoke.cont6: ; preds = %invoke.cont2 store i32 0, ptr %retval, align 4 - call void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 + call void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 %7 = load i32, ptr %retval, align 4 ret i32 %7 @@ -386,7 +391,7 @@ lpad: ; preds = %invoke.cont2, %invo store ptr %9, ptr %exn.slot, align 8 %10 = extractvalue { ptr, i32 } %8, 1 store i32 %10, ptr %ehselector.slot, align 4 - call void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 + call void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -398,18 +403,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -424,24 +429,68 @@ entry: %retval = alloca %"struct.std::pair", align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 + %__k = alloca ptr, align 8 + %__i = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp5 = alloca %"struct.std::less", align 1 + %undef.agg.tmp = alloca %"struct.std::less", align 1 + %ref.tmp9 = alloca %"struct.std::_Rb_tree_iterator", align 8 + %agg.tmp = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %ref.tmp13 = alloca i8, align 1 + %ref.tmp14 = alloca i8, align 1 store ptr %this, ptr %this.addr, align 8 store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__x.addr, align 8 - %call = call { ptr, i8 } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_emplace_uniqueIJS0_IiS2_EEEES0_ISt17_Rb_tree_iteratorIS3_EbEDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %_M_t, ptr noundef nonnull align 8 dereferenceable(16) %0) - %1 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 0 - %2 = extractvalue { ptr, i8 } %call, 0 - store ptr %2, ptr %1, align 8 - %3 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 1 - %4 = extractvalue { ptr, i8 } %call, 1 - store i8 %4, ptr %3, align 8 - %5 = load { ptr, i8 }, ptr %retval, align 8 - ret { ptr, i8 } %5 + %first = getelementptr inbounds %"struct.std::pair.0", ptr %0, i32 0, i32 0 + store ptr %first, ptr %__k, align 8 + %1 = load ptr, ptr %__k, align 8 + %call = call ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE11lower_boundERS4_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %1) + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__i, i32 0, i32 0 + store ptr %call, ptr %coerce.dive, align 8 + %call2 = call ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %coerce.dive3 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 + store ptr %call2, ptr %coerce.dive3, align 8 + %call4 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKi1AEES6_(ptr noundef nonnull align 8 dereferenceable(8) %__i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #13 + br i1 %call4, label %lor.end, label %lor.rhs + +lor.rhs: ; preds = %entry + call void @_ZNKSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) + %2 = load ptr, ptr %__k, align 8 + %call6 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKi1AEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %__i) #13 + %first7 = getelementptr inbounds %"struct.std::pair.2", ptr %call6, i32 0, i32 0 + %call8 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %first7) + br label %lor.end + +lor.end: ; preds = %lor.rhs, %entry + %3 = phi i1 [ true, %entry ], [ %call8, %lor.rhs ] + br i1 %3, label %if.then, label %if.end + +if.then: ; preds = %lor.end + call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKi1AEEC2ERKSt17_Rb_tree_iteratorIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(8) %__i) #13 + %4 = load ptr, ptr %__x.addr, align 8 + %coerce.dive10 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %agg.tmp, i32 0, i32 0 + %5 = load ptr, ptr %coerce.dive10, align 8 + %call11 = call ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE12emplace_hintIJS3_IiS0_EEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr %5, ptr noundef nonnull align 8 dereferenceable(16) %4) + %coerce.dive12 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp9, i32 0, i32 0 + store ptr %call11, ptr %coerce.dive12, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %__i, ptr align 8 %ref.tmp9, i64 8, i1 false) + store i8 1, ptr %ref.tmp13, align 1 + call void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IRS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp13) + br label %return + +if.end: ; preds = %lor.end + store i8 0, ptr %ref.tmp14, align 1 + call void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IRS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp14) + br label %return + +return: ; preds = %if.end, %if.then + %6 = load { ptr, i8 }, ptr %retval, align 8 + ret { ptr, i8 } %6 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIi1AEC2IiRS0_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIi1AEC2IiRS0_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -456,7 +505,7 @@ entry: store i32 %1, ptr %first, align 8 %second = getelementptr inbounds %"struct.std::pair.0", ptr %this1, i32 0, i32 1 %2 = load ptr, ptr %__y.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %second, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %second, ptr noundef nonnull align 8 dereferenceable(8) %2) #13 ret void } @@ -470,7 +519,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 - %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 @@ -479,7 +528,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKi1AEEC2ERKSt17_Rb_tree_iteratorIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKi1AEEC2ERKSt17_Rb_tree_iteratorIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__it.addr = alloca ptr, align 8 @@ -507,52 +556,47 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeISt4pairIKi1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 %0 = getelementptr inbounds i8, ptr %this1, i64 8 - call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeISt4pairIKi1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -562,7 +606,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -581,19 +625,10 @@ terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt15_Rb_tree_header8_M_resetEv(ptr noundef nonnull align 8 dereferenceable(40) %this) #2 comdat align 2 { entry: @@ -617,9 +652,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #15 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #13 + call void @_ZSt9terminatev() #14 unreachable } @@ -642,7 +677,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -654,25 +689,25 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 invoke void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #13 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -694,13 +729,13 @@ while.cond: ; preds = %while.body, %entry while.body: ; preds = %while.cond %1 = load ptr, ptr %__x.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #13 call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) %2 = load ptr, ptr %__x.addr, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #13 store ptr %call2, ptr %__y, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #13 %4 = load ptr, ptr %__y, align 8 store ptr %4, ptr %__x.addr, align 8 br label %while.cond, !llvm.loop !6 @@ -715,21 +750,20 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 - %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 - %0 = load ptr, ptr %_M_parent, align 8 - ret ptr %0 + %call = call noundef ptr @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE13_Rb_tree_implIS7_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void } @@ -764,75 +798,82 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #13 %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #13 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 %0 = load ptr, ptr %__p.addr, align 8 %call2 = invoke noundef ptr @_ZNSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE7destroyIS4_EEvRS6_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2) #5 - %1 = load ptr, ptr %__p.addr, align 8 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + store ptr %2, ptr %__p.addr.i3, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i3, align 8 + %4 = load ptr, ptr %__p.addr, align 8 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #14 unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 %0 = load ptr, ptr %__p.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE10deallocateERS6_PS5_m(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %0, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #15 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE7destroyIS4_EEvRS6_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE7destroyIS5_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: @@ -850,29 +891,17 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #13 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE7destroyIS5_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 ret ptr %call } @@ -886,52 +915,40 @@ entry: ret ptr %_M_storage } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE10deallocateERS6_PS5_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE10deallocateEPS6_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE10deallocateEPS6_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #9 +declare void @_ZdlPv(ptr noundef) #6 -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 + %0 = load ptr, ptr %_M_parent, align 8 + ret ptr %0 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -940,386 +957,756 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local { ptr, i8 } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_emplace_uniqueIJS0_IiS2_EEEES0_ISt17_Rb_tree_iteratorIS3_EbEDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE11lower_boundERS4_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x) #0 comdat align 2 { entry: - %retval = alloca %"struct.std::pair", align 8 + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__z = alloca ptr, align 8 - %__res = alloca %"struct.std::pair.4", align 8 - %exn.slot = alloca ptr, align 8 - %ehselector.slot = alloca i32, align 4 - %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp8 = alloca i8, align 1 - %ref.tmp10 = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp12 = alloca i8, align 1 + %__x.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__args.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_create_nodeIJS0_IiS2_EEEEPSt13_Rb_tree_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 8 dereferenceable(16) %0) - store ptr %call, ptr %__z, align 8 - %1 = load ptr, ptr %__z, align 8 - %call2 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %1) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - %call4 = invoke { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %call2) - to label %invoke.cont3 unwind label %lpad - -invoke.cont3: ; preds = %invoke.cont - %2 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 0 - %3 = extractvalue { ptr, ptr } %call4, 0 - store ptr %3, ptr %2, align 8 - %4 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 1 - %5 = extractvalue { ptr, ptr } %call4, 1 - store ptr %5, ptr %4, align 8 - %second = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 1 - %6 = load ptr, ptr %second, align 8 - %tobool = icmp ne ptr %6, null - br i1 %tobool, label %if.then, label %if.end - -if.then: ; preds = %invoke.cont3 - %first = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 0 - %7 = load ptr, ptr %first, align 8 - %second5 = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 1 - %8 = load ptr, ptr %second5, align 8 - %9 = load ptr, ptr %__z, align 8 - %call7 = invoke ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSB_PSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %7, ptr noundef %8, ptr noundef %9) - to label %invoke.cont6 unwind label %lpad - -invoke.cont6: ; preds = %if.then - %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 - store ptr %call7, ptr %coerce.dive, align 8 - store i8 1, ptr %ref.tmp8, align 1 - invoke void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8) - to label %invoke.cont9 unwind label %lpad - -invoke.cont9: ; preds = %invoke.cont6 - br label %return - -lpad: ; preds = %if.end, %invoke.cont6, %if.then, %invoke.cont, %entry - %10 = landingpad { ptr, i32 } - catch ptr null - %11 = extractvalue { ptr, i32 } %10, 0 - store ptr %11, ptr %exn.slot, align 8 - %12 = extractvalue { ptr, i32 } %10, 1 - store i32 %12, ptr %ehselector.slot, align 4 - br label %catch - -catch: ; preds = %lpad - %exn = load ptr, ptr %exn.slot, align 8 - %13 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %14 = load ptr, ptr %__z, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %14) #5 - invoke void @__cxa_rethrow() #16 - to label %unreachable unwind label %lpad14 - -if.end: ; preds = %invoke.cont3 - %15 = load ptr, ptr %__z, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %15) #5 - %first11 = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 0 - %16 = load ptr, ptr %first11, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp10, ptr noundef %16) #5 - store i8 0, ptr %ref.tmp12, align 1 - invoke void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp10, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp12) - to label %invoke.cont13 unwind label %lpad - -invoke.cont13: ; preds = %if.end - br label %return - -lpad14: ; preds = %catch - %17 = landingpad { ptr, i32 } - cleanup - %18 = extractvalue { ptr, i32 } %17, 0 - store ptr %18, ptr %exn.slot, align 8 - %19 = extractvalue { ptr, i32 } %17, 1 - store i32 %19, ptr %ehselector.slot, align 4 - invoke void @__cxa_end_catch() - to label %invoke.cont15 unwind label %terminate.lpad - -invoke.cont15: ; preds = %lpad14 - br label %eh.resume - -try.cont: ; No predecessors! - call void @llvm.trap() - unreachable - -return: ; preds = %invoke.cont13, %invoke.cont9 - %20 = load { ptr, i8 }, ptr %retval, align 8 - ret { ptr, i8 } %20 - -eh.resume: ; preds = %invoke.cont15 - %exn16 = load ptr, ptr %exn.slot, align 8 - %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn16, 0 - %lpad.val17 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val17 - -terminate.lpad: ; preds = %lpad14 - %21 = landingpad { ptr, i32 } - catch ptr null - %22 = extractvalue { ptr, i32 } %21, 0 - call void @__clang_call_terminate(ptr %22) #15 - unreachable + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__x.addr, align 8 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11lower_boundERS1_(ptr noundef nonnull align 8 dereferenceable(48) %_M_t, ptr noundef nonnull align 4 dereferenceable(4) %0) + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call, ptr %coerce.dive, align 8 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive2, align 8 + ret ptr %1 +} -unreachable: ; preds = %catch - unreachable +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKi1AEES6_(ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) #2 comdat { +entry: + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %0, i32 0, i32 0 + %1 = load ptr, ptr %_M_node, align 8 + %2 = load ptr, ptr %__y.addr, align 8 + %_M_node1 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %2, i32 0, i32 0 + %3 = load ptr, ptr %_M_node1, align 8 + %cmp = icmp eq ptr %1, %3 + ret i1 %cmp } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_create_nodeIJS0_IiS2_EEEEPSt13_Rb_tree_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__tmp = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) - store ptr %call, ptr %__tmp, align 8 - %0 = load ptr, ptr %__tmp, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_construct_nodeIJS0_IiS2_EEEEvPSt13_Rb_tree_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(16) %1) - %2 = load ptr, ptr %__tmp, align 8 - ret ptr %2 + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call, ptr %coerce.dive, align 8 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive2, align 8 + ret ptr %0 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +define linkonce_odr dso_local void @_ZNKSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #0 comdat align 2 { entry: - %retval = alloca %"struct.std::pair.4", align 8 %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 - %__x = alloca ptr, align 8 - %__y = alloca ptr, align 8 - %__comp = alloca i8, align 1 - %__j = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp20 = alloca ptr, align 8 + %undef.agg.tmp = alloca %"struct.std::less", align 1 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + call void @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 4 dereferenceable(4) %__y) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %1 = load i32, ptr %0, align 4 + %2 = load ptr, ptr %__y.addr, align 8 + %3 = load i32, ptr %2, align 4 + %cmp = icmp slt i32 %1, %3 + ret i1 %cmp +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKi1AEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + %call = call noundef ptr @_ZNSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) + ret ptr %call +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt3mapIi1ASt4lessIiESaISt4pairIKiS0_EEE12emplace_hintIJS3_IiS0_EEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr %__pos.coerce, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %__pos = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + %agg.tmp = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %__pos, i32 0, i32 0 + store ptr %__pos.coerce, ptr %coerce.dive, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %__pos, i64 8, i1 false) + %0 = load ptr, ptr %__args.addr, align 8 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %agg.tmp, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive2, align 8 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE22_M_emplace_hint_uniqueIJS0_IiS2_EEEESt17_Rb_tree_iteratorIS3_ESt23_Rb_tree_const_iteratorIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %_M_t, ptr %1, ptr noundef nonnull align 8 dereferenceable(16) %0) + %coerce.dive3 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call, ptr %coerce.dive3, align 8 + %coerce.dive4 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %2 = load ptr, ptr %coerce.dive4, align 8 + ret ptr %2 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7 + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IRS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__x.addr, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %first, ptr align 8 %0, i64 8, i1 false) + %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__y.addr, align 8 + %2 = load i8, ptr %1, align 1 + %tobool = trunc i8 %2 to i1 + %frombool = zext i1 %tobool to i8 + store i8 %frombool, ptr %second, align 8 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11lower_boundERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - store ptr %call, ptr %__x, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - store ptr %call2, ptr %__y, align 8 - store i8 1, ptr %__comp, align 1 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %0 = load ptr, ptr %__k.addr, align 8 + %call3 = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_EPSt18_Rb_tree_node_baseRS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call, ptr noundef %call2, ptr noundef nonnull align 4 dereferenceable(4) %0) + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call3, ptr %coerce.dive, align 8 + %coerce.dive4 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive4, align 8 + ret ptr %1 +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS3_EPSt18_Rb_tree_node_baseRS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__x, ptr noundef %__y, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 br label %while.cond -while.cond: ; preds = %cond.end, %entry - %0 = load ptr, ptr %__x, align 8 +while.cond: ; preds = %if.end, %entry + %0 = load ptr, ptr %__x.addr, align 8 %cmp = icmp ne ptr %0, null br i1 %cmp, label %while.body, label %while.end while.body: ; preds = %while.cond - %1 = load ptr, ptr %__x, align 8 - store ptr %1, ptr %__y, align 8 %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %1 = load ptr, ptr %__x.addr, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %1) %2 = load ptr, ptr %__k.addr, align 8 - %3 = load ptr, ptr %__x, align 8 - %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %3) - %call4 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %call3) - %frombool = zext i1 %call4 to i8 - store i8 %frombool, ptr %__comp, align 1 - %4 = load i8, ptr %__comp, align 1 - %tobool = trunc i8 %4 to i1 - br i1 %tobool, label %cond.true, label %cond.false + %call2 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call, ptr noundef nonnull align 4 dereferenceable(4) %2) + br i1 %call2, label %if.else, label %if.then + +if.then: ; preds = %while.body + %3 = load ptr, ptr %__x.addr, align 8 + store ptr %3, ptr %__y.addr, align 8 + %4 = load ptr, ptr %__x.addr, align 8 + %call3 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %4) #13 + store ptr %call3, ptr %__x.addr, align 8 + br label %if.end + +if.else: ; preds = %while.body + %5 = load ptr, ptr %__x.addr, align 8 + %call4 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %5) #13 + store ptr %call4, ptr %__x.addr, align 8 + br label %if.end + +if.end: ; preds = %if.else, %if.then + br label %while.cond, !llvm.loop !8 + +while.end: ; preds = %while.cond + %6 = load ptr, ptr %__y.addr, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %6) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %7 = load ptr, ptr %coerce.dive, align 8 + ret ptr %7 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + ret ptr %_M_header +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %__x) #0 comdat align 2 { +entry: + %__x.addr = alloca ptr, align 8 + %ref.tmp = alloca %"struct.std::_Select1st", align 1 + store ptr %__x, ptr %__x.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %call = call noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) + %call1 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKi1AEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(16) %call) + ret ptr %call1 +} + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__x.addr, align 8 + store ptr %0, ptr %_M_node, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKi1AEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %first = getelementptr inbounds %"struct.std::pair.2", ptr %0, i32 0, i32 0 + ret ptr %first +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #13 + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_membuf", ptr %this1, i32 0, i32 0 + ret ptr %_M_storage +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_header) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive, align 8 + ret ptr %0 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE22_M_emplace_hint_uniqueIJS0_IiS2_EEEESt17_Rb_tree_iteratorIS3_ESt23_Rb_tree_const_iteratorIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr %__pos.coerce, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %__pos = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + %__z = alloca %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", align 8 + %__res = alloca %"struct.std::pair.4", align 8 + %agg.tmp = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %exn.slot = alloca ptr, align 8 + %ehselector.slot = alloca i32, align 4 + %agg.tmp5 = alloca %"struct.std::pair.4", align 8 + %cleanup.dest.slot = alloca i32, align 4 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %__pos, i32 0, i32 0 + store ptr %__pos.coerce, ptr %coerce.dive, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_nodeC2IJS0_IiS2_EEEERS9_DpOT_(ptr noundef nonnull align 8 dereferenceable(16) %__z, ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 8 dereferenceable(16) %0) + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %__pos, i64 8, i1 false) + %call = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_node6_M_keyEv(ptr noundef nonnull align 8 dereferenceable(16) %__z) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %entry + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %agg.tmp, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive2, align 8 + %call4 = invoke { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS3_ERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr %1, ptr noundef nonnull align 4 dereferenceable(4) %call) + to label %invoke.cont3 unwind label %lpad + +invoke.cont3: ; preds = %invoke.cont + %2 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 0 + %3 = extractvalue { ptr, ptr } %call4, 0 + store ptr %3, ptr %2, align 8 + %4 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 1 + %5 = extractvalue { ptr, ptr } %call4, 1 + store ptr %5, ptr %4, align 8 + %second = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 1 + %6 = load ptr, ptr %second, align 8 + %tobool = icmp ne ptr %6, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %invoke.cont3 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp5, ptr align 8 %__res, i64 16, i1 false) + %7 = getelementptr inbounds { ptr, ptr }, ptr %agg.tmp5, i32 0, i32 0 + %8 = load ptr, ptr %7, align 8 + %9 = getelementptr inbounds { ptr, ptr }, ptr %agg.tmp5, i32 0, i32 1 + %10 = load ptr, ptr %9, align 8 + %call7 = invoke ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_node9_M_insertES0_IPSt18_Rb_tree_node_baseSC_E(ptr noundef nonnull align 8 dereferenceable(16) %__z, ptr %8, ptr %10) + to label %invoke.cont6 unwind label %lpad + +invoke.cont6: ; preds = %if.then + %coerce.dive8 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call7, ptr %coerce.dive8, align 8 + store i32 1, ptr %cleanup.dest.slot, align 4 + br label %cleanup + +lpad: ; preds = %if.then, %invoke.cont, %entry + %11 = landingpad { ptr, i32 } + cleanup + %12 = extractvalue { ptr, i32 } %11, 0 + store ptr %12, ptr %exn.slot, align 8 + %13 = extractvalue { ptr, i32 } %11, 1 + store i32 %13, ptr %ehselector.slot, align 4 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__z) #13 + br label %eh.resume + +if.end: ; preds = %invoke.cont3 + %first = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 0 + %14 = load ptr, ptr %first, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %14) #13 + store i32 1, ptr %cleanup.dest.slot, align 4 + br label %cleanup + +cleanup: ; preds = %if.end, %invoke.cont6 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__z) #13 + %coerce.dive9 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %15 = load ptr, ptr %coerce.dive9, align 8 + ret ptr %15 + +eh.resume: ; preds = %lpad + %exn = load ptr, ptr %exn.slot, align 8 + %sel = load i32, ptr %ehselector.slot, align 4 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn, 0 + %lpad.val10 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val10 +} + +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_nodeC2IJS0_IiS2_EEEERS9_DpOT_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(48) %__t, ptr noundef nonnull align 8 dereferenceable(16) %__args) unnamed_addr #8 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__t.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__t, ptr %__t.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_t = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__t.addr, align 8 + store ptr %0, ptr %_M_t, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__t.addr, align 8 + %2 = load ptr, ptr %__args.addr, align 8 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_create_nodeIJS0_IiS2_EEEEPSt13_Rb_tree_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(16) %2) + store ptr %call, ptr %_M_node, align 8 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS3_ERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr %__position.coerce, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::pair.4", align 8 + %__position = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + %__pos = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp = alloca ptr, align 8 + %__before = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp37 = alloca ptr, align 8 + %__after = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp55 = alloca ptr, align 8 + %ref.tmp69 = alloca ptr, align 8 + %ref.tmp78 = alloca ptr, align 8 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %__position, i32 0, i32 0 + store ptr %__position.coerce, ptr %coerce.dive, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKi1AEE13_M_const_castEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #13 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + store ptr %call, ptr %coerce.dive2, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + %call3 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %cmp = icmp eq ptr %0, %call3 + br i1 %cmp, label %if.then, label %if.else12 -cond.true: ; preds = %while.body - %5 = load ptr, ptr %__x, align 8 - %call5 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %5) #5 - br label %cond.end +if.then: ; preds = %entry + %call4 = call noundef i64 @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %cmp5 = icmp ugt i64 %call4, 0 + br i1 %cmp5, label %land.lhs.true, label %if.else -cond.false: ; preds = %while.body - %6 = load ptr, ptr %__x, align 8 - %call6 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %6) #5 - br label %cond.end +land.lhs.true: ; preds = %if.then + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %call6 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %1 = load ptr, ptr %call6, align 8 + %call7 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %1) + %2 = load ptr, ptr %__k.addr, align 8 + %call8 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call7, ptr noundef nonnull align 4 dereferenceable(4) %2) + br i1 %call8, label %if.then9, label %if.else -cond.end: ; preds = %cond.false, %cond.true - %cond = phi ptr [ %call5, %cond.true ], [ %call6, %cond.false ] - store ptr %cond, ptr %__x, align 8 - br label %while.cond, !llvm.loop !8 +if.then9: ; preds = %land.lhs.true + store ptr null, ptr %ref.tmp, align 8 + %call10 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %call10) + br label %return -while.end: ; preds = %while.cond - %7 = load ptr, ptr %__y, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %7) #5 - %8 = load i8, ptr %__comp, align 1 - %tobool7 = trunc i8 %8 to i1 - br i1 %tobool7, label %if.then, label %if.end12 +if.else: ; preds = %land.lhs.true, %if.then + %3 = load ptr, ptr %__k.addr, align 8 + %call11 = call { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %3) + %4 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 0 + %5 = extractvalue { ptr, ptr } %call11, 0 + store ptr %5, ptr %4, align 8 + %6 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 1 + %7 = extractvalue { ptr, ptr } %call11, 1 + store ptr %7, ptr %6, align 8 + br label %return -if.then: ; preds = %while.end - %call8 = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 - store ptr %call8, ptr %coerce.dive, align 8 - %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKi1AEES6_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 - br i1 %call9, label %if.then10, label %if.else +if.else12: ; preds = %entry + %_M_impl13 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare14 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl13, i32 0, i32 0 + %8 = load ptr, ptr %__k.addr, align 8 + %_M_node15 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %9 = load ptr, ptr %_M_node15, align 8 + %call16 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %9) + %call17 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %call16) + br i1 %call17, label %if.then18, label %if.else44 + +if.then18: ; preds = %if.else12 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %__before, ptr align 8 %__pos, i64 8, i1 false) + %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %10 = load ptr, ptr %_M_node19, align 8 + %call20 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %11 = load ptr, ptr %call20, align 8 + %cmp21 = icmp eq ptr %10, %11 + br i1 %cmp21, label %if.then22, label %if.else25 + +if.then22: ; preds = %if.then18 + %call23 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %call24 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %call23, ptr noundef nonnull align 8 dereferenceable(8) %call24) + br label %return -if.then10: ; preds = %if.then - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) +if.else25: ; preds = %if.then18 + %_M_impl26 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare27 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl26, i32 0, i32 0 + %call28 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__before) #13 + %_M_node29 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %call28, i32 0, i32 0 + %12 = load ptr, ptr %_M_node29, align 8 + %call30 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %12) + %13 = load ptr, ptr %__k.addr, align 8 + %call31 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare27, ptr noundef nonnull align 4 dereferenceable(4) %call30, ptr noundef nonnull align 4 dereferenceable(4) %13) + br i1 %call31, label %if.then32, label %if.else42 + +if.then32: ; preds = %if.else25 + %_M_node33 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__before, i32 0, i32 0 + %14 = load ptr, ptr %_M_node33, align 8 + %call34 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %14) #13 + %cmp35 = icmp eq ptr %call34, null + br i1 %cmp35, label %if.then36, label %if.else39 + +if.then36: ; preds = %if.then32 + store ptr null, ptr %ref.tmp37, align 8 + %_M_node38 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__before, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp37, ptr noundef nonnull align 8 dereferenceable(8) %_M_node38) br label %return -if.else: ; preds = %if.then - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #5 - br label %if.end +if.else39: ; preds = %if.then32 + %_M_node40 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %_M_node41 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node40, ptr noundef nonnull align 8 dereferenceable(8) %_M_node41) + br label %return -if.end: ; preds = %if.else - br label %if.end12 +if.else42: ; preds = %if.else25 + %15 = load ptr, ptr %__k.addr, align 8 + %call43 = call { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %15) + %16 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 0 + %17 = extractvalue { ptr, ptr } %call43, 0 + store ptr %17, ptr %16, align 8 + %18 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 1 + %19 = extractvalue { ptr, ptr } %call43, 1 + store ptr %19, ptr %18, align 8 + br label %return -if.end12: ; preds = %if.end, %while.end - %_M_impl13 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %_M_key_compare14 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl13, i32 0, i32 0 - %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 - %9 = load ptr, ptr %_M_node, align 8 - %call15 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %9) - %10 = load ptr, ptr %__k.addr, align 8 - %call16 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef nonnull align 4 dereferenceable(4) %call15, ptr noundef nonnull align 4 dereferenceable(4) %10) - br i1 %call16, label %if.then17, label %if.end18 +if.else44: ; preds = %if.else12 + %_M_impl45 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare46 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl45, i32 0, i32 0 + %_M_node47 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %20 = load ptr, ptr %_M_node47, align 8 + %call48 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %20) + %21 = load ptr, ptr %__k.addr, align 8 + %call49 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare46, ptr noundef nonnull align 4 dereferenceable(4) %call48, ptr noundef nonnull align 4 dereferenceable(4) %21) + br i1 %call49, label %if.then50, label %if.else76 + +if.then50: ; preds = %if.else44 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %__after, ptr align 8 %__pos, i64 8, i1 false) + %_M_node51 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %22 = load ptr, ptr %_M_node51, align 8 + %call52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %23 = load ptr, ptr %call52, align 8 + %cmp53 = icmp eq ptr %22, %23 + br i1 %cmp53, label %if.then54, label %if.else57 + +if.then54: ; preds = %if.then50 + store ptr null, ptr %ref.tmp55, align 8 + %call56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp55, ptr noundef nonnull align 8 dereferenceable(8) %call56) + br label %return -if.then17: ; preds = %if.end12 - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) +if.else57: ; preds = %if.then50 + %_M_impl58 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare59 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl58, i32 0, i32 0 + %24 = load ptr, ptr %__k.addr, align 8 + %call60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %__after) #13 + %_M_node61 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %call60, i32 0, i32 0 + %25 = load ptr, ptr %_M_node61, align 8 + %call62 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %25) + %call63 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare59, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %call62) + br i1 %call63, label %if.then64, label %if.else74 + +if.then64: ; preds = %if.else57 + %_M_node65 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %26 = load ptr, ptr %_M_node65, align 8 + %call66 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %26) #13 + %cmp67 = icmp eq ptr %call66, null + br i1 %cmp67, label %if.then68, label %if.else71 + +if.then68: ; preds = %if.then64 + store ptr null, ptr %ref.tmp69, align 8 + %_M_node70 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp69, ptr noundef nonnull align 8 dereferenceable(8) %_M_node70) br label %return -if.end18: ; preds = %if.end12 - %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 - store ptr null, ptr %ref.tmp20, align 8 - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) +if.else71: ; preds = %if.then64 + %_M_node72 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__after, i32 0, i32 0 + %_M_node73 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__after, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node72, ptr noundef nonnull align 8 dereferenceable(8) %_M_node73) br label %return -return: ; preds = %if.end18, %if.then17, %if.then10 - %11 = load { ptr, ptr }, ptr %retval, align 8 - ret { ptr, ptr } %11 +if.else74: ; preds = %if.else57 + %27 = load ptr, ptr %__k.addr, align 8 + %call75 = call { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %27) + %28 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 0 + %29 = extractvalue { ptr, ptr } %call75, 0 + store ptr %29, ptr %28, align 8 + %30 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 1 + %31 = extractvalue { ptr, ptr } %call75, 1 + store ptr %31, ptr %30, align 8 + br label %return + +if.else76: ; preds = %if.else44 + %_M_node77 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + store ptr null, ptr %ref.tmp78, align 8 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node77, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp78) + br label %return + +return: ; preds = %if.else76, %if.else74, %if.else71, %if.then68, %if.then54, %if.else42, %if.else39, %if.then36, %if.then22, %if.else, %if.then9 + %32 = load { ptr, ptr }, ptr %retval, align 8 + ret { ptr, ptr } %32 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %__x) #0 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_node6_M_keyEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 { entry: - %__x.addr = alloca ptr, align 8 - %ref.tmp = alloca %"struct.std::_Select1st", align 1 - store ptr %__x, ptr %__x.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) - %call1 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKi1AEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(16) %call) - ret ptr %call1 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %0 = load ptr, ptr %_M_node, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %0) + ret ptr %call } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSB_PSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__x, ptr noundef %__p, ptr noundef %__z) #0 comdat align 2 { +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_node9_M_insertES0_IPSt18_Rb_tree_node_baseSC_E(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr %__p.coerce0, ptr %__p.coerce1) #0 comdat align 2 { entry: %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %__p = alloca %"struct.std::pair.4", align 8 %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__z.addr = alloca ptr, align 8 - %__insert_left = alloca i8, align 1 + %0 = getelementptr inbounds { ptr, ptr }, ptr %__p, i32 0, i32 0 + store ptr %__p.coerce0, ptr %0, align 8 + %1 = getelementptr inbounds { ptr, ptr }, ptr %__p, i32 0, i32 1 + store ptr %__p.coerce1, ptr %1, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__z, ptr %__z.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %cmp = icmp ne ptr %0, null - br i1 %cmp, label %lor.end, label %lor.lhs.false - -lor.lhs.false: ; preds = %entry - %1 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %cmp2 = icmp eq ptr %1, %call - br i1 %cmp2, label %lor.end, label %lor.rhs - -lor.rhs: ; preds = %lor.lhs.false - %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 - %2 = load ptr, ptr %__z.addr, align 8 - %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %2) - %3 = load ptr, ptr %__p.addr, align 8 - %call4 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %3) - %call5 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call3, ptr noundef nonnull align 4 dereferenceable(4) %call4) - br label %lor.end - -lor.end: ; preds = %lor.rhs, %lor.lhs.false, %entry - %4 = phi i1 [ true, %lor.lhs.false ], [ true, %entry ], [ %call5, %lor.rhs ] - %frombool = zext i1 %4 to i8 - store i8 %frombool, ptr %__insert_left, align 1 - %5 = load i8, ptr %__insert_left, align 1 - %tobool = trunc i8 %5 to i1 - %6 = load ptr, ptr %__z.addr, align 8 - %7 = load ptr, ptr %__p.addr, align 8 - %_M_impl6 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr = getelementptr inbounds i8, ptr %_M_impl6, i64 8 - %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %6, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #5 - %_M_impl7 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr8 = getelementptr inbounds i8, ptr %_M_impl7, i64 8 - %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr8, i32 0, i32 1 - %8 = load i64, ptr %_M_node_count, align 8 - %inc = add i64 %8, 1 - store i64 %inc, ptr %_M_node_count, align 8 - %9 = load ptr, ptr %__z.addr, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %9) #5 + %_M_t = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_t, align 8 + %first = getelementptr inbounds %"struct.std::pair.4", ptr %__p, i32 0, i32 0 + %3 = load ptr, ptr %first, align 8 + %second = getelementptr inbounds %"struct.std::pair.4", ptr %__p, i32 0, i32 1 + %4 = load ptr, ptr %second, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %5 = load ptr, ptr %_M_node, align 8 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSB_PSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 - %10 = load ptr, ptr %coerce.dive, align 8 - ret ptr %10 + store ptr %call, ptr %coerce.dive, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + store ptr null, ptr %_M_node2, align 8 + %coerce.dive3 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %6 = load ptr, ptr %coerce.dive3, align 8 + ret ptr %6 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKi1AEEbEC2IS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE10_Auto_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__x.addr, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr align 8 %first, ptr align 8 %0, i64 8, i1 false) - %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 - %1 = load ptr, ptr %__y.addr, align 8 - %2 = load i8, ptr %1, align 1 - %tobool = trunc i8 %2 to i1 - %frombool = zext i1 %tobool to i8 - store i8 %frombool, ptr %second, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %0 = load ptr, ptr %_M_node, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %entry + %_M_t = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 0 + %1 = load ptr, ptr %_M_t, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %2 = load ptr, ptr %_M_node2, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef %2) #13 + br label %if.end + +if.end: ; preds = %if.then, %entry ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #7 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_create_nodeIJS0_IiS2_EEEEPSt13_Rb_tree_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + %__tmp = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__x.addr, align 8 - store ptr %0, ptr %_M_node, align 8 - ret void + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) + store ptr %call, ptr %__tmp, align 8 + %0 = load ptr, ptr %__tmp, align 8 + %1 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_construct_nodeIJS0_IiS2_EEEEvPSt13_Rb_tree_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(16) %1) + %2 = load ptr, ptr %__tmp, align 8 + ret ptr %2 } -declare void @__cxa_rethrow() - -declare void @__cxa_end_catch() - -; Function Attrs: cold noreturn nounwind -declare void @llvm.trap() #10 - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE8allocateERS6_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - ret ptr %call2 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE17_M_construct_nodeIJS0_IiS2_EEEEvPSt13_Rb_tree_nodeIS3_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__node, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i7 = alloca ptr, align 8 + %__args.addr.i8 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__node.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 @@ -1330,41 +1717,56 @@ entry: store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__node.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 %1 = load ptr, ptr %__node.addr, align 8 %call2 = call noundef ptr @_ZNSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %1) %2 = load ptr, ptr %__args.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE9constructIS4_JS1_IiS3_EEEEvRS6_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2, ptr noundef nonnull align 8 dereferenceable(16) %2) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i7, align 8 + store ptr %5, ptr %__args.addr.i8, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i7, align 8 + %7 = load ptr, ptr %__args.addr.i8, align 8 + call void @_ZNSt4pairIKi1AEC2IiS1_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %7) + br label %_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE9constructIS4_JS1_IiS3_EEEEvRS6_PT_DpOT0_.exit + +_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE9constructIS4_JS1_IiS3_EEEEvRS6_PT_DpOT0_.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE9constructIS4_JS1_IiS3_EEEEvRS6_PT_DpOT0_.exit br label %try.cont -lpad: ; preds = %entry - %3 = landingpad { ptr, i32 } +lpad: ; No predecessors! + %8 = landingpad { ptr, i32 } catch ptr null - %4 = extractvalue { ptr, i32 } %3, 0 - store ptr %4, ptr %exn.slot, align 8 - %5 = extractvalue { ptr, i32 } %3, 1 - store i32 %5, ptr %ehselector.slot, align 4 + %9 = extractvalue { ptr, i32 } %8, 0 + store ptr %9, ptr %exn.slot, align 8 + %10 = extractvalue { ptr, i32 } %8, 1 + store i32 %10, ptr %ehselector.slot, align 4 br label %catch catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %6 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %7 = load ptr, ptr %__node.addr, align 8 - %8 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %8) #5 + %11 = call ptr @__cxa_begin_catch(ptr %exn) #13 + %12 = load ptr, ptr %__node.addr, align 8 + %13 = load ptr, ptr %__node.addr, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %13) #13 invoke void @__cxa_rethrow() #16 to label %unreachable unwind label %lpad3 lpad3: ; preds = %catch - %9 = landingpad { ptr, i32 } + %14 = landingpad { ptr, i32 } cleanup - %10 = extractvalue { ptr, i32 } %9, 0 - store ptr %10, ptr %exn.slot, align 8 - %11 = extractvalue { ptr, i32 } %9, 1 - store i32 %11, ptr %ehselector.slot, align 4 + %15 = extractvalue { ptr, i32 } %14, 0 + store ptr %15, ptr %exn.slot, align 8 + %16 = extractvalue { ptr, i32 } %14, 1 + store i32 %16, ptr %ehselector.slot, align 4 invoke void @__cxa_end_catch() to label %invoke.cont4 unwind label %terminate.lpad @@ -1382,10 +1784,10 @@ eh.resume: ; preds = %invoke.cont4 resume { ptr, i32 } %lpad.val6 terminate.lpad: ; preds = %lpad3 - %12 = landingpad { ptr, i32 } + %17 = landingpad { ptr, i32 } catch ptr null - %13 = extractvalue { ptr, i32 } %12, 0 - call void @__clang_call_terminate(ptr %13) #15 + %18 = extractvalue { ptr, i32 } %17, 0 + call void @__clang_call_terminate(ptr %18) #14 unreachable unreachable: ; preds = %catch @@ -1393,21 +1795,9 @@ unreachable: ; preds = %catch } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE8allocateERS6_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1416,70 +1806,46 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 192153584101141162 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 384307168202282325 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 48 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 48 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 192153584101141162 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #11 +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #12 +declare noundef nonnull ptr @_Znwm(i64 noundef) #10 -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKi1AEEEE9constructIS4_JS1_IiS3_EEEEvRS6_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE9constructIS5_JS2_IiS4_EEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(16) %2) - ret void -} +declare void @__cxa_rethrow() -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi1AEEE9constructIS5_JS2_IiS4_EEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt4pairIKi1AEC2IiS1_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %1) - ret void -} +declare void @__cxa_end_catch() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIKi1AEC2IiS1_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %__p) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIKi1AEC2IiS1_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %__p) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 @@ -1494,12 +1860,12 @@ entry: %second = getelementptr inbounds %"struct.std::pair.2", ptr %this1, i32 0, i32 1 %2 = load ptr, ptr %__p.addr, align 8 %second3 = getelementptr inbounds %"struct.std::pair.0", ptr %2, i32 0, i32 1 - call void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %second, ptr noundef nonnull align 8 dereferenceable(8) %second3) #5 + call void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %second, ptr noundef nonnull align 8 dereferenceable(8) %second3) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -1511,7 +1877,45 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +define linkonce_odr dso_local ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKi1AEE13_M_const_castEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive, align 8 + ret ptr %1 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 1 + %0 = load i64, ptr %_M_node_count, align 8 + ret i64 %0 +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %__x) #0 comdat align 2 { +entry: + %__x.addr = alloca ptr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %0) + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1519,48 +1923,141 @@ entry: %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - ret ptr %_M_header + %_M_right = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 3 + ret ptr %_M_right } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 4 dereferenceable(4) %__y) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 + %__a.addr = alloca ptr, align 8 + %__b.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + store ptr %__b, ptr %__b.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %1 = load i32, ptr %0, align 4 - %2 = load ptr, ptr %__y.addr, align 8 - %3 = load i32, ptr %2, align 4 - %cmp = icmp slt i32 %1, %3 - ret i1 %cmp + %first = getelementptr inbounds %"struct.std::pair.4", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__a.addr, align 8 + %1 = load ptr, ptr %0, align 8 + store ptr %1, ptr %first, align 8 + %second = getelementptr inbounds %"struct.std::pair.4", ptr %this1, i32 0, i32 1 + %2 = load ptr, ptr %__b.addr, align 8 + %3 = load ptr, ptr %2, align 8 + store ptr %3, ptr %second, align 8 + ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKi1AEES6_(ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) #2 comdat { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { entry: - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %0, i32 0, i32 0 - %1 = load ptr, ptr %_M_node, align 8 - %2 = load ptr, ptr %__y.addr, align 8 - %_M_node1 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %2, i32 0, i32 0 - %3 = load ptr, ptr %_M_node1, align 8 - %cmp = icmp eq ptr %1, %3 - ret i1 %cmp + %retval = alloca %"struct.std::pair.4", align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + %__x = alloca ptr, align 8 + %__y = alloca ptr, align 8 + %__comp = alloca i8, align 1 + %__j = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp20 = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + store ptr %call, ptr %__x, align 8 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + store ptr %call2, ptr %__y, align 8 + store i8 1, ptr %__comp, align 1 + br label %while.cond + +while.cond: ; preds = %cond.end, %entry + %0 = load ptr, ptr %__x, align 8 + %cmp = icmp ne ptr %0, null + br i1 %cmp, label %while.body, label %while.end + +while.body: ; preds = %while.cond + %1 = load ptr, ptr %__x, align 8 + store ptr %1, ptr %__y, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %2 = load ptr, ptr %__k.addr, align 8 + %3 = load ptr, ptr %__x, align 8 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %3) + %call4 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %call3) + %frombool = zext i1 %call4 to i8 + store i8 %frombool, ptr %__comp, align 1 + %4 = load i8, ptr %__comp, align 1 + %tobool = trunc i8 %4 to i1 + br i1 %tobool, label %cond.true, label %cond.false + +cond.true: ; preds = %while.body + %5 = load ptr, ptr %__x, align 8 + %call5 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %5) #13 + br label %cond.end + +cond.false: ; preds = %while.body + %6 = load ptr, ptr %__x, align 8 + %call6 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %6) #13 + br label %cond.end + +cond.end: ; preds = %cond.false, %cond.true + %cond = phi ptr [ %call5, %cond.true ], [ %call6, %cond.false ] + store ptr %cond, ptr %__x, align 8 + br label %while.cond, !llvm.loop !9 + +while.end: ; preds = %while.cond + %7 = load ptr, ptr %__y, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %7) #13 + %8 = load i8, ptr %__comp, align 1 + %tobool7 = trunc i8 %8 to i1 + br i1 %tobool7, label %if.then, label %if.end12 + +if.then: ; preds = %while.end + %call8 = call ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 + store ptr %call8, ptr %coerce.dive, align 8 + %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKi1AEES6_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #13 + br i1 %call9, label %if.then10, label %if.else + +if.then10: ; preds = %if.then + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) + br label %return + +if.else: ; preds = %if.then + %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #13 + br label %if.end + +if.end: ; preds = %if.else + br label %if.end12 + +if.end12: ; preds = %if.end, %while.end + %_M_impl13 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare14 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl13, i32 0, i32 0 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 + %9 = load ptr, ptr %_M_node, align 8 + %call15 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %9) + %10 = load ptr, ptr %__k.addr, align 8 + %call16 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef nonnull align 4 dereferenceable(4) %call15, ptr noundef nonnull align 4 dereferenceable(4) %10) + br i1 %call16, label %if.then17, label %if.end18 + +if.then17: ; preds = %if.end12 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) + br label %return + +if.end18: ; preds = %if.end12 + %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 + store ptr null, ptr %ref.tmp20, align 8 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) + br label %return + +return: ; preds = %if.end18, %if.then17, %if.then10 + %11 = load { ptr, ptr }, ptr %retval, align 8 + ret { ptr, ptr } %11 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: - %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -1568,15 +2065,11 @@ entry: %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 - %0 = load ptr, ptr %_M_left, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 - %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 - %1 = load ptr, ptr %coerce.dive, align 8 - ret ptr %1 + ret ptr %_M_left } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1610,18 +2103,40 @@ entry: ret ptr %this1 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %__x) #0 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: - %__x.addr = alloca ptr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %0) - ret ptr %call + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + %call = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %0) #18 + %_M_node2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + store ptr %call, ptr %_M_node2, align 8 + ret ptr %this1 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 + %0 = load ptr, ptr %_M_left, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive, align 8 + ret ptr %1 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKi1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1642,83 +2157,91 @@ entry: } ; Function Attrs: nounwind willreturn memory(read) -declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #13 +declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #11 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKi1AEEclERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { +; Function Attrs: nounwind willreturn memory(read) +declare noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef) #11 + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSB_PSt13_Rb_tree_nodeIS3_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__x, ptr noundef %__p, ptr noundef %__z) #0 comdat align 2 { entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 + %__p.addr = alloca ptr, align 8 + %__z.addr = alloca ptr, align 8 + %__insert_left = alloca i8, align 1 store ptr %this, ptr %this.addr, align 8 store ptr %__x, ptr %__x.addr, align 8 + store ptr %__p, ptr %__p.addr, align 8 + store ptr %__z, ptr %__z.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__x.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair.2", ptr %0, i32 0, i32 0 - ret ptr %first -} + %cmp = icmp ne ptr %0, null + br i1 %cmp, label %lor.end, label %lor.lhs.false -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 - ret ptr %call -} +lor.lhs.false: ; preds = %entry + %1 = load ptr, ptr %__p.addr, align 8 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %cmp2 = icmp eq ptr %1, %call + br i1 %cmp2, label %lor.end, label %lor.rhs -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 - ret ptr %call -} +lor.rhs: ; preds = %lor.lhs.false + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %2 = load ptr, ptr %__z.addr, align 8 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt13_Rb_tree_nodeIS3_E(ptr noundef %2) + %3 = load ptr, ptr %__p.addr, align 8 + %call4 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKi1AESt10_Select1stIS3_ESt4lessIiESaIS3_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %3) + %call5 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call3, ptr noundef nonnull align 4 dereferenceable(4) %call4) + br label %lor.end -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_membuf", ptr %this1, i32 0, i32 0 - ret ptr %_M_storage +lor.end: ; preds = %lor.rhs, %lor.lhs.false, %entry + %4 = phi i1 [ true, %lor.lhs.false ], [ true, %entry ], [ %call5, %lor.rhs ] + %frombool = zext i1 %4 to i8 + store i8 %frombool, ptr %__insert_left, align 1 + %5 = load i8, ptr %__insert_left, align 1 + %tobool = trunc i8 %5 to i1 + %6 = load ptr, ptr %__z.addr, align 8 + %7 = load ptr, ptr %__p.addr, align 8 + %_M_impl6 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl6, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %6, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #13 + %_M_impl7 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr8 = getelementptr inbounds i8, ptr %_M_impl7, i64 8 + %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr8, i32 0, i32 1 + %8 = load i64, ptr %_M_node_count, align 8 + %inc = add i64 %8, 1 + store i64 %inc, ptr %_M_node_count, align 8 + %9 = load ptr, ptr %__z.addr, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKi1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %9) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %10 = load ptr, ptr %coerce.dive, align 8 + ret ptr %10 } ; Function Attrs: nounwind -declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #14 - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_map_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} +declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #12 attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { cold noreturn nounwind } -attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #8 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } attributes #18 = { nounwind willreturn memory(read) } !llvm.module.flags = !{!0, !1, !2, !3, !4} @@ -1729,7 +2252,8 @@ attributes #18 = { nounwind willreturn memory(read) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} +!9 = distinct !{!9, !7} diff --git a/test_cases_bc/basic_cpp_tests/map-2.cpp.bc b/test_cases_bc/basic_cpp_tests/map-2.cpp.bc index 6316f096..61169824 100644 --- a/test_cases_bc/basic_cpp_tests/map-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/map-2.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/m target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::map" = type { %"class.std::_Rb_tree" } %"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Rb_tree_impl" } %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Rb_tree_impl" = type { %"struct.std::_Rb_tree_key_compare", %"struct.std::_Rb_tree_header" } @@ -19,8 +20,9 @@ target triple = "x86_64-unknown-linux-gnu" %"struct.std::pair.2" = type { i32, ptr } %"struct.std::_Rb_tree_node" = type { %"struct.std::_Rb_tree_node_base", %"struct.__gnu_cxx::__aligned_membuf" } %"struct.__gnu_cxx::__aligned_membuf" = type { [16 x i8] } -%"struct.std::pair.4" = type { ptr, ptr } %"struct.std::_Select1st" = type { i8 } +%"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node" = type { ptr, ptr } +%"struct.std::pair.4" = type { ptr, ptr } $_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEEC2Ev = comdat any @@ -42,14 +44,10 @@ $_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EEC2Ev = comd $_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EEC2Ev = comdat any -$_ZNSaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEC2Ev = comdat any - $_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev = comdat any $_ZNSt15_Rb_tree_headerC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEEC2Ev = comdat any - $_ZNSt15_Rb_tree_header8_M_resetEv = comdat any $__clang_call_terminate = comdat any @@ -74,79 +72,105 @@ $_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE15_M_destro $_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS5_E = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE7destroyIS6_EEvRS8_PT_ = comdat any - $_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE7destroyIS7_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE10deallocateERS8_PS7_m = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE10deallocateEPS7_m = comdat any + +$_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE9_M_mbeginEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE10deallocateEPS8_m = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev = comdat any -$_ZNSaISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev = comdat any +$_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE11lower_boundERS6_ = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev = comdat any +$_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKiPK1AEES8_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_emplace_uniqueIJS0_IiS4_EEEES0_ISt17_Rb_tree_iteratorIS5_EbEDpOT_ = comdat any +$_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE3endEv = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_create_nodeIJS0_IiS4_EEEEPSt13_Rb_tree_nodeIS5_EDpOT_ = comdat any +$_ZNKSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE8key_compEv = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_ = comdat any +$_ZNKSt4lessIiEclERKiS2_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E = comdat any +$_ZNKSt17_Rb_tree_iteratorISt4pairIKiPK1AEEdeEv = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E = comdat any +$_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE12emplace_hintIJS5_IiS2_EEEESt17_Rb_tree_iteratorIS7_ESt23_Rb_tree_const_iteratorIS7_EDpOT_ = comdat any + +$_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IRS6_bLb1EEEOT_OT0_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11lower_boundERS1_ = comdat any -$_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IS6_bLb1EEEOT_OT0_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS1_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E = comdat any $_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_get_nodeEv = comdat any +$_ZNKSt10_Select1stISt4pairIKiPK1AEEclERKS5_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_construct_nodeIJS0_IiS4_EEEEvPSt13_Rb_tree_nodeIS5_EDpOT_ = comdat any +$_ZNKSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE8allocateERS8_m = comdat any +$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE8allocateEmPKv = comdat any +$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv = comdat any -$_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE11_M_max_sizeEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE3endEv = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE9constructIS6_JS1_IiS5_EEEEvRS8_PT_DpOT0_ = comdat any +$_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8key_compEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE9constructIS7_JS2_IiS6_EEEEvPT_DpOT0_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE22_M_emplace_hint_uniqueIJS0_IiS4_EEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_ = comdat any -$_ZNSt4pairIKiPK1AEC2IiS3_Lb1EEEOS_IT_T0_E = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_nodeC2IJS0_IiS4_EEEERSB_DpOT_ = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS1_ = comdat any -$_ZNKSt4lessIiEclERKiS2_ = comdat any +$_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_node6_M_keyEv = comdat any -$_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKiPK1AEES8_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_node9_M_insertES0_IPSt18_Rb_tree_node_baseSE_E = comdat any -$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_nodeD2Ev = comdat any -$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_create_nodeIJS0_IiS4_EEEEPSt13_Rb_tree_nodeIS5_EDpOT_ = comdat any -$_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEmmEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_get_nodeEv = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_construct_nodeIJS0_IiS4_EEEEvPSt13_Rb_tree_nodeIS5_EDpOT_ = comdat any + +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE8allocateEmPKv = comdat any + +$_ZNSt4pairIKiPK1AEC2IiS3_Lb1EEEOS_IT_T0_E = comdat any + +$_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEE13_M_const_castEv = comdat any + +$_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE4sizeEv = comdat any $_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base = comdat any -$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_ = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_rightmostEv = comdat any -$_ZNKSt10_Select1stISt4pairIKiPK1AEEclERKS5_ = comdat any +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_ = comdat any -$_ZNKSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_ = comdat any -$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv = comdat any +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_leftmostEv = comdat any -$_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv = comdat any +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_ = comdat any + +$_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEmmEv = comdat any + +$_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEppEv = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv = comdat any + +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_ = comdat any + +$_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E = comdat any $_ZTV1A = comdat any @@ -157,15 +181,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_map_2.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -300,24 +321,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -338,8 +343,8 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #13 store i32 0, ptr %ref.tmp1, align 4 store ptr %a, ptr %ref.tmp2, align 8 invoke void @_ZNSt4pairIiPK1AEC2IiPS0_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp1, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp2) @@ -356,11 +361,11 @@ invoke.cont3: ; preds = %invoke.cont %2 = getelementptr inbounds { ptr, i8 }, ptr %coerce, i32 0, i32 1 %3 = extractvalue { ptr, i8 } %call, 1 store i8 %3, ptr %2, align 8 - %call5 = call ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 + %call5 = call ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp4, i32 0, i32 0 store ptr %call5, ptr %coerce.dive, align 8 - call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEEC2ERKSt17_Rb_tree_iteratorIS5_E(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp4) #5 - %call6 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEEC2ERKSt17_Rb_tree_iteratorIS5_E(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp4) #13 + %call6 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #13 %second = getelementptr inbounds %"struct.std::pair.2", ptr %call6, i32 0, i32 1 %4 = load ptr, ptr %second, align 8 store ptr %4, ptr %aptr, align 8 @@ -374,7 +379,7 @@ invoke.cont3: ; preds = %invoke.cont invoke.cont7: ; preds = %invoke.cont3 store i32 0, ptr %retval, align 4 - call void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 + call void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 %8 = load i32, ptr %retval, align 4 ret i32 %8 @@ -385,7 +390,7 @@ lpad: ; preds = %invoke.cont3, %invo store ptr %10, ptr %exn.slot, align 8 %11 = extractvalue { ptr, i32 } %9, 1 store i32 %11, ptr %ehselector.slot, align 4 - call void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #5 + call void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %amap) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -397,18 +402,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -423,24 +428,68 @@ entry: %retval = alloca %"struct.std::pair", align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 + %__k = alloca ptr, align 8 + %__i = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp5 = alloca %"struct.std::less", align 1 + %undef.agg.tmp = alloca %"struct.std::less", align 1 + %ref.tmp9 = alloca %"struct.std::_Rb_tree_iterator", align 8 + %agg.tmp = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %ref.tmp13 = alloca i8, align 1 + %ref.tmp14 = alloca i8, align 1 store ptr %this, ptr %this.addr, align 8 store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__x.addr, align 8 - %call = call { ptr, i8 } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_emplace_uniqueIJS0_IiS4_EEEES0_ISt17_Rb_tree_iteratorIS5_EbEDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %_M_t, ptr noundef nonnull align 8 dereferenceable(16) %0) - %1 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 0 - %2 = extractvalue { ptr, i8 } %call, 0 - store ptr %2, ptr %1, align 8 - %3 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 1 - %4 = extractvalue { ptr, i8 } %call, 1 - store i8 %4, ptr %3, align 8 - %5 = load { ptr, i8 }, ptr %retval, align 8 - ret { ptr, i8 } %5 + %first = getelementptr inbounds %"struct.std::pair.0", ptr %0, i32 0, i32 0 + store ptr %first, ptr %__k, align 8 + %1 = load ptr, ptr %__k, align 8 + %call = call ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE11lower_boundERS6_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %1) + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__i, i32 0, i32 0 + store ptr %call, ptr %coerce.dive, align 8 + %call2 = call ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %coerce.dive3 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 + store ptr %call2, ptr %coerce.dive3, align 8 + %call4 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKiPK1AEES8_(ptr noundef nonnull align 8 dereferenceable(8) %__i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #13 + br i1 %call4, label %lor.end, label %lor.rhs + +lor.rhs: ; preds = %entry + call void @_ZNKSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) + %2 = load ptr, ptr %__k, align 8 + %call6 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiPK1AEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %__i) #13 + %first7 = getelementptr inbounds %"struct.std::pair.2", ptr %call6, i32 0, i32 0 + %call8 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp5, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %first7) + br label %lor.end + +lor.end: ; preds = %lor.rhs, %entry + %3 = phi i1 [ true, %entry ], [ %call8, %lor.rhs ] + br i1 %3, label %if.then, label %if.end + +if.then: ; preds = %lor.end + call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEEC2ERKSt17_Rb_tree_iteratorIS5_E(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(8) %__i) #13 + %4 = load ptr, ptr %__x.addr, align 8 + %coerce.dive10 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %agg.tmp, i32 0, i32 0 + %5 = load ptr, ptr %coerce.dive10, align 8 + %call11 = call ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE12emplace_hintIJS5_IiS2_EEEESt17_Rb_tree_iteratorIS7_ESt23_Rb_tree_const_iteratorIS7_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr %5, ptr noundef nonnull align 8 dereferenceable(16) %4) + %coerce.dive12 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp9, i32 0, i32 0 + store ptr %call11, ptr %coerce.dive12, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %__i, ptr align 8 %ref.tmp9, i64 8, i1 false) + store i8 1, ptr %ref.tmp13, align 1 + call void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IRS6_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp13) + br label %return + +if.end: ; preds = %lor.end + store i8 0, ptr %ref.tmp14, align 1 + call void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IRS6_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp14) + br label %return + +return: ; preds = %if.end, %if.then + %6 = load { ptr, i8 }, ptr %retval, align 8 + ret { ptr, i8 } %6 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIiPK1AEC2IiPS0_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIiPK1AEC2IiPS0_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -470,7 +519,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 - %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 @@ -479,7 +528,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEEC2ERKSt17_Rb_tree_iteratorIS5_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEEC2ERKSt17_Rb_tree_iteratorIS5_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__it.addr = alloca ptr, align 8 @@ -507,52 +556,47 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 %0 = getelementptr inbounds i8, ptr %this1, i64 8 - call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -562,7 +606,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -581,19 +625,10 @@ terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt15_Rb_tree_header8_M_resetEv(ptr noundef nonnull align 8 dereferenceable(40) %this) #2 comdat align 2 { entry: @@ -617,9 +652,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #15 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #13 + call void @_ZSt9terminatev() #14 unreachable } @@ -642,25 +677,25 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 invoke void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #13 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -682,13 +717,13 @@ while.cond: ; preds = %while.body, %entry while.body: ; preds = %while.cond %1 = load ptr, ptr %__x.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #13 call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) %2 = load ptr, ptr %__x.addr, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #13 store ptr %call2, ptr %__y, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #13 %4 = load ptr, ptr %__y, align 8 store ptr %4, ptr %__x.addr, align 8 br label %while.cond, !llvm.loop !6 @@ -703,21 +738,20 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 - %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 - %0 = load ptr, ptr %_M_parent, align 8 - ret ptr %0 + %call = call noundef ptr @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE13_Rb_tree_implIS9_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void } @@ -752,75 +786,82 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #13 %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #5 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #13 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 %0 = load ptr, ptr %__p.addr, align 8 %call2 = invoke noundef ptr @_ZNSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE7destroyIS6_EEvRS8_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2) #5 - %1 = load ptr, ptr %__p.addr, align 8 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + store ptr %2, ptr %__p.addr.i3, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i3, align 8 + %4 = load ptr, ptr %__p.addr, align 8 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #14 unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 %0 = load ptr, ptr %__p.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE10deallocateERS8_PS7_m(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %0, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE10deallocateEPS7_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #15 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE7destroyIS6_EEvRS8_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE7destroyIS7_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: @@ -838,29 +879,17 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #13 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE7destroyIS7_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 ret ptr %call } @@ -874,52 +903,40 @@ entry: ret ptr %_M_storage } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE10deallocateERS8_PS7_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE10deallocateEPS8_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE10deallocateEPS8_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE10deallocateEPS7_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #9 +declare void @_ZdlPv(ptr noundef) #6 -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 + %0 = load ptr, ptr %_M_parent, align 8 + ret ptr %0 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -928,386 +945,756 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local { ptr, i8 } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_emplace_uniqueIJS0_IiS4_EEEES0_ISt17_Rb_tree_iteratorIS5_EbEDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE11lower_boundERS6_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x) #0 comdat align 2 { entry: - %retval = alloca %"struct.std::pair", align 8 + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__z = alloca ptr, align 8 - %__res = alloca %"struct.std::pair.4", align 8 - %exn.slot = alloca ptr, align 8 - %ehselector.slot = alloca i32, align 4 - %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp8 = alloca i8, align 1 - %ref.tmp10 = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp12 = alloca i8, align 1 + %__x.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__args.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_create_nodeIJS0_IiS4_EEEEPSt13_Rb_tree_nodeIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 8 dereferenceable(16) %0) - store ptr %call, ptr %__z, align 8 - %1 = load ptr, ptr %__z, align 8 - %call2 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %1) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - %call4 = invoke { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %call2) - to label %invoke.cont3 unwind label %lpad - -invoke.cont3: ; preds = %invoke.cont - %2 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 0 - %3 = extractvalue { ptr, ptr } %call4, 0 - store ptr %3, ptr %2, align 8 - %4 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 1 - %5 = extractvalue { ptr, ptr } %call4, 1 - store ptr %5, ptr %4, align 8 - %second = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 1 - %6 = load ptr, ptr %second, align 8 - %tobool = icmp ne ptr %6, null - br i1 %tobool, label %if.then, label %if.end - -if.then: ; preds = %invoke.cont3 - %first = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 0 - %7 = load ptr, ptr %first, align 8 - %second5 = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 1 - %8 = load ptr, ptr %second5, align 8 - %9 = load ptr, ptr %__z, align 8 - %call7 = invoke ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %7, ptr noundef %8, ptr noundef %9) - to label %invoke.cont6 unwind label %lpad - -invoke.cont6: ; preds = %if.then - %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 - store ptr %call7, ptr %coerce.dive, align 8 - store i8 1, ptr %ref.tmp8, align 1 - invoke void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IS6_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8) - to label %invoke.cont9 unwind label %lpad - -invoke.cont9: ; preds = %invoke.cont6 - br label %return - -lpad: ; preds = %if.end, %invoke.cont6, %if.then, %invoke.cont, %entry - %10 = landingpad { ptr, i32 } - catch ptr null - %11 = extractvalue { ptr, i32 } %10, 0 - store ptr %11, ptr %exn.slot, align 8 - %12 = extractvalue { ptr, i32 } %10, 1 - store i32 %12, ptr %ehselector.slot, align 4 - br label %catch - -catch: ; preds = %lpad - %exn = load ptr, ptr %exn.slot, align 8 - %13 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %14 = load ptr, ptr %__z, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %14) #5 - invoke void @__cxa_rethrow() #16 - to label %unreachable unwind label %lpad14 - -if.end: ; preds = %invoke.cont3 - %15 = load ptr, ptr %__z, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %15) #5 - %first11 = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 0 - %16 = load ptr, ptr %first11, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp10, ptr noundef %16) #5 - store i8 0, ptr %ref.tmp12, align 1 - invoke void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IS6_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp10, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp12) - to label %invoke.cont13 unwind label %lpad - -invoke.cont13: ; preds = %if.end - br label %return - -lpad14: ; preds = %catch - %17 = landingpad { ptr, i32 } - cleanup - %18 = extractvalue { ptr, i32 } %17, 0 - store ptr %18, ptr %exn.slot, align 8 - %19 = extractvalue { ptr, i32 } %17, 1 - store i32 %19, ptr %ehselector.slot, align 4 - invoke void @__cxa_end_catch() - to label %invoke.cont15 unwind label %terminate.lpad - -invoke.cont15: ; preds = %lpad14 - br label %eh.resume - -try.cont: ; No predecessors! - call void @llvm.trap() - unreachable - -return: ; preds = %invoke.cont13, %invoke.cont9 - %20 = load { ptr, i8 }, ptr %retval, align 8 - ret { ptr, i8 } %20 - -eh.resume: ; preds = %invoke.cont15 - %exn16 = load ptr, ptr %exn.slot, align 8 - %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn16, 0 - %lpad.val17 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val17 - -terminate.lpad: ; preds = %lpad14 - %21 = landingpad { ptr, i32 } - catch ptr null - %22 = extractvalue { ptr, i32 } %21, 0 - call void @__clang_call_terminate(ptr %22) #15 - unreachable + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__x.addr, align 8 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11lower_boundERS1_(ptr noundef nonnull align 8 dereferenceable(48) %_M_t, ptr noundef nonnull align 4 dereferenceable(4) %0) + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call, ptr %coerce.dive, align 8 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive2, align 8 + ret ptr %1 +} -unreachable: ; preds = %catch - unreachable +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKiPK1AEES8_(ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) #2 comdat { +entry: + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %0, i32 0, i32 0 + %1 = load ptr, ptr %_M_node, align 8 + %2 = load ptr, ptr %__y.addr, align 8 + %_M_node1 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %2, i32 0, i32 0 + %3 = load ptr, ptr %_M_node1, align 8 + %cmp = icmp eq ptr %1, %3 + ret i1 %cmp } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_create_nodeIJS0_IiS4_EEEEPSt13_Rb_tree_nodeIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__tmp = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) - store ptr %call, ptr %__tmp, align 8 - %0 = load ptr, ptr %__tmp, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_construct_nodeIJS0_IiS4_EEEEvPSt13_Rb_tree_nodeIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(16) %1) - %2 = load ptr, ptr %__tmp, align 8 - ret ptr %2 + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call, ptr %coerce.dive, align 8 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive2, align 8 + ret ptr %0 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +define linkonce_odr dso_local void @_ZNKSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #0 comdat align 2 { entry: - %retval = alloca %"struct.std::pair.4", align 8 %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 - %__x = alloca ptr, align 8 - %__y = alloca ptr, align 8 - %__comp = alloca i8, align 1 - %__j = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 - %ref.tmp20 = alloca ptr, align 8 + %undef.agg.tmp = alloca %"struct.std::less", align 1 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + call void @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 4 dereferenceable(4) %__y) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %1 = load i32, ptr %0, align 4 + %2 = load ptr, ptr %__y.addr, align 8 + %3 = load i32, ptr %2, align 4 + %cmp = icmp slt i32 %1, %3 + ret i1 %cmp +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiPK1AEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + %call = call noundef ptr @_ZNSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) + ret ptr %call +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt3mapIiPK1ASt4lessIiESaISt4pairIKiS2_EEE12emplace_hintIJS5_IiS2_EEEESt17_Rb_tree_iteratorIS7_ESt23_Rb_tree_const_iteratorIS7_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr %__pos.coerce, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %__pos = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + %agg.tmp = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %__pos, i32 0, i32 0 + store ptr %__pos.coerce, ptr %coerce.dive, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_t = getelementptr inbounds %"class.std::map", ptr %this1, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %__pos, i64 8, i1 false) + %0 = load ptr, ptr %__args.addr, align 8 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %agg.tmp, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive2, align 8 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE22_M_emplace_hint_uniqueIJS0_IiS4_EEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %_M_t, ptr %1, ptr noundef nonnull align 8 dereferenceable(16) %0) + %coerce.dive3 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call, ptr %coerce.dive3, align 8 + %coerce.dive4 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %2 = load ptr, ptr %coerce.dive4, align 8 + ret ptr %2 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7 + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IRS6_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__x.addr, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %first, ptr align 8 %0, i64 8, i1 false) + %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__y.addr, align 8 + %2 = load i8, ptr %1, align 1 + %tobool = trunc i8 %2 to i1 + %frombool = zext i1 %tobool to i8 + store i8 %frombool, ptr %second, align 8 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11lower_boundERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - store ptr %call, ptr %__x, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - store ptr %call2, ptr %__y, align 8 - store i8 1, ptr %__comp, align 1 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %0 = load ptr, ptr %__k.addr, align 8 + %call3 = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call, ptr noundef %call2, ptr noundef nonnull align 4 dereferenceable(4) %0) + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call3, ptr %coerce.dive, align 8 + %coerce.dive4 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive4, align 8 + ret ptr %1 +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__x, ptr noundef %__y, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 br label %while.cond -while.cond: ; preds = %cond.end, %entry - %0 = load ptr, ptr %__x, align 8 +while.cond: ; preds = %if.end, %entry + %0 = load ptr, ptr %__x.addr, align 8 %cmp = icmp ne ptr %0, null br i1 %cmp, label %while.body, label %while.end while.body: ; preds = %while.cond - %1 = load ptr, ptr %__x, align 8 - store ptr %1, ptr %__y, align 8 %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %1 = load ptr, ptr %__x.addr, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %1) %2 = load ptr, ptr %__k.addr, align 8 - %3 = load ptr, ptr %__x, align 8 - %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %3) - %call4 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %call3) - %frombool = zext i1 %call4 to i8 - store i8 %frombool, ptr %__comp, align 1 - %4 = load i8, ptr %__comp, align 1 - %tobool = trunc i8 %4 to i1 - br i1 %tobool, label %cond.true, label %cond.false + %call2 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call, ptr noundef nonnull align 4 dereferenceable(4) %2) + br i1 %call2, label %if.else, label %if.then + +if.then: ; preds = %while.body + %3 = load ptr, ptr %__x.addr, align 8 + store ptr %3, ptr %__y.addr, align 8 + %4 = load ptr, ptr %__x.addr, align 8 + %call3 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %4) #13 + store ptr %call3, ptr %__x.addr, align 8 + br label %if.end + +if.else: ; preds = %while.body + %5 = load ptr, ptr %__x.addr, align 8 + %call4 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %5) #13 + store ptr %call4, ptr %__x.addr, align 8 + br label %if.end + +if.end: ; preds = %if.else, %if.then + br label %while.cond, !llvm.loop !8 + +while.end: ; preds = %while.cond + %6 = load ptr, ptr %__y.addr, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %6) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %7 = load ptr, ptr %coerce.dive, align 8 + ret ptr %7 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + ret ptr %_M_header +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %__x) #0 comdat align 2 { +entry: + %__x.addr = alloca ptr, align 8 + %ref.tmp = alloca %"struct.std::_Select1st", align 1 + store ptr %__x, ptr %__x.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %call = call noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) + %call1 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKiPK1AEEclERKS5_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(16) %call) + ret ptr %call1 +} + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__x.addr, align 8 + store ptr %0, ptr %_M_node, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKiPK1AEEclERKS5_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %first = getelementptr inbounds %"struct.std::pair.2", ptr %0, i32 0, i32 0 + ret ptr %first +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #13 + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_membuf", ptr %this1, i32 0, i32 0 + ret ptr %_M_storage +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %_M_header) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive, align 8 + ret ptr %0 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8key_compEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE22_M_emplace_hint_uniqueIJS0_IiS4_EEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr %__pos.coerce, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %__pos = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + %__z = alloca %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", align 8 + %__res = alloca %"struct.std::pair.4", align 8 + %agg.tmp = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %exn.slot = alloca ptr, align 8 + %ehselector.slot = alloca i32, align 4 + %agg.tmp5 = alloca %"struct.std::pair.4", align 8 + %cleanup.dest.slot = alloca i32, align 4 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %__pos, i32 0, i32 0 + store ptr %__pos.coerce, ptr %coerce.dive, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_nodeC2IJS0_IiS4_EEEERSB_DpOT_(ptr noundef nonnull align 8 dereferenceable(16) %__z, ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 8 dereferenceable(16) %0) + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %__pos, i64 8, i1 false) + %call = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_node6_M_keyEv(ptr noundef nonnull align 8 dereferenceable(16) %__z) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %entry + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %agg.tmp, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive2, align 8 + %call4 = invoke { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr %1, ptr noundef nonnull align 4 dereferenceable(4) %call) + to label %invoke.cont3 unwind label %lpad + +invoke.cont3: ; preds = %invoke.cont + %2 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 0 + %3 = extractvalue { ptr, ptr } %call4, 0 + store ptr %3, ptr %2, align 8 + %4 = getelementptr inbounds { ptr, ptr }, ptr %__res, i32 0, i32 1 + %5 = extractvalue { ptr, ptr } %call4, 1 + store ptr %5, ptr %4, align 8 + %second = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 1 + %6 = load ptr, ptr %second, align 8 + %tobool = icmp ne ptr %6, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %invoke.cont3 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp5, ptr align 8 %__res, i64 16, i1 false) + %7 = getelementptr inbounds { ptr, ptr }, ptr %agg.tmp5, i32 0, i32 0 + %8 = load ptr, ptr %7, align 8 + %9 = getelementptr inbounds { ptr, ptr }, ptr %agg.tmp5, i32 0, i32 1 + %10 = load ptr, ptr %9, align 8 + %call7 = invoke ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_node9_M_insertES0_IPSt18_Rb_tree_node_baseSE_E(ptr noundef nonnull align 8 dereferenceable(16) %__z, ptr %8, ptr %10) + to label %invoke.cont6 unwind label %lpad + +invoke.cont6: ; preds = %if.then + %coerce.dive8 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + store ptr %call7, ptr %coerce.dive8, align 8 + store i32 1, ptr %cleanup.dest.slot, align 4 + br label %cleanup + +lpad: ; preds = %if.then, %invoke.cont, %entry + %11 = landingpad { ptr, i32 } + cleanup + %12 = extractvalue { ptr, i32 } %11, 0 + store ptr %12, ptr %exn.slot, align 8 + %13 = extractvalue { ptr, i32 } %11, 1 + store i32 %13, ptr %ehselector.slot, align 4 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__z) #13 + br label %eh.resume + +if.end: ; preds = %invoke.cont3 + %first = getelementptr inbounds %"struct.std::pair.4", ptr %__res, i32 0, i32 0 + %14 = load ptr, ptr %first, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %14) #13 + store i32 1, ptr %cleanup.dest.slot, align 4 + br label %cleanup + +cleanup: ; preds = %if.end, %invoke.cont6 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__z) #13 + %coerce.dive9 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %15 = load ptr, ptr %coerce.dive9, align 8 + ret ptr %15 + +eh.resume: ; preds = %lpad + %exn = load ptr, ptr %exn.slot, align 8 + %sel = load i32, ptr %ehselector.slot, align 4 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn, 0 + %lpad.val10 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val10 +} + +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_nodeC2IJS0_IiS4_EEEERSB_DpOT_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(48) %__t, ptr noundef nonnull align 8 dereferenceable(16) %__args) unnamed_addr #8 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__t.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__t, ptr %__t.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_t = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__t.addr, align 8 + store ptr %0, ptr %_M_t, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__t.addr, align 8 + %2 = load ptr, ptr %__args.addr, align 8 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_create_nodeIJS0_IiS4_EEEEPSt13_Rb_tree_nodeIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(16) %2) + store ptr %call, ptr %_M_node, align 8 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr %__position.coerce, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { +entry: + %retval = alloca %"struct.std::pair.4", align 8 + %__position = alloca %"struct.std::_Rb_tree_const_iterator", align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + %__pos = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp = alloca ptr, align 8 + %__before = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp37 = alloca ptr, align 8 + %__after = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp55 = alloca ptr, align 8 + %ref.tmp69 = alloca ptr, align 8 + %ref.tmp78 = alloca ptr, align 8 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %__position, i32 0, i32 0 + store ptr %__position.coerce, ptr %coerce.dive, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEE13_M_const_castEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #13 + %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + store ptr %call, ptr %coerce.dive2, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + %call3 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %cmp = icmp eq ptr %0, %call3 + br i1 %cmp, label %if.then, label %if.else12 -cond.true: ; preds = %while.body - %5 = load ptr, ptr %__x, align 8 - %call5 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %5) #5 - br label %cond.end +if.then: ; preds = %entry + %call4 = call noundef i64 @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %cmp5 = icmp ugt i64 %call4, 0 + br i1 %cmp5, label %land.lhs.true, label %if.else -cond.false: ; preds = %while.body - %6 = load ptr, ptr %__x, align 8 - %call6 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %6) #5 - br label %cond.end +land.lhs.true: ; preds = %if.then + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %call6 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %1 = load ptr, ptr %call6, align 8 + %call7 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %1) + %2 = load ptr, ptr %__k.addr, align 8 + %call8 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call7, ptr noundef nonnull align 4 dereferenceable(4) %2) + br i1 %call8, label %if.then9, label %if.else -cond.end: ; preds = %cond.false, %cond.true - %cond = phi ptr [ %call5, %cond.true ], [ %call6, %cond.false ] - store ptr %cond, ptr %__x, align 8 - br label %while.cond, !llvm.loop !8 +if.then9: ; preds = %land.lhs.true + store ptr null, ptr %ref.tmp, align 8 + %call10 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %call10) + br label %return -while.end: ; preds = %while.cond - %7 = load ptr, ptr %__y, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %7) #5 - %8 = load i8, ptr %__comp, align 1 - %tobool7 = trunc i8 %8 to i1 - br i1 %tobool7, label %if.then, label %if.end12 +if.else: ; preds = %land.lhs.true, %if.then + %3 = load ptr, ptr %__k.addr, align 8 + %call11 = call { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %3) + %4 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 0 + %5 = extractvalue { ptr, ptr } %call11, 0 + store ptr %5, ptr %4, align 8 + %6 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 1 + %7 = extractvalue { ptr, ptr } %call11, 1 + store ptr %7, ptr %6, align 8 + br label %return -if.then: ; preds = %while.end - %call8 = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 - store ptr %call8, ptr %coerce.dive, align 8 - %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKiPK1AEES8_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 - br i1 %call9, label %if.then10, label %if.else +if.else12: ; preds = %entry + %_M_impl13 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare14 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl13, i32 0, i32 0 + %8 = load ptr, ptr %__k.addr, align 8 + %_M_node15 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %9 = load ptr, ptr %_M_node15, align 8 + %call16 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %9) + %call17 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %call16) + br i1 %call17, label %if.then18, label %if.else44 + +if.then18: ; preds = %if.else12 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %__before, ptr align 8 %__pos, i64 8, i1 false) + %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %10 = load ptr, ptr %_M_node19, align 8 + %call20 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %11 = load ptr, ptr %call20, align 8 + %cmp21 = icmp eq ptr %10, %11 + br i1 %cmp21, label %if.then22, label %if.else25 + +if.then22: ; preds = %if.then18 + %call23 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %call24 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %call23, ptr noundef nonnull align 8 dereferenceable(8) %call24) + br label %return -if.then10: ; preds = %if.then - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) +if.else25: ; preds = %if.then18 + %_M_impl26 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare27 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl26, i32 0, i32 0 + %call28 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__before) #13 + %_M_node29 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %call28, i32 0, i32 0 + %12 = load ptr, ptr %_M_node29, align 8 + %call30 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %12) + %13 = load ptr, ptr %__k.addr, align 8 + %call31 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare27, ptr noundef nonnull align 4 dereferenceable(4) %call30, ptr noundef nonnull align 4 dereferenceable(4) %13) + br i1 %call31, label %if.then32, label %if.else42 + +if.then32: ; preds = %if.else25 + %_M_node33 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__before, i32 0, i32 0 + %14 = load ptr, ptr %_M_node33, align 8 + %call34 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %14) #13 + %cmp35 = icmp eq ptr %call34, null + br i1 %cmp35, label %if.then36, label %if.else39 + +if.then36: ; preds = %if.then32 + store ptr null, ptr %ref.tmp37, align 8 + %_M_node38 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__before, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp37, ptr noundef nonnull align 8 dereferenceable(8) %_M_node38) br label %return -if.else: ; preds = %if.then - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #5 - br label %if.end +if.else39: ; preds = %if.then32 + %_M_node40 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %_M_node41 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node40, ptr noundef nonnull align 8 dereferenceable(8) %_M_node41) + br label %return -if.end: ; preds = %if.else - br label %if.end12 +if.else42: ; preds = %if.else25 + %15 = load ptr, ptr %__k.addr, align 8 + %call43 = call { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %15) + %16 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 0 + %17 = extractvalue { ptr, ptr } %call43, 0 + store ptr %17, ptr %16, align 8 + %18 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 1 + %19 = extractvalue { ptr, ptr } %call43, 1 + store ptr %19, ptr %18, align 8 + br label %return -if.end12: ; preds = %if.end, %while.end - %_M_impl13 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %_M_key_compare14 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl13, i32 0, i32 0 - %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 - %9 = load ptr, ptr %_M_node, align 8 - %call15 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %9) - %10 = load ptr, ptr %__k.addr, align 8 - %call16 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef nonnull align 4 dereferenceable(4) %call15, ptr noundef nonnull align 4 dereferenceable(4) %10) - br i1 %call16, label %if.then17, label %if.end18 +if.else44: ; preds = %if.else12 + %_M_impl45 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare46 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl45, i32 0, i32 0 + %_M_node47 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %20 = load ptr, ptr %_M_node47, align 8 + %call48 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %20) + %21 = load ptr, ptr %__k.addr, align 8 + %call49 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare46, ptr noundef nonnull align 4 dereferenceable(4) %call48, ptr noundef nonnull align 4 dereferenceable(4) %21) + br i1 %call49, label %if.then50, label %if.else76 + +if.then50: ; preds = %if.else44 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %__after, ptr align 8 %__pos, i64 8, i1 false) + %_M_node51 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %22 = load ptr, ptr %_M_node51, align 8 + %call52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %23 = load ptr, ptr %call52, align 8 + %cmp53 = icmp eq ptr %22, %23 + br i1 %cmp53, label %if.then54, label %if.else57 + +if.then54: ; preds = %if.then50 + store ptr null, ptr %ref.tmp55, align 8 + %call56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp55, ptr noundef nonnull align 8 dereferenceable(8) %call56) + br label %return -if.then17: ; preds = %if.end12 - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) +if.else57: ; preds = %if.then50 + %_M_impl58 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare59 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl58, i32 0, i32 0 + %24 = load ptr, ptr %__k.addr, align 8 + %call60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %__after) #13 + %_M_node61 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %call60, i32 0, i32 0 + %25 = load ptr, ptr %_M_node61, align 8 + %call62 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %25) + %call63 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare59, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %call62) + br i1 %call63, label %if.then64, label %if.else74 + +if.then64: ; preds = %if.else57 + %_M_node65 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + %26 = load ptr, ptr %_M_node65, align 8 + %call66 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %26) #13 + %cmp67 = icmp eq ptr %call66, null + br i1 %cmp67, label %if.then68, label %if.else71 + +if.then68: ; preds = %if.then64 + store ptr null, ptr %ref.tmp69, align 8 + %_M_node70 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp69, ptr noundef nonnull align 8 dereferenceable(8) %_M_node70) br label %return -if.end18: ; preds = %if.end12 - %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 - store ptr null, ptr %ref.tmp20, align 8 - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) +if.else71: ; preds = %if.then64 + %_M_node72 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__after, i32 0, i32 0 + %_M_node73 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__after, i32 0, i32 0 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node72, ptr noundef nonnull align 8 dereferenceable(8) %_M_node73) br label %return -return: ; preds = %if.end18, %if.then17, %if.then10 - %11 = load { ptr, ptr }, ptr %retval, align 8 - ret { ptr, ptr } %11 +if.else74: ; preds = %if.else57 + %27 = load ptr, ptr %__k.addr, align 8 + %call75 = call { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef nonnull align 4 dereferenceable(4) %27) + %28 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 0 + %29 = extractvalue { ptr, ptr } %call75, 0 + store ptr %29, ptr %28, align 8 + %30 = getelementptr inbounds { ptr, ptr }, ptr %retval, i32 0, i32 1 + %31 = extractvalue { ptr, ptr } %call75, 1 + store ptr %31, ptr %30, align 8 + br label %return + +if.else76: ; preds = %if.else44 + %_M_node77 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__pos, i32 0, i32 0 + store ptr null, ptr %ref.tmp78, align 8 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node77, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp78) + br label %return + +return: ; preds = %if.else76, %if.else74, %if.else71, %if.then68, %if.then54, %if.else42, %if.else39, %if.then36, %if.then22, %if.else, %if.then9 + %32 = load { ptr, ptr }, ptr %retval, align 8 + ret { ptr, ptr } %32 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %__x) #0 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_node6_M_keyEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 { entry: - %__x.addr = alloca ptr, align 8 - %ref.tmp = alloca %"struct.std::_Select1st", align 1 - store ptr %__x, ptr %__x.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) - %call1 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKiPK1AEEclERKS5_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(16) %call) - ret ptr %call1 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %0 = load ptr, ptr %_M_node, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %0) + ret ptr %call } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__x, ptr noundef %__p, ptr noundef %__z) #0 comdat align 2 { +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_node9_M_insertES0_IPSt18_Rb_tree_node_baseSE_E(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr %__p.coerce0, ptr %__p.coerce1) #0 comdat align 2 { entry: %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %__p = alloca %"struct.std::pair.4", align 8 %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__z.addr = alloca ptr, align 8 - %__insert_left = alloca i8, align 1 + %0 = getelementptr inbounds { ptr, ptr }, ptr %__p, i32 0, i32 0 + store ptr %__p.coerce0, ptr %0, align 8 + %1 = getelementptr inbounds { ptr, ptr }, ptr %__p, i32 0, i32 1 + store ptr %__p.coerce1, ptr %1, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__z, ptr %__z.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %cmp = icmp ne ptr %0, null - br i1 %cmp, label %lor.end, label %lor.lhs.false - -lor.lhs.false: ; preds = %entry - %1 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %cmp2 = icmp eq ptr %1, %call - br i1 %cmp2, label %lor.end, label %lor.rhs - -lor.rhs: ; preds = %lor.lhs.false - %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 - %2 = load ptr, ptr %__z.addr, align 8 - %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %2) - %3 = load ptr, ptr %__p.addr, align 8 - %call4 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %3) - %call5 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call3, ptr noundef nonnull align 4 dereferenceable(4) %call4) - br label %lor.end - -lor.end: ; preds = %lor.rhs, %lor.lhs.false, %entry - %4 = phi i1 [ true, %lor.lhs.false ], [ true, %entry ], [ %call5, %lor.rhs ] - %frombool = zext i1 %4 to i8 - store i8 %frombool, ptr %__insert_left, align 1 - %5 = load i8, ptr %__insert_left, align 1 - %tobool = trunc i8 %5 to i1 - %6 = load ptr, ptr %__z.addr, align 8 - %7 = load ptr, ptr %__p.addr, align 8 - %_M_impl6 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr = getelementptr inbounds i8, ptr %_M_impl6, i64 8 - %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %6, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #5 - %_M_impl7 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr8 = getelementptr inbounds i8, ptr %_M_impl7, i64 8 - %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr8, i32 0, i32 1 - %8 = load i64, ptr %_M_node_count, align 8 - %inc = add i64 %8, 1 - store i64 %inc, ptr %_M_node_count, align 8 - %9 = load ptr, ptr %__z.addr, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %9) #5 + %_M_t = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_t, align 8 + %first = getelementptr inbounds %"struct.std::pair.4", ptr %__p, i32 0, i32 0 + %3 = load ptr, ptr %first, align 8 + %second = getelementptr inbounds %"struct.std::pair.4", ptr %__p, i32 0, i32 1 + %4 = load ptr, ptr %second, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %5 = load ptr, ptr %_M_node, align 8 + %call = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 - %10 = load ptr, ptr %coerce.dive, align 8 - ret ptr %10 + store ptr %call, ptr %coerce.dive, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + store ptr null, ptr %_M_node2, align 8 + %coerce.dive3 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %6 = load ptr, ptr %coerce.dive3, align 8 + ret ptr %6 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiPK1AEEbEC2IS6_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE10_Auto_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__x.addr, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr align 8 %first, ptr align 8 %0, i64 8, i1 false) - %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 - %1 = load ptr, ptr %__y.addr, align 8 - %2 = load i8, ptr %1, align 1 - %tobool = trunc i8 %2 to i1 - %frombool = zext i1 %tobool to i8 - store i8 %frombool, ptr %second, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %0 = load ptr, ptr %_M_node, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %entry + %_M_t = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 0 + %1 = load ptr, ptr %_M_t, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Rb_tree, std::_Select1st>, std::less>::_Auto_node", ptr %this1, i32 0, i32 1 + %2 = load ptr, ptr %_M_node2, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef %2) #13 + br label %if.end + +if.end: ; preds = %if.then, %entry ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #7 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_create_nodeIJS0_IiS4_EEEEPSt13_Rb_tree_nodeIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 + %__tmp = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__x.addr, align 8 - store ptr %0, ptr %_M_node, align 8 - ret void + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) + store ptr %call, ptr %__tmp, align 8 + %0 = load ptr, ptr %__tmp, align 8 + %1 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_construct_nodeIJS0_IiS4_EEEEvPSt13_Rb_tree_nodeIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(16) %1) + %2 = load ptr, ptr %__tmp, align 8 + ret ptr %2 } -declare void @__cxa_rethrow() - -declare void @__cxa_end_catch() - -; Function Attrs: cold noreturn nounwind -declare void @llvm.trap() #10 - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE8allocateERS8_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - ret ptr %call2 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE17_M_construct_nodeIJS0_IiS4_EEEEvPSt13_Rb_tree_nodeIS5_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__node, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i7 = alloca ptr, align 8 + %__args.addr.i8 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__node.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 @@ -1318,41 +1705,56 @@ entry: store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__node.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 %1 = load ptr, ptr %__node.addr, align 8 %call2 = call noundef ptr @_ZNSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %1) %2 = load ptr, ptr %__args.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE9constructIS6_JS1_IiS5_EEEEvRS8_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2, ptr noundef nonnull align 8 dereferenceable(16) %2) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i7, align 8 + store ptr %5, ptr %__args.addr.i8, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i7, align 8 + %7 = load ptr, ptr %__args.addr.i8, align 8 + call void @_ZNSt4pairIKiPK1AEC2IiS3_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %7) + br label %_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE9constructIS6_JS1_IiS5_EEEEvRS8_PT_DpOT0_.exit + +_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE9constructIS6_JS1_IiS5_EEEEvRS8_PT_DpOT0_.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE9constructIS6_JS1_IiS5_EEEEvRS8_PT_DpOT0_.exit br label %try.cont -lpad: ; preds = %entry - %3 = landingpad { ptr, i32 } +lpad: ; No predecessors! + %8 = landingpad { ptr, i32 } catch ptr null - %4 = extractvalue { ptr, i32 } %3, 0 - store ptr %4, ptr %exn.slot, align 8 - %5 = extractvalue { ptr, i32 } %3, 1 - store i32 %5, ptr %ehselector.slot, align 4 + %9 = extractvalue { ptr, i32 } %8, 0 + store ptr %9, ptr %exn.slot, align 8 + %10 = extractvalue { ptr, i32 } %8, 1 + store i32 %10, ptr %ehselector.slot, align 4 br label %catch catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %6 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %7 = load ptr, ptr %__node.addr, align 8 - %8 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %8) #5 + %11 = call ptr @__cxa_begin_catch(ptr %exn) #13 + %12 = load ptr, ptr %__node.addr, align 8 + %13 = load ptr, ptr %__node.addr, align 8 + call void @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %13) #13 invoke void @__cxa_rethrow() #16 to label %unreachable unwind label %lpad3 lpad3: ; preds = %catch - %9 = landingpad { ptr, i32 } + %14 = landingpad { ptr, i32 } cleanup - %10 = extractvalue { ptr, i32 } %9, 0 - store ptr %10, ptr %exn.slot, align 8 - %11 = extractvalue { ptr, i32 } %9, 1 - store i32 %11, ptr %ehselector.slot, align 4 + %15 = extractvalue { ptr, i32 } %14, 0 + store ptr %15, ptr %exn.slot, align 8 + %16 = extractvalue { ptr, i32 } %14, 1 + store i32 %16, ptr %ehselector.slot, align 4 invoke void @__cxa_end_catch() to label %invoke.cont4 unwind label %terminate.lpad @@ -1370,10 +1772,10 @@ eh.resume: ; preds = %invoke.cont4 resume { ptr, i32 } %lpad.val6 terminate.lpad: ; preds = %lpad3 - %12 = landingpad { ptr, i32 } + %17 = landingpad { ptr, i32 } catch ptr null - %13 = extractvalue { ptr, i32 } %12, 0 - call void @__clang_call_terminate(ptr %13) #15 + %18 = extractvalue { ptr, i32 } %17, 0 + call void @__clang_call_terminate(ptr %18) #14 unreachable unreachable: ; preds = %catch @@ -1381,21 +1783,9 @@ unreachable: ; preds = %catch } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE8allocateERS8_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1404,70 +1794,46 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 192153584101141162 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 384307168202282325 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 48 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 48 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 192153584101141162 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #11 +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #12 +declare noundef nonnull ptr @_Znwm(i64 noundef) #10 -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKiPK1AEEEE9constructIS6_JS1_IiS5_EEEEvRS8_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE9constructIS7_JS2_IiS6_EEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(16) %2) - ret void -} +declare void @__cxa_rethrow() -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiPK1AEEE9constructIS7_JS2_IiS6_EEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(16) %__args) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt4pairIKiPK1AEC2IiS3_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %1) - ret void -} +declare void @__cxa_end_catch() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIKiPK1AEC2IiS3_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %__p) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIKiPK1AEC2IiS3_Lb1EEEOS_IT_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %__p) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 @@ -1488,7 +1854,45 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +define linkonce_odr dso_local ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiPK1AEE13_M_const_castEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive, align 8 + ret ptr %1 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 1 + %0 = load i64, ptr %_M_node_count, align 8 + ret i64 %0 +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %__x) #0 comdat align 2 { +entry: + %__x.addr = alloca ptr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %0) + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE12_M_rightmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1496,48 +1900,141 @@ entry: %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - ret ptr %_M_header + %_M_right = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 3 + ret ptr %_M_right } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__x, ptr noundef nonnull align 4 dereferenceable(4) %__y) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 + %__a.addr = alloca ptr, align 8 + %__b.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + store ptr %__b, ptr %__b.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %1 = load i32, ptr %0, align 4 - %2 = load ptr, ptr %__y.addr, align 8 - %3 = load i32, ptr %2, align 4 - %cmp = icmp slt i32 %1, %3 - ret i1 %cmp + %first = getelementptr inbounds %"struct.std::pair.4", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__a.addr, align 8 + %1 = load ptr, ptr %0, align 8 + store ptr %1, ptr %first, align 8 + %second = getelementptr inbounds %"struct.std::pair.4", ptr %this1, i32 0, i32 1 + %2 = load ptr, ptr %__b.addr, align 8 + %3 = load ptr, ptr %2, align 8 + store ptr %3, ptr %second, align 8 + ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKiPK1AEES8_(ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) #2 comdat { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local { ptr, ptr } @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE24_M_get_insert_unique_posERS1_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 { entry: - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %0, i32 0, i32 0 - %1 = load ptr, ptr %_M_node, align 8 - %2 = load ptr, ptr %__y.addr, align 8 - %_M_node1 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %2, i32 0, i32 0 - %3 = load ptr, ptr %_M_node1, align 8 - %cmp = icmp eq ptr %1, %3 - ret i1 %cmp + %retval = alloca %"struct.std::pair.4", align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + %__x = alloca ptr, align 8 + %__y = alloca ptr, align 8 + %__comp = alloca i8, align 1 + %__j = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp = alloca %"struct.std::_Rb_tree_iterator", align 8 + %ref.tmp20 = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + store ptr %call, ptr %__x, align 8 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + store ptr %call2, ptr %__y, align 8 + store i8 1, ptr %__comp, align 1 + br label %while.cond + +while.cond: ; preds = %cond.end, %entry + %0 = load ptr, ptr %__x, align 8 + %cmp = icmp ne ptr %0, null + br i1 %cmp, label %while.body, label %while.end + +while.body: ; preds = %while.cond + %1 = load ptr, ptr %__x, align 8 + store ptr %1, ptr %__y, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %2 = load ptr, ptr %__k.addr, align 8 + %3 = load ptr, ptr %__x, align 8 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %3) + %call4 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %call3) + %frombool = zext i1 %call4 to i8 + store i8 %frombool, ptr %__comp, align 1 + %4 = load i8, ptr %__comp, align 1 + %tobool = trunc i8 %4 to i1 + br i1 %tobool, label %cond.true, label %cond.false + +cond.true: ; preds = %while.body + %5 = load ptr, ptr %__x, align 8 + %call5 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %5) #13 + br label %cond.end + +cond.false: ; preds = %while.body + %6 = load ptr, ptr %__x, align 8 + %call6 = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %6) #13 + br label %cond.end + +cond.end: ; preds = %cond.false, %cond.true + %cond = phi ptr [ %call5, %cond.true ], [ %call6, %cond.false ] + store ptr %cond, ptr %__x, align 8 + br label %while.cond, !llvm.loop !9 + +while.end: ; preds = %while.cond + %7 = load ptr, ptr %__y, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %7) #13 + %8 = load i8, ptr %__comp, align 1 + %tobool7 = trunc i8 %8 to i1 + br i1 %tobool7, label %if.then, label %if.end12 + +if.then: ; preds = %while.end + %call8 = call ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 + store ptr %call8, ptr %coerce.dive, align 8 + %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKiPK1AEES8_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #13 + br i1 %call9, label %if.then10, label %if.else + +if.then10: ; preds = %if.then + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) + br label %return + +if.else: ; preds = %if.then + %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #13 + br label %if.end + +if.end: ; preds = %if.else + br label %if.end12 + +if.end12: ; preds = %if.end, %while.end + %_M_impl13 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare14 = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl13, i32 0, i32 0 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 + %9 = load ptr, ptr %_M_node, align 8 + %call15 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %9) + %10 = load ptr, ptr %__k.addr, align 8 + %call16 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef nonnull align 4 dereferenceable(4) %call15, ptr noundef nonnull align 4 dereferenceable(4) %10) + br i1 %call16, label %if.then17, label %if.end18 + +if.then17: ; preds = %if.end12 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) + br label %return + +if.end18: ; preds = %if.end12 + %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 + store ptr null, ptr %ref.tmp20, align 8 + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) + br label %return + +return: ; preds = %if.end18, %if.then17, %if.then10 + %11 = load { ptr, ptr }, ptr %retval, align 8 + ret { ptr, ptr } %11 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE11_M_leftmostEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: - %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -1545,15 +2042,11 @@ entry: %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 - %0 = load ptr, ptr %_M_left, align 8 - call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 - %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 - %1 = load ptr, ptr %coerce.dive, align 8 - ret ptr %1 + ret ptr %_M_left } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_S4_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1587,18 +2080,40 @@ entry: ret ptr %this1 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %__x) #0 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: - %__x.addr = alloca ptr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %0) - ret ptr %call + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_node, align 8 + %call = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %0) #18 + %_M_node2 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %this1, i32 0, i32 0 + store ptr %call, ptr %_M_node2, align 8 + ret ptr %this1 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { +entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 + %0 = load ptr, ptr %_M_left, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %1 = load ptr, ptr %coerce.dive, align 8 + ret ptr %1 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIS_IKiPK1AEERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1619,83 +2134,91 @@ entry: } ; Function Attrs: nounwind willreturn memory(read) -declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #13 +declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #11 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt10_Select1stISt4pairIKiPK1AEEclERKS5_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { +; Function Attrs: nounwind willreturn memory(read) +declare noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef) #11 + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__x, ptr noundef %__p, ptr noundef %__z) #0 comdat align 2 { entry: + %retval = alloca %"struct.std::_Rb_tree_iterator", align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 + %__p.addr = alloca ptr, align 8 + %__z.addr = alloca ptr, align 8 + %__insert_left = alloca i8, align 1 store ptr %this, ptr %this.addr, align 8 store ptr %__x, ptr %__x.addr, align 8 + store ptr %__p, ptr %__p.addr, align 8 + store ptr %__z, ptr %__z.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__x.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair.2", ptr %0, i32 0, i32 0 - ret ptr %first -} + %cmp = icmp ne ptr %0, null + br i1 %cmp, label %lor.end, label %lor.lhs.false -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt13_Rb_tree_nodeISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 - ret ptr %call -} +lor.lhs.false: ; preds = %entry + %1 = load ptr, ptr %__p.addr, align 8 + %call = call noundef ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #13 + %cmp2 = icmp eq ptr %1, %call + br i1 %cmp2, label %lor.end, label %lor.rhs -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 - ret ptr %call -} +lor.rhs: ; preds = %lor.lhs.false + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %_M_key_compare = getelementptr inbounds %"struct.std::_Rb_tree_key_compare", ptr %_M_impl, i32 0, i32 0 + %2 = load ptr, ptr %__z.addr, align 8 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt13_Rb_tree_nodeIS5_E(ptr noundef %2) + %3 = load ptr, ptr %__p.addr, align 8 + %call4 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8_Rb_treeIiSt4pairIKiPK1AESt10_Select1stIS5_ESt4lessIiESaIS5_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %3) + %call5 = call noundef zeroext i1 @_ZNKSt4lessIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef nonnull align 4 dereferenceable(4) %call3, ptr noundef nonnull align 4 dereferenceable(4) %call4) + br label %lor.end -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_membufISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_membuf", ptr %this1, i32 0, i32 0 - ret ptr %_M_storage +lor.end: ; preds = %lor.rhs, %lor.lhs.false, %entry + %4 = phi i1 [ true, %lor.lhs.false ], [ true, %entry ], [ %call5, %lor.rhs ] + %frombool = zext i1 %4 to i8 + store i8 %frombool, ptr %__insert_left, align 1 + %5 = load i8, ptr %__insert_left, align 1 + %tobool = trunc i8 %5 to i1 + %6 = load ptr, ptr %__z.addr, align 8 + %7 = load ptr, ptr %__p.addr, align 8 + %_M_impl6 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl6, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %6, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #13 + %_M_impl7 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr8 = getelementptr inbounds i8, ptr %_M_impl7, i64 8 + %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr8, i32 0, i32 1 + %8 = load i64, ptr %_M_node_count, align 8 + %inc = add i64 %8, 1 + store i64 %inc, ptr %_M_node_count, align 8 + %9 = load ptr, ptr %__z.addr, align 8 + call void @_ZNSt17_Rb_tree_iteratorISt4pairIKiPK1AEEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %9) #13 + %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 + %10 = load ptr, ptr %coerce.dive, align 8 + ret ptr %10 } ; Function Attrs: nounwind -declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #14 - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_map_2.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} +declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #12 attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { cold noreturn nounwind } -attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #8 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } attributes #18 = { nounwind willreturn memory(read) } !llvm.module.flags = !{!0, !1, !2, !3, !4} @@ -1706,7 +2229,8 @@ attributes #18 = { nounwind willreturn memory(read) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} +!9 = distinct !{!9, !7} diff --git a/test_cases_bc/basic_cpp_tests/member-variable.cpp.bc b/test_cases_bc/basic_cpp_tests/member-variable.cpp.bc index 552fb8a3..1f2dfeb1 100644 --- a/test_cases_bc/basic_cpp_tests/member-variable.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/member-variable.cpp.bc @@ -320,4 +320,4 @@ attributes #9 = { builtin nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/namespace.cpp.bc b/test_cases_bc/basic_cpp_tests/namespace.cpp.bc index 25ad4935..a6af8d9a 100644 --- a/test_cases_bc/basic_cpp_tests/namespace.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/namespace.cpp.bc @@ -277,4 +277,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/pwc.cpp.bc b/test_cases_bc/basic_cpp_tests/pwc.cpp.bc index 33b12c1d..2b76dd2e 100644 --- a/test_cases_bc/basic_cpp_tests/pwc.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/pwc.cpp.bc @@ -287,6 +287,6 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/queue-1.cpp.bc b/test_cases_bc/basic_cpp_tests/queue-1.cpp.bc index ed68e626..1180deca 100644 --- a/test_cases_bc/basic_cpp_tests/queue-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/queue-1.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/q target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::queue" = type { %"class.std::deque" } %"class.std::deque" = type { %"class.std::_Deque_base" } %"class.std::_Deque_base" = type { %"struct.std::_Deque_base>::_Deque_impl" } @@ -51,31 +52,19 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m = comdat any - $_ZSt16__deque_buf_sizem = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m = comdat any +$_ZNSt15__new_allocatorI1AE10deallocateEPS0_m = comdat any $_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m = comdat any - -$_ZNSaIP1AED2Ev = comdat any - $_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIP1AEC2IS_EERKSaIT_E = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev = comdat any +$_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m = comdat any +$_ZNSt15__new_allocatorIP1AED2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AED2Ev = comdat any - -$_ZNSaI1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AED2Ev = comdat any +$_ZNSt15__new_allocatorI1AED2Ev = comdat any $_ZNSt5dequeI1ASaIS0_EEC2Ev = comdat any @@ -85,12 +74,8 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm = comdat any -$_ZNSaI1AEC2Ev = comdat any - $_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev = comdat any $_ZSt3maxImERKT_S2_S2_ = comdat any @@ -101,30 +86,18 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE15_M_create_nodesEPPS0_S4_ = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_ = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIP1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv = comdat any -$_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorI1AE8allocateEmPKv = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv = comdat any $_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_ = comdat any - $_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_ = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_ = comdat any - $_ZN1AC2ERKS_ = comdat any $_ZNKSt5dequeI1ASaIS0_EE4sizeEv = comdat any @@ -137,12 +110,8 @@ $_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_ = comdat any $_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv = comdat any - $_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPP1AS2_ET0_T_S4_S3_ = comdat any @@ -161,7 +130,9 @@ $_ZSt12__niter_baseIPP1AET_S3_ = comdat any $_ZSt14__copy_move_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any @@ -169,7 +140,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_ = comdat any $_ZNSt5dequeI1ASaIS0_EE5frontEv = comdat any @@ -177,12 +148,8 @@ $_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv = comdat any $_ZNSt5dequeI1ASaIS0_EE9pop_frontEv = comdat any -$_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_ = comdat any - $_ZNSt5dequeI1ASaIS0_EE16_M_pop_front_auxEv = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -192,8 +159,6 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @@ -201,7 +166,6 @@ $_ZTI1A = comdat any @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 @.str.3 = private unnamed_addr constant [48 x i8] c"cannot create std::deque larger than max_size()\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_queue_1.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -336,24 +300,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -369,7 +317,7 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #13 invoke void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEE4pushERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %aqueue, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad @@ -393,7 +341,7 @@ invoke.cont2: ; preds = %invoke.cont1 invoke.cont3: ; preds = %invoke.cont2 store i32 0, ptr %retval, align 4 - call void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #5 + call void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #13 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -404,7 +352,7 @@ lpad: ; preds = %invoke.cont2, %invo store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #5 + call void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -416,7 +364,7 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -428,7 +376,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -460,7 +408,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::queue", ptr %this1, i32 0, i32 0 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeI1ASaIS0_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeI1ASaIS0_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret ptr %call } @@ -471,18 +419,18 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::queue", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeI1ASaIS0_EE9pop_frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeI1ASaIS0_EE9pop_frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5queueI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::queue", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret void } @@ -501,28 +449,28 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %agg.tmp = alloca %"struct.std::_Deque_iterator", align 8 %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 invoke void @_ZNSt5dequeI1ASaIS0_EE15_M_destroy_dataESt15_Deque_iteratorIS0_RS0_PS0_ES6_RKS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -547,7 +495,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 ret void } @@ -561,7 +509,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #13 ret void } @@ -576,9 +524,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #9 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #15 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #13 + call void @_ZSt9terminatev() #14 unreachable } @@ -587,7 +535,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -608,24 +556,24 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #13 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #13 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -679,7 +627,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #13 br label %for.inc for.inc: ; preds = %for.body @@ -692,9 +640,13 @@ for.end: ; preds = %for.cond ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -703,37 +655,51 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #14 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -745,36 +711,26 @@ entry: to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - invoke void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont2 unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont2 invoke.cont2: ; preds = %invoke.cont ret void -terminate.lpad: ; preds = %invoke.cont, %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %entry + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #15 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #14 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef %__size) #2 comdat { entry: @@ -798,59 +754,40 @@ cond.end: ; preds = %cond.false, %cond.t } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 +declare void @_ZdlPv(ptr noundef) #7 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -864,44 +801,23 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -910,17 +826,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -929,10 +835,10 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #11 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8 ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -942,7 +848,7 @@ entry: } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 @@ -950,7 +856,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #13 invoke void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -964,7 +870,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -976,13 +882,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 ret void } @@ -1056,14 +967,14 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #13 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #13 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 @@ -1090,12 +1001,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #13 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #13 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -1129,7 +1040,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #15 + call void @__clang_call_terminate(ptr %26) #14 unreachable unreachable: ; preds = %catch @@ -1137,17 +1048,7 @@ unreachable: ; preds = %catch } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1157,23 +1058,14 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1219,9 +1111,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -1230,23 +1126,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i5 = invoke noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 + ret ptr %call.i5 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i4) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -1306,10 +1213,10 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #13 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #13 invoke void @__cxa_rethrow() #16 to label %unreachable unwind label %lpad2 @@ -1343,7 +1250,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #15 + call void @__clang_call_terminate(ptr %15) #14 unreachable unreachable: ; preds = %catch @@ -1371,7 +1278,7 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #13 %add.ptr = getelementptr inbounds %class.A, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 @@ -1379,21 +1286,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1402,64 +1297,62 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #12 +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #13 +declare noundef nonnull ptr @_Znwm(i64 noundef) #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1468,28 +1361,29 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1502,6 +1396,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1526,55 +1426,57 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #13 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %4, i32 1 + %9 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %9, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %10 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %10) br label %if.end if.end: ; preds = %if.else, %if.then ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #16 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #18 unreachable if.end: ; preds = %entry @@ -1592,44 +1494,40 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #13 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #5 + %8 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %8, i64 1 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #13 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %9 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 + store ptr %9, ptr %_M_cur17, align 8 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -1650,7 +1548,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 ret i64 %call } @@ -1660,13 +1558,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #13 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #12 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #11 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1712,7 +1610,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #13 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1723,69 +1621,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1816,16 +1717,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -1987,7 +1878,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #13 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -2002,14 +1893,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #13 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #13 ret void } @@ -2059,11 +1950,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #13 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #13 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #13 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2126,12 +2017,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2148,8 +2039,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2157,17 +2048,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #14 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #12 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2179,11 +2098,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #13 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #13 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #13 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2217,12 +2136,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2239,8 +2158,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2251,14 +2170,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2268,8 +2202,8 @@ entry: %ref.tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #5 + call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #13 ret ptr %call } @@ -2287,6 +2221,10 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE9pop_frontEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i10 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -2303,17 +2241,24 @@ entry: br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start5 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl4, i32 0, i32 2 %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start5, i32 0, i32 0 %2 = load ptr, ptr %_M_cur6, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %2) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i10, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i10, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 2 %_M_cur9 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start8, i32 0, i32 0 - %3 = load ptr, ptr %_M_cur9, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %3, i32 1 + %6 = load ptr, ptr %_M_cur9, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %6, i32 1 store ptr %incdec.ptr, ptr %_M_cur9, align 8 br label %if.end @@ -2328,99 +2273,79 @@ if.end: ; preds = %invoke.cont, %if.th ret void terminate.lpad: ; preds = %if.else - %4 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } catch ptr null - %5 = extractvalue { ptr, i32 } %4, 0 - call void @__clang_call_terminate(ptr %5) #15 + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE16_M_pop_front_auxEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i14 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start, i32 0, i32 0 %0 = load ptr, ptr %_M_cur, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %0) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + store ptr %2, ptr %__p.addr.i14, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i14, align 8 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start3 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start3, i32 0, i32 1 - %1 = load ptr, ptr %_M_first, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1) #5 + %4 = load ptr, ptr %_M_first, align 8 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #13 %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start5 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl4, i32 0, i32 2 %_M_impl6 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start7 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl6, i32 0, i32 2 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start7, i32 0, i32 3 - %2 = load ptr, ptr %_M_node, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start5, ptr noundef %add.ptr) #5 + %5 = load ptr, ptr %_M_node, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %5, i64 1 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start5, ptr noundef %add.ptr) #13 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 2 %_M_first10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start9, i32 0, i32 1 - %3 = load ptr, ptr %_M_first10, align 8 + %6 = load ptr, ptr %_M_first10, align 8 %_M_impl11 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start12 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl11, i32 0, i32 2 %_M_cur13 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start12, i32 0, i32 0 - store ptr %3, ptr %_M_cur13, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_queue_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() + store ptr %6, ptr %_M_cur13, align 8 ret void } attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #12 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } +attributes #18 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2430,7 +2355,7 @@ attributes #17 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/queue-2.cpp.bc b/test_cases_bc/basic_cpp_tests/queue-2.cpp.bc index 1f5219b5..10d4afd6 100644 --- a/test_cases_bc/basic_cpp_tests/queue-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/queue-2.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/q target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::queue" = type { %"class.std::deque" } %"class.std::deque" = type { %"class.std::_Deque_base" } %"class.std::_Deque_base" = type { %"struct.std::_Deque_base>::_Deque_impl" } @@ -50,31 +51,19 @@ $_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implD2Ev = comdat any $_ZNSt11_Deque_baseIP1ASaIS1_EE18_M_deallocate_nodeEPS1_ = comdat any -$_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m = comdat any - $_ZSt16__deque_buf_sizem = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m = comdat any +$_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m = comdat any $_ZNKSt11_Deque_baseIP1ASaIS1_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIPP1AEE10deallocateERS3_PS2_m = comdat any - -$_ZNSaIPP1AED2Ev = comdat any - $_ZNKSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIPP1AEC2IS0_EERKSaIT_E = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPP1AEC2Ev = comdat any +$_ZNSt15__new_allocatorIPP1AE10deallocateEPS2_m = comdat any -$_ZN9__gnu_cxx13new_allocatorIPP1AE10deallocateEPS3_m = comdat any +$_ZNSt15__new_allocatorIPP1AED2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIPP1AED2Ev = comdat any - -$_ZNSaIP1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AED2Ev = comdat any +$_ZNSt15__new_allocatorIP1AED2Ev = comdat any $_ZNSt5dequeIP1ASaIS1_EEC2Ev = comdat any @@ -84,12 +73,8 @@ $_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implC2Ev = comdat any $_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_initialize_mapEm = comdat any -$_ZNSaIP1AEC2Ev = comdat any - $_ZNSt11_Deque_baseIP1ASaIS1_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2Ev = comdat any $_ZSt3maxImERKT_S2_S2_ = comdat any @@ -100,30 +85,18 @@ $_ZNSt11_Deque_baseIP1ASaIS1_EE15_M_create_nodesEPPS1_S5_ = comdat any $_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_ = comdat any -$_ZNSt16allocator_traitsISaIPP1AEE8allocateERS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPP1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPP1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIPP1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseIP1ASaIS1_EE16_M_allocate_nodeEv = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIP1AE8allocateEmPKv = comdat any $_ZNSt15_Deque_iteratorIP1ARS1_PS1_E14_S_buffer_sizeEv = comdat any $_ZNSt5dequeIP1ASaIS1_EE9push_backERKS1_ = comdat any -$_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_ = comdat any - $_ZNSt5dequeIP1ASaIS1_EE16_M_push_back_auxIJRKS1_EEEvDpOT_ = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AE9constructIS2_JRKS2_EEEvPT_DpOT0_ = comdat any - $_ZNKSt5dequeIP1ASaIS1_EE4sizeEv = comdat any $_ZNKSt5dequeIP1ASaIS1_EE8max_sizeEv = comdat any @@ -134,12 +107,8 @@ $_ZStmiRKSt15_Deque_iteratorIP1ARS1_PS1_ES6_ = comdat any $_ZNSt5dequeIP1ASaIS1_EE11_S_max_sizeERKS2_ = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8max_sizeERKS2_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorIP1AE8max_sizeEv = comdat any - $_ZNSt5dequeIP1ASaIS1_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPPP1AS3_ET0_T_S5_S4_ = comdat any @@ -158,7 +127,9 @@ $_ZSt12__niter_baseIPPP1AET_S4_ = comdat any $_ZSt14__copy_move_a2ILb0EPPP1AS3_ET1_T0_S5_S4_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPP1AEEPT_PKS6_S9_S7_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPP1AS5_EEPT0_PT_S9_S7_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPP1AS5_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPPP1AS3_ET1_T0_S5_S4_ = comdat any @@ -166,7 +137,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPPP1AS3_ET1_T0_S5_S4_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPPP1AS3_ET1_T0_S5_S4_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPP1AEEPT_PKS6_S9_S7_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPP1AS5_EEPT0_PT_S9_S7_ = comdat any $_ZNSt5dequeIP1ASaIS1_EE5frontEv = comdat any @@ -174,12 +145,8 @@ $_ZNKSt15_Deque_iteratorIP1ARS1_PS1_EdeEv = comdat any $_ZNSt5dequeIP1ASaIS1_EE9pop_frontEv = comdat any -$_ZNSt16allocator_traitsISaIP1AEE7destroyIS1_EEvRS2_PT_ = comdat any - $_ZNSt5dequeIP1ASaIS1_EE16_M_pop_front_auxEv = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AE7destroyIS2_EEvPT_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -189,8 +156,6 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @@ -198,7 +163,6 @@ $_ZTI1A = comdat any @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 @.str.3 = private unnamed_addr constant [48 x i8] c"cannot create std::deque larger than max_size()\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_queue_2.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -333,24 +297,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -366,11 +314,11 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) - %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #15 + %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #13 to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #14 store ptr %call, ptr %a, align 8 invoke void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEE4pushERKS1_(ptr noundef nonnull align 8 dereferenceable(80) %aqueue, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont1 unwind label %lpad @@ -396,7 +344,7 @@ invoke.cont4: ; preds = %invoke.cont2 invoke.cont5: ; preds = %invoke.cont4 store i32 0, ptr %retval, align 4 - call void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #5 + call void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #14 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -407,7 +355,7 @@ lpad: ; preds = %invoke.cont4, %invo store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #5 + call void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %aqueue) #14 br label %eh.resume eh.resume: ; preds = %lpad @@ -419,7 +367,7 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -431,12 +379,12 @@ entry: } ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #8 +declare noundef nonnull ptr @_Znwm(i64 noundef) #5 declare i32 @__gxx_personality_v0(...) ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -466,7 +414,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::queue", ptr %this1, i32 0, i32 0 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIP1ASaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIP1ASaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #14 ret ptr %call } @@ -477,18 +425,18 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::queue", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeIP1ASaIS1_EE9pop_frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeIP1ASaIS1_EE9pop_frontEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #14 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5queueIP1ASt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::queue", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #14 ret void } @@ -507,28 +455,28 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #9 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %agg.tmp = alloca %"struct.std::_Deque_iterator", align 8 %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIP1ASaIS1_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSt5dequeIP1ASaIS1_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt5dequeIP1ASaIS1_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 + call void @_ZNSt5dequeIP1ASaIS1_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 invoke void @_ZNSt5dequeIP1ASaIS1_EE15_M_destroy_dataESt15_Deque_iteratorIS1_RS1_PS1_ES7_RKS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #16 + call void @__clang_call_terminate(ptr %1) #15 unreachable } @@ -553,7 +501,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #14 ret void } @@ -567,7 +515,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #14 ret void } @@ -582,9 +530,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #10 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #16 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #7 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #14 + call void @_ZSt9terminatev() #15 unreachable } @@ -593,7 +541,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -614,24 +562,24 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_M_destroy_nodesEPPS1_S5_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_M_destroy_nodesEPPS1_S5_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #14 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #14 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #14 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -685,7 +633,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE18_M_deallocate_nodeEPS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE18_M_deallocate_nodeEPS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #14 br label %for.inc for.inc: ; preds = %for.body @@ -698,9 +646,13 @@ for.end: ; preds = %for.cond ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #6 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -709,37 +661,51 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIP1ASaIS1_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseIP1ASaIS1_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIPP1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #14 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #16 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #15 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #14 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE18_M_deallocate_nodeEPS1_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -751,36 +717,26 @@ entry: to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - invoke void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont2 unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont2 invoke.cont2: ; preds = %invoke.cont ret void -terminate.lpad: ; preds = %invoke.cont, %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %entry + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #16 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #15 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef %__size) #2 comdat { entry: @@ -804,59 +760,40 @@ cond.end: ; preds = %cond.false, %cond.t } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #16 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #11 +declare void @_ZdlPv(ptr noundef) #8 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIP1ASaIS1_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIP1ASaIS1_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #6 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSaIPP1AEC2IS0_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPP1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPP1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #9 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -870,44 +807,23 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPP1AEC2IS0_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #9 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #9 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPP1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #16 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -916,17 +832,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #9 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -935,10 +841,10 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #12 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9 ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -948,7 +854,7 @@ entry: } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 @@ -956,7 +862,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #14 invoke void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -970,7 +876,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #14 br label %eh.resume eh.resume: ; preds = %lpad @@ -982,13 +888,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 ret void } @@ -1062,14 +973,14 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #14 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #14 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 @@ -1096,12 +1007,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #5 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #14 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #5 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #14 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -1135,7 +1046,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #16 + call void @__clang_call_terminate(ptr %26) #15 unreachable unreachable: ; preds = %catch @@ -1143,17 +1054,7 @@ unreachable: ; preds = %catch } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #9 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1163,23 +1064,14 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #14 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #9 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #14 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #9 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #6 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1225,9 +1117,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -1236,23 +1132,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIP1ASaIS1_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseIP1ASaIS1_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIPP1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i5 = invoke noundef ptr @_ZNSt15__new_allocatorIPP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIPP1AEE8allocateERS3_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIPP1AEE8allocateERS3_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIPP1AEE8allocateERS3_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #14 + ret ptr %call.i5 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + call void @_ZNSt15__new_allocatorIPP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i4) #14 br label %eh.resume eh.resume: ; preds = %lpad @@ -1312,10 +1219,10 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #14 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_M_destroy_nodesEPPS1_S5_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE16_M_destroy_nodesEPPS1_S5_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #14 invoke void @__cxa_rethrow() #17 to label %unreachable unwind label %lpad2 @@ -1349,7 +1256,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #16 + call void @__clang_call_terminate(ptr %15) #15 unreachable unreachable: ; preds = %catch @@ -1377,7 +1284,7 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E14_S_buffer_sizeEv() #14 %add.ptr = getelementptr inbounds ptr, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 @@ -1385,21 +1292,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPP1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1408,61 +1303,59 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #17 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #17 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #18 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #13 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #10 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #13 +declare void @_ZSt17__throw_bad_allocv() #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1471,28 +1364,29 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #17 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #17 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #18 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #17 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #13 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1505,6 +1399,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1529,55 +1429,58 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + %9 = load ptr, ptr %8, align 8 + store ptr %9, ptr %7, align 8 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %4, i32 1 + %10 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt5dequeIP1ASaIS1_EE16_M_push_back_auxIJRKS1_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %11 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt5dequeIP1ASaIS1_EE16_M_push_back_auxIJRKS1_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %11) br label %if.end if.end: ; preds = %if.else, %if.then ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EE16_M_push_back_auxIJRKS1_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNKSt5dequeIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef i64 @_ZNKSt5dequeIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 + %call2 = call noundef i64 @_ZNKSt5dequeIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #17 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #18 unreachable if.end: ; preds = %entry @@ -1595,40 +1498,36 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + %8 = load ptr, ptr %7, align 8 + store ptr %8, ptr %6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #5 + %9 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %9, i64 1 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #14 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %10 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 + store ptr %10, ptr %_M_cur17, align 8 ret void } @@ -1642,7 +1541,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIP1ARS1_PS1_ES6_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIP1ARS1_PS1_ES6_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #14 ret i64 %call } @@ -1652,13 +1551,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNSt5dequeIP1ASaIS1_EE11_S_max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 + %call2 = call noundef i64 @_ZNSt5dequeIP1ASaIS1_EE11_S_max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %call) #14 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #13 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #11 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1704,7 +1603,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E14_S_buffer_sizeEv() #14 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1715,69 +1614,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeIP1ASaIS1_EE11_S_max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaIP1AEE8max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #16 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #15 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaIP1AEE8max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1808,16 +1710,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -1979,7 +1871,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #5 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE17_M_deallocate_mapEPPS1_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #14 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -1994,14 +1886,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #5 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #14 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #5 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #14 ret void } @@ -2051,11 +1943,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %0) #14 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %1) #14 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %2) #14 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPPP1AS3_ET1_T0_S5_S4_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPP1AET_RKS4_S4_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2118,12 +2010,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPP1AEEPT_PKS6_S9_S7_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPP1AS5_EEPT0_PT_S9_S7_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPP1AEEPT_PKS6_S9_S7_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPP1AS5_EEPT0_PT_S9_S7_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2140,8 +2032,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2149,17 +2041,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPP1AS5_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #14 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #12 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPP1AS5_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPPP1AS3_ET1_T0_S5_S4_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2171,11 +2091,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %0) #14 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %1) #14 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPP1AET_S4_(ptr noundef %2) #14 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPPP1AS3_ET1_T0_S5_S4_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPP1AET_RKS4_S4_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2209,12 +2129,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPP1AEEPT_PKS6_S9_S7_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPP1AS5_EEPT0_PT_S9_S7_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPP1AEEPT_PKS6_S9_S7_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPP1AS5_EEPT0_PT_S9_S7_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2231,8 +2151,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2243,14 +2163,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPP1AS5_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2260,8 +2195,8 @@ entry: %ref.tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIP1ASaIS1_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIP1ARS1_PS1_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #5 + call void @_ZNSt5dequeIP1ASaIS1_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIP1ARS1_PS1_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #14 ret ptr %call } @@ -2279,6 +2214,10 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EE9pop_frontEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i10 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -2295,17 +2234,24 @@ entry: br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start5 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl4, i32 0, i32 2 %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start5, i32 0, i32 0 %2 = load ptr, ptr %_M_cur6, align 8 - call void @_ZNSt16allocator_traitsISaIP1AEE7destroyIS1_EEvRS2_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %2) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i10, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i10, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 2 %_M_cur9 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start8, i32 0, i32 0 - %3 = load ptr, ptr %_M_cur9, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %3, i32 1 + %6 = load ptr, ptr %_M_cur9, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %6, i32 1 store ptr %incdec.ptr, ptr %_M_cur9, align 8 br label %if.end @@ -2320,100 +2266,79 @@ if.end: ; preds = %invoke.cont, %if.th ret void terminate.lpad: ; preds = %if.else - %4 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } catch ptr null - %5 = extractvalue { ptr, i32 } %4, 0 - call void @__clang_call_terminate(ptr %5) #16 + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #15 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE7destroyIS1_EEvRS2_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIP1ASaIS1_EE16_M_pop_front_auxEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i14 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #14 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start, i32 0, i32 0 %0 = load ptr, ptr %_M_cur, align 8 - call void @_ZNSt16allocator_traitsISaIP1AEE7destroyIS1_EEvRS2_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %0) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + store ptr %2, ptr %__p.addr.i14, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i14, align 8 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start3 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start3, i32 0, i32 1 - %1 = load ptr, ptr %_M_first, align 8 - call void @_ZNSt11_Deque_baseIP1ASaIS1_EE18_M_deallocate_nodeEPS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1) #5 + %4 = load ptr, ptr %_M_first, align 8 + call void @_ZNSt11_Deque_baseIP1ASaIS1_EE18_M_deallocate_nodeEPS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #14 %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start5 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl4, i32 0, i32 2 %_M_impl6 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start7 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl6, i32 0, i32 2 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start7, i32 0, i32 3 - %2 = load ptr, ptr %_M_node, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start5, ptr noundef %add.ptr) #5 + %5 = load ptr, ptr %_M_node, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %5, i64 1 + call void @_ZNSt15_Deque_iteratorIP1ARS1_PS1_E11_M_set_nodeEPS3_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start5, ptr noundef %add.ptr) #14 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 2 %_M_first10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start9, i32 0, i32 1 - %3 = load ptr, ptr %_M_first10, align 8 + %6 = load ptr, ptr %_M_first10, align 8 %_M_impl11 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start12 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl11, i32 0, i32 2 %_M_cur13 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start12, i32 0, i32 0 - store ptr %3, ptr %_M_cur13, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_queue_2.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() + store ptr %6, ptr %_M_cur13, align 8 ret void } attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #13 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { builtin allocsize(0) } -attributes #16 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #10 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #13 = { builtin allocsize(0) } +attributes #14 = { nounwind } +attributes #15 = { noreturn nounwind } +attributes #16 = { builtin nounwind } attributes #17 = { noreturn } -attributes #18 = { allocsize(0) } +attributes #18 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2423,7 +2348,7 @@ attributes #18 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/set-1.cpp.bc b/test_cases_bc/basic_cpp_tests/set-1.cpp.bc index cbb14e9a..f9479414 100644 --- a/test_cases_bc/basic_cpp_tests/set-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/set-1.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/s target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::set" = type { %"class.std::_Rb_tree" } %"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree, std::less>::_Rb_tree_impl" } %"struct.std::_Rb_tree, std::less>::_Rb_tree_impl" = type { %"struct.std::_Rb_tree_key_compare", %"struct.std::_Rb_tree_header" } @@ -38,14 +39,10 @@ $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EEC2Ev = comdat any $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEC2Ev = comdat any -$_ZNSaISt13_Rb_tree_nodeI1AEEC2Ev = comdat any - $_ZNSt20_Rb_tree_key_compareISt4lessI1AEEC2Ev = comdat any $_ZNSt15_Rb_tree_headerC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEEC2Ev = comdat any - $_ZNSt15_Rb_tree_header8_M_resetEv = comdat any $__clang_call_terminate = comdat any @@ -70,25 +67,19 @@ $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE15_M_destroy_nodeEPSt1 $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS0_E = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE7destroyIS1_EEvRS3_PT_ = comdat any - $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt13_Rb_tree_nodeI1AE9_M_valptrEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE7destroyIS2_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_membufI1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_membufI1AE7_M_addrEv = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE10deallocateERS3_PS2_m = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEE10deallocateEPS2_m = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE10deallocateEPS3_m = comdat any +$_ZNKSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE9_M_mbeginEv = comdat any -$_ZNSaISt13_Rb_tree_nodeI1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEED2Ev = comdat any $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE16_M_insert_uniqueIRKS0_EESt4pairISt17_Rb_tree_iteratorIS0_EbEOT_ = comdat any @@ -122,7 +113,7 @@ $_ZNSt17_Rb_tree_iteratorI1AEmmEv = comdat any $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE6_S_keyEPKSt18_Rb_tree_node_base = comdat any -$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_ = comdat any +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_ = comdat any $_ZNK1AltERKS_ = comdat any @@ -142,15 +133,7 @@ $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_M_get_nodeEv = comd $_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE17_M_construct_nodeIJRKS0_EEEvPSt13_Rb_tree_nodeIS0_EDpOT_ = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE8allocateERS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE11_M_max_sizeEv = comdat any - -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_ = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEE8allocateEmPKv = comdat any $_ZN1AC2ERKS_ = comdat any @@ -169,15 +152,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_set_1.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -312,24 +292,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -346,7 +310,7 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 + call void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 invoke void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) %a, i32 noundef 0) to label %invoke.cont unwind label %lpad @@ -361,10 +325,10 @@ invoke.cont1: ; preds = %invoke.cont %2 = getelementptr inbounds { ptr, i8 }, ptr %coerce, i32 0, i32 1 %3 = extractvalue { ptr, i8 } %call, 1 store i8 %3, ptr %2, align 8 - %call2 = call ptr @_ZNKSt3setI1ASt4lessIS0_ESaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 + %call2 = call ptr @_ZNKSt3setI1ASt4lessIS0_ESaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %it, i32 0, i32 0 store ptr %call2, ptr %coerce.dive, align 8 - %call3 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt23_Rb_tree_const_iteratorI1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + %call3 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNKSt23_Rb_tree_const_iteratorI1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #12 store ptr %call3, ptr %aptr, align 8 %4 = load ptr, ptr %aptr, align 8 %5 = load ptr, ptr %ptr, align 8 @@ -376,7 +340,7 @@ invoke.cont1: ; preds = %invoke.cont invoke.cont4: ; preds = %invoke.cont1 store i32 0, ptr %retval, align 4 - call void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 + call void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 %7 = load i32, ptr %retval, align 4 ret i32 %7 @@ -387,7 +351,7 @@ lpad: ; preds = %invoke.cont1, %invo store ptr %9, ptr %exn.slot, align 8 %10 = extractvalue { ptr, i32 } %8, 1 store i32 %10, ptr %ehselector.slot, align 4 - call void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 + call void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -399,18 +363,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::set", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) %this, i32 noundef %i) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ei(ptr noundef nonnull align 8 dereferenceable(12) %this, i32 noundef %i) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %i.addr = alloca i32, align 4 @@ -460,7 +424,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::set", ptr %this1, i32 0, i32 0 - %call = call ptr @_ZNKSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + %call = call ptr @_ZNKSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %retval, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %retval, i32 0, i32 0 @@ -481,52 +445,47 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3setI1ASt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::set", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt20_Rb_tree_key_compareISt4lessI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt20_Rb_tree_key_compareISt4lessI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 %0 = getelementptr inbounds i8, ptr %this1, i64 8 - call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -536,7 +495,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -555,19 +514,10 @@ terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #14 + call void @__clang_call_terminate(ptr %1) #13 unreachable } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt15_Rb_tree_header8_M_resetEv(ptr noundef nonnull align 8 dereferenceable(40) %this) #2 comdat align 2 { entry: @@ -591,9 +541,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #14 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #12 + call void @_ZSt9terminatev() #13 unreachable } @@ -616,25 +566,25 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 invoke void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_M_eraseEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #12 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #14 + call void @__clang_call_terminate(ptr %1) #13 unreachable } @@ -656,13 +606,13 @@ while.cond: ; preds = %while.body, %entry while.body: ; preds = %while.cond %1 = load ptr, ptr %__x.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #12 call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_M_eraseEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) %2 = load ptr, ptr %__x.addr, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #12 store ptr %call2, ptr %__y, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #5 + call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #12 %4 = load ptr, ptr %__y, align 8 store ptr %4, ptr %__x.addr, align 8 br label %while.cond, !llvm.loop !6 @@ -677,21 +627,20 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 - %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 - %0 = load ptr, ptr %_M_parent, align 8 - ret ptr %0 + %call = call noundef ptr @_ZNKSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 + ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void } @@ -726,75 +675,82 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #5 + call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #12 %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #5 + call void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #12 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 %call2 = invoke noundef ptr @_ZNSt13_Rb_tree_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %0) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE7destroyIS1_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2) #5 - %1 = load ptr, ptr %__p.addr, align 8 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + store ptr %2, ptr %__p.addr.i3, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i3, align 8 + %4 = load ptr, ptr %__p.addr, align 8 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #14 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #13 unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS0_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %0, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #14 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #13 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE7destroyIS1_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: @@ -812,29 +768,17 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #12 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE7destroyIS2_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx16__aligned_membufI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #12 ret ptr %call } @@ -848,52 +792,40 @@ entry: ret ptr %_M_storage } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #14 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #9 +declare void @_ZdlPv(ptr noundef) #6 -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNKSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 + %0 = load ptr, ptr %_M_parent, align 8 + ret ptr %0 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -948,7 +880,7 @@ if.then: ; preds = %entry if.end: ; preds = %entry %first8 = getelementptr inbounds %"struct.std::pair.3", ptr %__res, i32 0, i32 0 %9 = load ptr, ptr %first8, align 8 - call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp7, ptr noundef %9) #5 + call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp7, ptr noundef %9) #12 store i8 0, ptr %ref.tmp9, align 1 call void @_ZNSt4pairISt17_Rb_tree_iteratorI1AEbEC2IS2_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp7, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) br label %return @@ -959,7 +891,7 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairISt23_Rb_tree_const_iteratorI1AEbEC2IRSt17_Rb_tree_iteratorIS1_ERbLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairISt23_Rb_tree_const_iteratorI1AEbEC2IRSt17_Rb_tree_iteratorIS1_ERbLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -970,7 +902,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt23_Rb_tree_const_iteratorI1AEC2ERKSt17_Rb_tree_iteratorIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %first, ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + call void @_ZNSt23_Rb_tree_const_iteratorI1AEC2ERKSt17_Rb_tree_iteratorIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %first, ptr noundef nonnull align 8 dereferenceable(8) %0) #12 %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 %1 = load ptr, ptr %__y.addr, align 8 %2 = load i8, ptr %1, align 1 @@ -995,9 +927,9 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 store ptr %call, ptr %__x, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call2 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 store ptr %call2, ptr %__y, align 8 store i8 1, ptr %__comp, align 1 br label %while.cond @@ -1024,12 +956,12 @@ while.body: ; preds = %while.cond cond.true: ; preds = %while.body %5 = load ptr, ptr %__x, align 8 - %call5 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %5) #5 + %call5 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %5) #12 br label %cond.end cond.false: ; preds = %while.body %6 = load ptr, ptr %__x, align 8 - %call6 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %6) #5 + %call6 = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %6) #12 br label %cond.end cond.end: ; preds = %cond.false, %cond.true @@ -1039,16 +971,16 @@ cond.end: ; preds = %cond.false, %cond.t while.end: ; preds = %while.cond %7 = load ptr, ptr %__y, align 8 - call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %7) #5 + call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %7) #12 %8 = load i8, ptr %__comp, align 1 %tobool7 = trunc i8 %8 to i1 br i1 %tobool7, label %if.then, label %if.end12 if.then: ; preds = %while.end - %call8 = call ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call8 = call ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 store ptr %call8, ptr %coerce.dive, align 8 - %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorI1AES3_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 + %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorI1AES3_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #12 br i1 %call9, label %if.then10, label %if.else if.then10: ; preds = %if.then @@ -1056,7 +988,7 @@ if.then10: ; preds = %if.then br label %return if.else: ; preds = %if.then - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorI1AEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #5 + %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorI1AEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #12 br label %if.end if.end: ; preds = %if.else @@ -1079,7 +1011,7 @@ if.then17: ; preds = %if.end12 if.end18: ; preds = %if.end12 %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 store ptr null, ptr %ref.tmp20, align 8 - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) br label %return return: ; preds = %if.end18, %if.then17, %if.then10 @@ -1100,7 +1032,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_Alloc_nodeC2ERS6_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(48) %__t) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_Alloc_nodeC2ERS6_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(48) %__t) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__t.addr = alloca ptr, align 8 @@ -1137,7 +1069,7 @@ entry: lor.lhs.false: ; preds = %entry %1 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %cmp2 = icmp eq ptr %1, %call br i1 %cmp2, label %lor.end, label %lor.rhs @@ -1166,7 +1098,7 @@ lor.end: ; preds = %lor.rhs, %lor.lhs.f %_M_impl7 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %add.ptr = getelementptr inbounds i8, ptr %_M_impl7, i64 8 %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %8, ptr noundef %9, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #5 + call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %8, ptr noundef %9, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #12 %_M_impl8 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %add.ptr9 = getelementptr inbounds i8, ptr %_M_impl8, i64 8 %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr9, i32 0, i32 1 @@ -1174,14 +1106,14 @@ lor.end: ; preds = %lor.rhs, %lor.lhs.f %inc = add i64 %10, 1 store i64 %inc, ptr %_M_node_count, align 8 %11 = load ptr, ptr %__z, align 8 - call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %11) #5 + call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %11) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 %12 = load ptr, ptr %coerce.dive, align 8 ret ptr %12 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorI1AEbEC2IS2_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorI1AEbEC2IS2_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1203,7 +1135,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1285,14 +1217,14 @@ entry: %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 %0 = load ptr, ptr %_M_left, align 8 - call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 + call void @_ZNSt17_Rb_tree_iteratorI1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 %1 = load ptr, ptr %coerce.dive, align 8 ret ptr %1 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeI1AERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeI1AERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1337,21 +1269,21 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 + %__a.addr = alloca ptr, align 8 + %__b.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + store ptr %__b, ptr %__b.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %first = getelementptr inbounds %"struct.std::pair.3", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__x.addr, align 8 + %0 = load ptr, ptr %__a.addr, align 8 %1 = load ptr, ptr %0, align 8 store ptr %1, ptr %first, align 8 %second = getelementptr inbounds %"struct.std::pair.3", ptr %this1, i32 0, i32 1 - %2 = load ptr, ptr %__y.addr, align 8 + %2 = load ptr, ptr %__b.addr, align 8 %3 = load ptr, ptr %2, align 8 store ptr %3, ptr %second, align 8 ret void @@ -1391,7 +1323,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufI1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #12 ret ptr %call } @@ -1401,7 +1333,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufI1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #12 ret ptr %call } @@ -1416,7 +1348,7 @@ entry: } ; Function Attrs: nounwind willreturn memory(read) -declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #10 +declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #7 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_Alloc_nodeclIRKS0_EEPSt13_Rb_tree_nodeIS0_EOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(12) %__arg) #0 comdat align 2 { @@ -1434,7 +1366,7 @@ entry: } ; Function Attrs: nounwind -declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 +declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #8 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE14_M_create_nodeIJRKS0_EEEPSt13_Rb_tree_nodeIS0_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(12) %__args) #0 comdat align 2 { @@ -1457,17 +1389,29 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - ret ptr %call2 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE17_M_construct_nodeIJRKS0_EEEvPSt13_Rb_tree_nodeIS0_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__node, ptr noundef nonnull align 8 dereferenceable(12) %__args) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__args.addr.i4 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__node.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 @@ -1476,30 +1420,30 @@ entry: store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__node.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeI1AS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %1 = load ptr, ptr %__node.addr, align 8 %call2 = call noundef ptr @_ZNSt13_Rb_tree_nodeI1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(48) %1) %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2, ptr noundef nonnull align 8 dereferenceable(12) %2) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i3, align 8 + store ptr %5, ptr %__args.addr.i4, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i3, align 8 + %7 = load ptr, ptr %__args.addr.i4, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(12) %6, ptr noundef nonnull align 8 dereferenceable(12) %7) #12 ret void } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeI1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1508,70 +1452,42 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 192153584101141162 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 384307168202282325 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 48 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 48 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 192153584101141162 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #11 +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #12 - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeI1AEEE9constructIS1_JRKS1_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(12) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(12) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeI1AEE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(12) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(12) %0, ptr noundef nonnull align 8 dereferenceable(12) %1) #5 - ret void -} +declare noundef nonnull ptr @_Znwm(i64 noundef) #10 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(12) %this, ptr noundef nonnull align 8 dereferenceable(12) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(12) %this, ptr noundef nonnull align 8 dereferenceable(12) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -1588,10 +1504,10 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #13 +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #11 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorI1AEC2ERKSt17_Rb_tree_iteratorIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorI1AEC2ERKSt17_Rb_tree_iteratorIS0_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__it.addr = alloca ptr, align 8 @@ -1618,14 +1534,14 @@ entry: %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 %0 = load ptr, ptr %_M_left, align 8 - call void @_ZNSt23_Rb_tree_const_iteratorI1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 + call void @_ZNSt23_Rb_tree_const_iteratorI1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %retval, i32 0, i32 0 %1 = load ptr, ptr %coerce.dive, align 8 ret ptr %1 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorI1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorI1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1638,31 +1554,24 @@ entry: ret void } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_set_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #14 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #12 = { nounwind } +attributes #13 = { noreturn nounwind } +attributes #14 = { builtin nounwind } attributes #15 = { nounwind willreturn memory(read) } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1672,7 +1581,7 @@ attributes #17 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/set-2.cpp.bc b/test_cases_bc/basic_cpp_tests/set-2.cpp.bc index 98e88f3f..4a0e84cc 100644 --- a/test_cases_bc/basic_cpp_tests/set-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/set-2.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/s target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::set" = type { %"class.std::_Rb_tree" } %"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree, std::less>::_Rb_tree_impl" } %"struct.std::_Rb_tree, std::less>::_Rb_tree_impl" = type { %"struct.std::_Rb_tree_key_compare", %"struct.std::_Rb_tree_header" } @@ -38,14 +39,10 @@ $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EEC2Ev = comdat any $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EEC2Ev = comdat any -$_ZNSaISt13_Rb_tree_nodeIPK1AEEC2Ev = comdat any - $_ZNSt20_Rb_tree_key_compareISt4lessIPK1AEEC2Ev = comdat any $_ZNSt15_Rb_tree_headerC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEEC2Ev = comdat any - $_ZNSt15_Rb_tree_header8_M_resetEv = comdat any $__clang_call_terminate = comdat any @@ -70,25 +67,19 @@ $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE15_M_destroy_nodeEPS $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_ = comdat any - $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv = comdat any $_ZNSt13_Rb_tree_nodeIPK1AE9_M_valptrEv = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE7destroyIS4_EEvPT_ = comdat any - $_ZN9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_membufIPK1AE7_M_addrEv = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE10deallocateERS5_PS4_m = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEE10deallocateEPS4_m = comdat any -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE10deallocateEPS5_m = comdat any +$_ZNKSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE9_M_mbeginEv = comdat any -$_ZNSaISt13_Rb_tree_nodeIPK1AEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEED2Ev = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEED2Ev = comdat any $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE16_M_insert_uniqueIS2_EESt4pairISt17_Rb_tree_iteratorIS2_EbEOT_ = comdat any @@ -122,7 +113,7 @@ $_ZNSt17_Rb_tree_iteratorIPK1AEmmEv = comdat any $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE6_S_keyEPKSt18_Rb_tree_node_base = comdat any -$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_ = comdat any +$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_ = comdat any $_ZNKSt9_IdentityIPK1AEclERKS2_ = comdat any @@ -140,15 +131,7 @@ $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_M_get_nodeEv = co $_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE17_M_construct_nodeIJS2_EEEvPSt13_Rb_tree_nodeIS2_EDpOT_ = comdat any -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE8allocateERS5_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE11_M_max_sizeEv = comdat any - -$_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_ = comdat any - -$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEE8allocateEmPKv = comdat any $_ZNSt23_Rb_tree_const_iteratorIPK1AEC2ERKSt17_Rb_tree_iteratorIS2_E = comdat any @@ -165,15 +148,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_set_2.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -308,24 +288,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -343,8 +307,8 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #12 store ptr %a, ptr %ref.tmp, align 8 %call = invoke { ptr, i8 } @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EE6insertEOS2_(ptr noundef nonnull align 8 dereferenceable(48) %aset, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont unwind label %lpad @@ -356,10 +320,10 @@ invoke.cont: ; preds = %entry %2 = getelementptr inbounds { ptr, i8 }, ptr %coerce, i32 0, i32 1 %3 = extractvalue { ptr, i8 } %call, 1 store i8 %3, ptr %2, align 8 - %call1 = call ptr @_ZNKSt3setIPK1ASt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 + %call1 = call ptr @_ZNKSt3setIPK1ASt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %it, i32 0, i32 0 store ptr %call1, ptr %coerce.dive, align 8 - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIPK1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIPK1AEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #12 %4 = load ptr, ptr %call2, align 8 store ptr %4, ptr %aptr, align 8 %5 = load ptr, ptr %aptr, align 8 @@ -372,7 +336,7 @@ invoke.cont: ; preds = %entry invoke.cont3: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 + call void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 %8 = load i32, ptr %retval, align 4 ret i32 %8 @@ -383,7 +347,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %10, ptr %exn.slot, align 8 %11 = extractvalue { ptr, i32 } %9, 1 store i32 %11, ptr %ehselector.slot, align 4 - call void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #5 + call void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %aset) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -395,18 +359,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::set", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -451,7 +415,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::set", ptr %this1, i32 0, i32 0 - %call = call ptr @_ZNKSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + %call = call ptr @_ZNKSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %retval, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 %coerce.dive2 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %retval, i32 0, i32 0 @@ -472,52 +436,47 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt3setIPK1ASt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_t = getelementptr inbounds %"class.std::set", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #5 + call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_t) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt20_Rb_tree_key_compareISt4lessIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt20_Rb_tree_key_compareISt4lessIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 %0 = getelementptr inbounds i8, ptr %this1, i64 8 - call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt20_Rb_tree_key_compareISt4lessIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -527,7 +486,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt15_Rb_tree_headerC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -546,19 +505,10 @@ terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #14 + call void @__clang_call_terminate(ptr %1) #13 unreachable } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt15_Rb_tree_header8_M_resetEv(ptr noundef nonnull align 8 dereferenceable(40) %this) #2 comdat align 2 { entry: @@ -582,9 +532,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #14 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #12 + call void @_ZSt9terminatev() #13 unreachable } @@ -607,25 +557,25 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 invoke void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #5 + call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %_M_impl) #12 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #14 + call void @__clang_call_terminate(ptr %1) #13 unreachable } @@ -647,13 +597,13 @@ while.cond: ; preds = %while.body, %entry while.body: ; preds = %while.cond %1 = load ptr, ptr %__x.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %1) #12 call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %call) %2 = load ptr, ptr %__x.addr, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %2) #12 store ptr %call2, ptr %__y, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #5 + call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %3) #12 %4 = load ptr, ptr %__y, align 8 store ptr %4, ptr %__x.addr, align 8 br label %while.cond, !llvm.loop !6 @@ -668,21 +618,20 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 - %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 - %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 - %0 = load ptr, ptr %_M_parent, align 8 - ret ptr %0 + %call = call noundef ptr @_ZNKSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 + ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13_Rb_tree_implIS6_Lb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaISt13_Rb_tree_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void } @@ -717,75 +666,82 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #5 + call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %0) #12 %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #5 + call void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this1, ptr noundef %1) #12 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 %call2 = invoke noundef ptr @_ZNSt13_Rb_tree_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(40) %0) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2) #5 - %1 = load ptr, ptr %__p.addr, align 8 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + store ptr %2, ptr %__p.addr.i3, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i3, align 8 + %4 = load ptr, ptr %__p.addr, align 8 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #14 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #13 unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %0 = load ptr, ptr %__p.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %0, i64 noundef 1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont invoke.cont: ; preds = %entry ret void -terminate.lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #14 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #13 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE7destroyIS3_EEvRS5_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: @@ -803,29 +759,17 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #12 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE7destroyIS4_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_membufIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #12 ret ptr %call } @@ -839,52 +783,40 @@ entry: ret ptr %_M_storage } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE10deallocateERS5_PS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #14 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #9 +declare void @_ZdlPv(ptr noundef) #6 -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaISt13_Rb_tree_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNKSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE9_M_mbeginEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void + %_M_impl = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 + %add.ptr = getelementptr inbounds i8, ptr %_M_impl, i64 8 + %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 + %_M_parent = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 1 + %0 = load ptr, ptr %_M_parent, align 8 + ret ptr %0 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -939,7 +871,7 @@ if.then: ; preds = %entry if.end: ; preds = %entry %first8 = getelementptr inbounds %"struct.std::pair.3", ptr %__res, i32 0, i32 0 %9 = load ptr, ptr %first8, align 8 - call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp7, ptr noundef %9) #5 + call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp7, ptr noundef %9) #12 store i8 0, ptr %ref.tmp9, align 1 call void @_ZNSt4pairISt17_Rb_tree_iteratorIPK1AEbEC2IS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp7, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) br label %return @@ -950,7 +882,7 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairISt23_Rb_tree_const_iteratorIPK1AEbEC2IRSt17_Rb_tree_iteratorIS3_ERbLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairISt23_Rb_tree_const_iteratorIPK1AEbEC2IRSt17_Rb_tree_iteratorIS3_ERbLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -961,7 +893,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2ERKSt17_Rb_tree_iteratorIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %first, ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + call void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2ERKSt17_Rb_tree_iteratorIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %first, ptr noundef nonnull align 8 dereferenceable(8) %0) #12 %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 %1 = load ptr, ptr %__y.addr, align 8 %2 = load i8, ptr %1, align 1 @@ -986,9 +918,9 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 store ptr %call, ptr %__x, align 8 - %call2 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call2 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 store ptr %call2, ptr %__y, align 8 store i8 1, ptr %__comp, align 1 br label %while.cond @@ -1008,7 +940,7 @@ while.body: ; preds = %while.cond %4 = load ptr, ptr %__x, align 8 %call3 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE6_S_keyEPKSt13_Rb_tree_nodeIS2_E(ptr noundef %4) %5 = load ptr, ptr %call3, align 8 - %call4 = call noundef zeroext i1 @_ZNKSt4lessIPK1AEclES2_S2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef %3, ptr noundef %5) #5 + %call4 = call noundef zeroext i1 @_ZNKSt4lessIPK1AEclES2_S2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef %3, ptr noundef %5) #12 %frombool = zext i1 %call4 to i8 store i8 %frombool, ptr %__comp, align 1 %6 = load i8, ptr %__comp, align 1 @@ -1017,12 +949,12 @@ while.body: ; preds = %while.cond cond.true: ; preds = %while.body %7 = load ptr, ptr %__x, align 8 - %call5 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %7) #5 + %call5 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base(ptr noundef %7) #12 br label %cond.end cond.false: ; preds = %while.body %8 = load ptr, ptr %__x, align 8 - %call6 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %8) #5 + %call6 = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE8_S_rightEPSt18_Rb_tree_node_base(ptr noundef %8) #12 br label %cond.end cond.end: ; preds = %cond.false, %cond.true @@ -1032,16 +964,16 @@ cond.end: ; preds = %cond.false, %cond.t while.end: ; preds = %while.cond %9 = load ptr, ptr %__y, align 8 - call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %9) #5 + call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef %9) #12 %10 = load i8, ptr %__comp, align 1 %tobool7 = trunc i8 %10 to i1 br i1 %tobool7, label %if.then, label %if.end12 if.then: ; preds = %while.end - %call8 = call ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call8 = call ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %ref.tmp, i32 0, i32 0 store ptr %call8, ptr %coerce.dive, align 8 - %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorIPK1AES5_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 + %call9 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorIPK1AES5_(ptr noundef nonnull align 8 dereferenceable(8) %__j, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #12 br i1 %call9, label %if.then10, label %if.else if.then10: ; preds = %if.then @@ -1049,7 +981,7 @@ if.then10: ; preds = %if.then br label %return if.else: ; preds = %if.then - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorIPK1AEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #5 + %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorIPK1AEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %__j) #12 br label %if.end if.end: ; preds = %if.else @@ -1064,7 +996,7 @@ if.end12: ; preds = %if.end, %while.end %12 = load ptr, ptr %call15, align 8 %13 = load ptr, ptr %__k.addr, align 8 %14 = load ptr, ptr %13, align 8 - %call16 = call noundef zeroext i1 @_ZNKSt4lessIPK1AEclES2_S2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef %12, ptr noundef %14) #5 + %call16 = call noundef zeroext i1 @_ZNKSt4lessIPK1AEclES2_S2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare14, ptr noundef %12, ptr noundef %14) #12 br i1 %call16, label %if.then17, label %if.end18 if.then17: ; preds = %if.end12 @@ -1074,7 +1006,7 @@ if.then17: ; preds = %if.end12 if.end18: ; preds = %if.end12 %_M_node19 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %__j, i32 0, i32 0 store ptr null, ptr %ref.tmp20, align 8 - call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) + call void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_node19, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp20) br label %return return: ; preds = %if.end18, %if.then17, %if.then10 @@ -1095,7 +1027,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_Alloc_nodeC2ERS8_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(48) %__t) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_Alloc_nodeC2ERS8_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(48) %__t) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__t.addr = alloca ptr, align 8 @@ -1132,7 +1064,7 @@ entry: lor.lhs.false: ; preds = %entry %1 = load ptr, ptr %__p.addr, align 8 - %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE6_M_endEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %cmp2 = icmp eq ptr %1, %call br i1 %cmp2, label %lor.end, label %lor.rhs @@ -1145,7 +1077,7 @@ lor.rhs: ; preds = %lor.lhs.false %4 = load ptr, ptr %__p.addr, align 8 %call4 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE6_S_keyEPKSt18_Rb_tree_node_base(ptr noundef %4) %5 = load ptr, ptr %call4, align 8 - %call5 = call noundef zeroext i1 @_ZNKSt4lessIPK1AEclES2_S2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef %3, ptr noundef %5) #5 + %call5 = call noundef zeroext i1 @_ZNKSt4lessIPK1AEclES2_S2_(ptr noundef nonnull align 1 dereferenceable(1) %_M_key_compare, ptr noundef %3, ptr noundef %5) #12 br label %lor.end lor.end: ; preds = %lor.rhs, %lor.lhs.false, %entry @@ -1163,7 +1095,7 @@ lor.end: ; preds = %lor.rhs, %lor.lhs.f %_M_impl7 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %add.ptr = getelementptr inbounds i8, ptr %_M_impl7, i64 8 %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 - call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %10, ptr noundef %11, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #5 + call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %tobool, ptr noundef %10, ptr noundef %11, ptr noundef nonnull align 8 dereferenceable(32) %_M_header) #12 %_M_impl8 = getelementptr inbounds %"class.std::_Rb_tree", ptr %this1, i32 0, i32 0 %add.ptr9 = getelementptr inbounds i8, ptr %_M_impl8, i64 8 %_M_node_count = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr9, i32 0, i32 1 @@ -1171,14 +1103,14 @@ lor.end: ; preds = %lor.rhs, %lor.lhs.f %inc = add i64 %12, 1 store i64 %inc, ptr %_M_node_count, align 8 %13 = load ptr, ptr %__z, align 8 - call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %13) #5 + call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %13) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 %14 = load ptr, ptr %coerce.dive, align 8 ret ptr %14 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorIPK1AEbEC2IS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairISt17_Rb_tree_iteratorIPK1AEbEC2IS4_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1200,7 +1132,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1284,14 +1216,14 @@ entry: %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 %0 = load ptr, ptr %_M_left, align 8 - call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 + call void @_ZNSt17_Rb_tree_iteratorIPK1AEC2EPSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %retval, i32 0, i32 0 %1 = load ptr, ptr %coerce.dive, align 8 ret ptr %1 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIPK1AERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeIPK1AERS1_Lb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1336,21 +1268,21 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRS1_Lb1EEEOT_RKS1_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IS1_S1_Lb1EEERKS1_S5_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 + %__a.addr = alloca ptr, align 8 + %__b.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + store ptr %__b, ptr %__b.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %first = getelementptr inbounds %"struct.std::pair.3", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__x.addr, align 8 + %0 = load ptr, ptr %__a.addr, align 8 %1 = load ptr, ptr %0, align 8 store ptr %1, ptr %first, align 8 %second = getelementptr inbounds %"struct.std::pair.3", ptr %this1, i32 0, i32 1 - %2 = load ptr, ptr %__y.addr, align 8 + %2 = load ptr, ptr %__b.addr, align 8 %3 = load ptr, ptr %2, align 8 store ptr %3, ptr %second, align 8 ret void @@ -1375,7 +1307,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_storage = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #12 ret ptr %call } @@ -1385,7 +1317,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_membufIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #12 ret ptr %call } @@ -1400,7 +1332,7 @@ entry: } ; Function Attrs: nounwind willreturn memory(read) -declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #10 +declare noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef) #7 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_Alloc_nodeclIS2_EEPSt13_Rb_tree_nodeIS2_EOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__arg) #0 comdat align 2 { @@ -1418,7 +1350,7 @@ entry: } ; Function Attrs: nounwind -declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 +declare void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #8 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE14_M_create_nodeIJS2_EEEPSt13_Rb_tree_nodeIS2_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { @@ -1441,17 +1373,29 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE11_M_get_nodeEv(ptr noundef nonnull align 8 dereferenceable(48) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - ret ptr %call2 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 + store ptr %call, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE17_M_construct_nodeIJS2_EEEvPSt13_Rb_tree_nodeIS2_EDpOT_(ptr noundef nonnull align 8 dereferenceable(48) %this, ptr noundef %__node, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__args.addr.i4 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__node.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 @@ -1460,30 +1404,31 @@ entry: store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__node.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8_Rb_treeIPK1AS2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE21_M_get_Node_allocatorEv(ptr noundef nonnull align 8 dereferenceable(48) %this1) #12 %1 = load ptr, ptr %__node.addr, align 8 %call2 = call noundef ptr @_ZNSt13_Rb_tree_nodeIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(40) %1) %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call2, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i3, align 8 + store ptr %5, ptr %__args.addr.i4, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i3, align 8 + %7 = load ptr, ptr %__args.addr.i4, align 8 + %8 = load ptr, ptr %7, align 8 + store ptr %8, ptr %6, align 8 ret void } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE8allocateERS5_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorISt13_Rb_tree_nodeIPK1AEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1492,74 +1437,45 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 230584300921369395 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 461168601842738790 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 40 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 40 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 230584300921369395 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #11 +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #12 - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeIPK1AEEE9constructIS3_JS3_EEEvRS5_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPK1AEE9constructIS4_JS4_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} +declare noundef nonnull ptr @_Znwm(i64 noundef) #10 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #13 +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #11 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2ERKSt17_Rb_tree_iteratorIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2ERKSt17_Rb_tree_iteratorIS2_E(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__it) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__it.addr = alloca ptr, align 8 @@ -1586,14 +1502,14 @@ entry: %_M_header = getelementptr inbounds %"struct.std::_Rb_tree_header", ptr %add.ptr, i32 0, i32 0 %_M_left = getelementptr inbounds %"struct.std::_Rb_tree_node_base", ptr %_M_header, i32 0, i32 2 %0 = load ptr, ptr %_M_left, align 8 - call void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #5 + call void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %0) #12 %coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %retval, i32 0, i32 0 %1 = load ptr, ptr %coerce.dive, align 8 ret ptr %1 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt23_Rb_tree_const_iteratorIPK1AEC2EPKSt18_Rb_tree_node_base(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__x) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1606,31 +1522,24 @@ entry: ret void } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_set_2.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #14 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nounwind willreturn memory(read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #12 = { nounwind } +attributes #13 = { noreturn nounwind } +attributes #14 = { builtin nounwind } attributes #15 = { nounwind willreturn memory(read) } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1640,7 +1549,7 @@ attributes #17 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/single-inheritance-1.cpp.bc b/test_cases_bc/basic_cpp_tests/single-inheritance-1.cpp.bc index e57ec95f..eef7a0a9 100644 --- a/test_cases_bc/basic_cpp_tests/single-inheritance-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/single-inheritance-1.cpp.bc @@ -260,4 +260,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/single-inheritance-2.cpp.bc b/test_cases_bc/basic_cpp_tests/single-inheritance-2.cpp.bc index c5a740c4..5428d277 100644 --- a/test_cases_bc/basic_cpp_tests/single-inheritance-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/single-inheritance-2.cpp.bc @@ -283,4 +283,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/single-inheritance-3.cpp.bc b/test_cases_bc/basic_cpp_tests/single-inheritance-3.cpp.bc index e4d3c664..4135ad9c 100644 --- a/test_cases_bc/basic_cpp_tests/single-inheritance-3.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/single-inheritance-3.cpp.bc @@ -317,4 +317,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/single-inheritance-4.cpp.bc b/test_cases_bc/basic_cpp_tests/single-inheritance-4.cpp.bc index 904c42d2..06484b07 100644 --- a/test_cases_bc/basic_cpp_tests/single-inheritance-4.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/single-inheritance-4.cpp.bc @@ -263,4 +263,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/stack-1.cpp.bc b/test_cases_bc/basic_cpp_tests/stack-1.cpp.bc index a344a24c..21372f92 100644 --- a/test_cases_bc/basic_cpp_tests/stack-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/stack-1.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/s target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::stack" = type { %"class.std::deque" } %"class.std::deque" = type { %"class.std::_Deque_base" } %"class.std::_Deque_base" = type { %"struct.std::_Deque_base>::_Deque_impl" } @@ -51,31 +52,19 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m = comdat any - $_ZSt16__deque_buf_sizem = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m = comdat any +$_ZNSt15__new_allocatorI1AE10deallocateEPS0_m = comdat any $_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m = comdat any - -$_ZNSaIP1AED2Ev = comdat any - $_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIP1AEC2IS_EERKSaIT_E = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev = comdat any +$_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m = comdat any +$_ZNSt15__new_allocatorIP1AED2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AED2Ev = comdat any - -$_ZNSaI1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AED2Ev = comdat any +$_ZNSt15__new_allocatorI1AED2Ev = comdat any $_ZNSt5dequeI1ASaIS0_EEC2Ev = comdat any @@ -85,12 +74,8 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm = comdat any -$_ZNSaI1AEC2Ev = comdat any - $_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev = comdat any $_ZSt3maxImERKT_S2_S2_ = comdat any @@ -101,30 +86,18 @@ $_ZNSt11_Deque_baseI1ASaIS0_EE15_M_create_nodesEPPS0_S4_ = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_ = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIP1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv = comdat any -$_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorI1AE8allocateEmPKv = comdat any $_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv = comdat any $_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_ = comdat any - $_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_ = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_ = comdat any - $_ZN1AC2ERKS_ = comdat any $_ZNKSt5dequeI1ASaIS0_EE4sizeEv = comdat any @@ -137,12 +110,8 @@ $_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_ = comdat any $_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv = comdat any - $_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPP1AS2_ET0_T_S4_S3_ = comdat any @@ -161,7 +130,9 @@ $_ZSt12__niter_baseIPP1AET_S3_ = comdat any $_ZSt14__copy_move_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any @@ -169,7 +140,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPP1AS2_ET1_T0_S4_S3_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_ = comdat any $_ZNSt5dequeI1ASaIS0_EE4backEv = comdat any @@ -179,12 +150,8 @@ $_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv = comdat any $_ZNSt5dequeI1ASaIS0_EE8pop_backEv = comdat any -$_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_ = comdat any - $_ZNSt5dequeI1ASaIS0_EE15_M_pop_back_auxEv = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -194,8 +161,6 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @@ -203,7 +168,6 @@ $_ZTI1A = comdat any @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 @.str.3 = private unnamed_addr constant [48 x i8] c"cannot create std::deque larger than max_size()\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_stack_1.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -338,24 +302,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -371,7 +319,7 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %astack) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #13 invoke void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEE4pushERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %astack, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad @@ -395,7 +343,7 @@ invoke.cont2: ; preds = %invoke.cont1 invoke.cont3: ; preds = %invoke.cont2 store i32 0, ptr %retval, align 4 - call void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #5 + call void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #13 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -406,7 +354,7 @@ lpad: ; preds = %invoke.cont2, %invo store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #5 + call void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -418,7 +366,7 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -430,7 +378,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -462,7 +410,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::stack", ptr %this1, i32 0, i32 0 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeI1ASaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeI1ASaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret ptr %call } @@ -473,18 +421,18 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::stack", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeI1ASaIS0_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeI1ASaIS0_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5stackI1ASt5dequeIS0_SaIS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::stack", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret void } @@ -503,28 +451,28 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %agg.tmp = alloca %"struct.std::_Deque_iterator", align 8 %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt5dequeI1ASaIS0_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 invoke void @_ZNSt5dequeI1ASaIS0_EE15_M_destroy_dataESt15_Deque_iteratorIS0_RS0_PS0_ES6_RKS1_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -549,7 +497,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 ret void } @@ -563,7 +511,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #13 ret void } @@ -578,9 +526,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #9 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #15 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #13 + call void @_ZSt9terminatev() #14 unreachable } @@ -589,7 +537,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -610,24 +558,24 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #13 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #13 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -681,7 +629,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #13 br label %for.inc for.inc: ; preds = %for.body @@ -694,9 +642,13 @@ for.end: ; preds = %for.cond ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -705,37 +657,51 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #14 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -747,36 +713,26 @@ entry: to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - invoke void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont2 unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont2 invoke.cont2: ; preds = %invoke.cont ret void -terminate.lpad: ; preds = %invoke.cont, %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %entry + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #15 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #14 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef %__size) #2 comdat { entry: @@ -800,59 +756,40 @@ cond.end: ; preds = %cond.false, %cond.t } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 +declare void @_ZdlPv(ptr noundef) #7 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -866,44 +803,23 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AEC2IS_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -912,17 +828,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -931,10 +837,10 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #11 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8 ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -944,7 +850,7 @@ entry: } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 @@ -952,7 +858,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #13 invoke void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -966,7 +872,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -978,13 +884,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 ret void } @@ -1058,14 +969,14 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #13 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #13 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 @@ -1092,12 +1003,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #13 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #13 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -1131,7 +1042,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #15 + call void @__clang_call_terminate(ptr %26) #14 unreachable unreachable: ; preds = %catch @@ -1139,17 +1050,7 @@ unreachable: ; preds = %catch } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseI1ASaIS0_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1159,23 +1060,14 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorI1ARS0_PS0_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1221,9 +1113,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -1232,23 +1128,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseI1ASaIS0_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i5 = invoke noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 + ret ptr %call.i5 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i4) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -1308,10 +1215,10 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #13 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_destroy_nodesEPPS0_S4_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #13 invoke void @__cxa_rethrow() #16 to label %unreachable unwind label %lpad2 @@ -1345,7 +1252,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #15 + call void @__clang_call_terminate(ptr %15) #14 unreachable unreachable: ; preds = %catch @@ -1373,7 +1280,7 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #13 %add.ptr = getelementptr inbounds %class.A, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 @@ -1381,21 +1288,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1404,64 +1299,62 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #12 +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #13 +declare noundef nonnull ptr @_Znwm(i64 noundef) #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseI1ASaIS0_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1470,28 +1363,29 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #16 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #16 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1504,6 +1398,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1528,55 +1428,57 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #13 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %4, i32 1 + %9 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %9, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %10 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %10) br label %if.end if.end: ; preds = %if.else, %if.then ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE16_M_push_back_auxIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call2 = call noundef i64 @_ZNKSt5dequeI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #16 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #18 unreachable if.end: ; preds = %entry @@ -1594,44 +1496,40 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #13 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #5 + %8 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %8, i64 1 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #13 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %9 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 + store ptr %9, ptr %_M_cur17, align 8 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -1652,7 +1550,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorI1ARS0_PS0_ES5_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 ret i64 %call } @@ -1662,13 +1560,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call2 = call noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #13 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #12 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #11 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1714,7 +1612,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorI1ARS0_PS0_E14_S_buffer_sizeEv() #13 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1725,69 +1623,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1818,16 +1719,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -1989,7 +1880,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE17_M_deallocate_mapEPPS0_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #13 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -2004,14 +1895,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #13 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #13 ret void } @@ -2061,11 +1952,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #13 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #13 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #13 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2128,12 +2019,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2150,8 +2041,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2159,17 +2050,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #14 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #12 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2181,11 +2100,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #13 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #13 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #13 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPP1AS2_ET1_T0_S4_S3_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPP1AET_RKS3_S3_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2219,12 +2138,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AEEPT_PKS5_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIP1AS4_EEPT0_PT_S8_S6_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2241,8 +2160,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2253,14 +2172,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIP1AS4_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2270,9 +2204,9 @@ entry: %__tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorI1ARS0_PS0_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #5 - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #5 + call void @_ZNSt5dequeI1ASaIS0_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorI1ARS0_PS0_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #13 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorI1ARS0_PS0_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #13 ret ptr %call2 } @@ -2293,7 +2227,7 @@ if.then: ; preds = %entry %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 3 %2 = load ptr, ptr %_M_node, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #13 %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 %3 = load ptr, ptr %_M_last, align 8 %_M_cur2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 0 @@ -2322,6 +2256,10 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i10 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -2343,12 +2281,19 @@ if.then: ; preds = %entry %2 = load ptr, ptr %_M_cur6, align 8 %incdec.ptr = getelementptr inbounds %class.A, ptr %2, i32 -1 store ptr %incdec.ptr, ptr %_M_cur6, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_cur9 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish8, i32 0, i32 0 %3 = load ptr, ptr %_M_cur9, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %3) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %3, ptr %__p.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i10, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i10, align 8 br label %if.end if.else: ; preds = %entry @@ -2362,29 +2307,20 @@ if.end: ; preds = %invoke.cont, %if.th ret void terminate.lpad: ; preds = %if.else - %4 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } catch ptr null - %5 = extractvalue { ptr, i32 } %4, 0 - call void @__clang_call_terminate(ptr %5) #15 + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeI1ASaIS0_EE15_M_pop_back_auxEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i14 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -2392,7 +2328,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 1 %0 = load ptr, ptr %_M_first, align 8 - call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %0) #5 + call void @_ZNSt11_Deque_baseI1ASaIS0_EE18_M_deallocate_nodeEPS0_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %0) #13 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish3 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 3 %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 @@ -2400,7 +2336,7 @@ entry: %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish5, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 %add.ptr = getelementptr inbounds ptr, ptr %1, i64 -1 - call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish3, ptr noundef %add.ptr) #5 + call void @_ZNSt15_Deque_iteratorI1ARS0_PS0_E11_M_set_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish3, ptr noundef %add.ptr) #13 %_M_impl6 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish7 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl6, i32 0, i32 3 %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish7, i32 0, i32 2 @@ -2410,52 +2346,41 @@ entry: %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 0 store ptr %add.ptr8, ptr %_M_cur, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %_M_impl11 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish12 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl11, i32 0, i32 3 %_M_cur13 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish12, i32 0, i32 0 %3 = load ptr, ptr %_M_cur13, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %3) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_stack_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %3, ptr %__p.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i14, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i14, align 8 ret void } attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #12 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } +attributes #18 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2465,7 +2390,7 @@ attributes #17 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/stack-2.cpp.bc b/test_cases_bc/basic_cpp_tests/stack-2.cpp.bc index f87961b2..7e235b18 100644 --- a/test_cases_bc/basic_cpp_tests/stack-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/stack-2.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/s target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::stack" = type { %"class.std::deque" } %"class.std::deque" = type { %"class.std::_Deque_base" } %"class.std::_Deque_base" = type { %"struct.std::_Deque_base>::_Deque_impl" } @@ -51,31 +52,19 @@ $_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m = comdat any - $_ZSt16__deque_buf_sizem = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m = comdat any +$_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m = comdat any $_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m = comdat any - -$_ZNSaIPPK1AED2Ev = comdat any - $_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSaIPPK1AEC2IS1_EERKSaIT_E = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev = comdat any +$_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m = comdat any -$_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m = comdat any +$_ZNSt15__new_allocatorIPPK1AED2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev = comdat any - -$_ZNSaIPK1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev = comdat any +$_ZNSt15__new_allocatorIPK1AED2Ev = comdat any $_ZNSt5dequeIPK1ASaIS2_EEC2Ev = comdat any @@ -85,12 +74,8 @@ $_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_initialize_mapEm = comdat any -$_ZNSaIPK1AEC2Ev = comdat any - $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev = comdat any - $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev = comdat any $_ZSt3maxImERKT_S2_S2_ = comdat any @@ -101,19 +86,11 @@ $_ZNSt11_Deque_baseIPK1ASaIS2_EE15_M_create_nodesEPPS2_S6_ = comdat any $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_ = comdat any -$_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv = comdat any $_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_allocate_nodeEv = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIPK1AE8allocateEmPKv = comdat any $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv = comdat any @@ -121,14 +98,10 @@ $_ZNSt5dequeIPK1ASaIS2_EE9push_backEOS2_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_ = comdat any - $_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE4backEv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_ = comdat any - $_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv = comdat any $_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv = comdat any @@ -139,12 +112,8 @@ $_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_ = comdat any $_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv = comdat any - $_ZNSt5dequeIPK1ASaIS2_EE17_M_reallocate_mapEmb = comdat any $_ZSt4copyIPPPK1AS4_ET0_T_S6_S5_ = comdat any @@ -163,7 +132,9 @@ $_ZSt12__niter_baseIPPPK1AET_S5_ = comdat any $_ZSt14__copy_move_a2ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any -$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_ = comdat any +$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_ = comdat any + +$_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_ = comdat any $_ZSt22__copy_move_backward_aILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any @@ -171,7 +142,7 @@ $_ZSt23__copy_move_backward_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any $_ZSt23__copy_move_backward_a2ILb0EPPPK1AS4_ET1_T0_S6_S5_ = comdat any -$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_ = comdat any +$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_ = comdat any $_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv = comdat any @@ -179,12 +150,8 @@ $_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv = comdat any $_ZNSt5dequeIPK1ASaIS2_EE8pop_backEv = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE7destroyIS2_EEvRS3_PT_ = comdat any - $_ZNSt5dequeIPK1ASaIS2_EE15_M_pop_back_auxEv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AE7destroyIS3_EEvPT_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -194,8 +161,6 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @@ -203,7 +168,6 @@ $_ZTI1A = comdat any @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 @.str.3 = private unnamed_addr constant [48 x i8] c"cannot create std::deque larger than max_size()\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_stack_2.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -338,24 +302,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -372,7 +320,7 @@ entry: store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 call void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEEC2IS5_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %astack) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #13 store ptr %a, ptr %ref.tmp, align 8 invoke void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEE4pushEOS2_(ptr noundef nonnull align 8 dereferenceable(80) %astack, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont unwind label %lpad @@ -398,7 +346,7 @@ invoke.cont2: ; preds = %invoke.cont1 invoke.cont3: ; preds = %invoke.cont2 store i32 0, ptr %retval, align 4 - call void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #5 + call void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #13 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -409,7 +357,7 @@ lpad: ; preds = %invoke.cont2, %invo store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #5 + call void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %astack) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -421,7 +369,7 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEEC2IS5_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEEC2IS5_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -433,7 +381,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -465,7 +413,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::stack", ptr %this1, i32 0, i32 0 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret ptr %call } @@ -476,18 +424,18 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::stack", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeIPK1ASaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeIPK1ASaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5stackIPK1ASt5dequeIS2_SaIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %c = getelementptr inbounds %"class.std::stack", ptr %this1, i32 0, i32 0 - call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #5 + call void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %c) #13 ret void } @@ -506,28 +454,28 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %agg.tmp = alloca %"struct.std::_Deque_iterator", align 8 %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt5dequeIPK1ASaIS2_EE5beginEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %agg.tmp2, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 invoke void @_ZNSt5dequeIPK1ASaIS2_EE15_M_destroy_dataESt15_Deque_iteratorIS2_RS2_PS2_ES8_RKS3_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %agg.tmp, ptr noundef %agg.tmp2, ptr noundef nonnull align 1 dereferenceable(1) %call) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -552,7 +500,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 ret void } @@ -566,7 +514,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #13 ret void } @@ -581,9 +529,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #9 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #15 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #13 + call void @_ZSt9terminatev() #14 unreachable } @@ -592,7 +540,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -613,24 +561,24 @@ if.then: ; preds = %entry %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 3 %2 = load ptr, ptr %_M_node4, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 1 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %1, ptr noundef %add.ptr) #13 %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl5, i32 0, i32 0 %3 = load ptr, ptr %_M_map6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 1 %4 = load i64, ptr %_M_map_size, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %3, i64 noundef %4) #13 br label %if.end if.end: ; preds = %if.then, %entry %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl8) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(32) %__x) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -684,7 +632,7 @@ for.cond: ; preds = %for.inc, %entry for.body: ; preds = %for.cond %3 = load ptr, ptr %__n, align 8 %4 = load ptr, ptr %3, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %4) #13 br label %for.inc for.inc: ; preds = %for.body @@ -697,9 +645,13 @@ for.end: ; preds = %for.cond ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p, i64 noundef %__n) #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -708,37 +660,51 @@ entry: store ptr %__p, ptr %__p.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %0 = load ptr, ptr %__p.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, ptr noundef %0, i64 noundef %1) - to label %invoke.cont unwind label %terminate.lpad + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load ptr, ptr %__p.addr.i, align 8 + %4 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %3, i64 noundef %4) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void -terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } +terminate.lpad: ; No predecessors! + %5 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %6 = extractvalue { ptr, i32 } %5, 0 + call void @__clang_call_terminate(ptr %6) #14 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %__p) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -750,36 +716,26 @@ entry: to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - invoke void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %0, i64 noundef %call) - to label %invoke.cont2 unwind label %terminate.lpad + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %0, ptr %__p.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef %2, i64 noundef %3) + br label %invoke.cont2 invoke.cont2: ; preds = %invoke.cont ret void -terminate.lpad: ; preds = %invoke.cont, %entry - %1 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %entry + %4 = landingpad { ptr, i32 } catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #15 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #14 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef %__size) #2 comdat { entry: @@ -803,59 +759,40 @@ cond.end: ; preds = %cond.false, %cond.t } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 +declare void @_ZdlPv(ptr noundef) #7 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr noalias sret(%"class.std::allocator.0") align 1 %agg.result, ptr noundef nonnull align 8 dereferenceable(80) %this) #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %result.ptr = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %agg.result, ptr %result.ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - call void @_ZNSaIPPK1AEC2IS1_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %agg.result, ptr noundef nonnull align 1 dereferenceable(1) %call) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPPK1AEE10deallocateERS4_PS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + store ptr %agg.result, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -869,44 +806,23 @@ entry: ret ptr %_M_impl } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPPK1AEC2IS1_EERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AE10deallocateEPS4_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -915,17 +831,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -934,10 +840,10 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #11 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8 ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -947,7 +853,7 @@ entry: } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 @@ -955,7 +861,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #13 invoke void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_initialize_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this1, i64 noundef 0) to label %invoke.cont unwind label %lpad @@ -969,7 +875,7 @@ lpad: ; preds = %entry store ptr %1, ptr %exn.slot, align 8 %2 = extractvalue { ptr, i32 } %0, 1 store i32 %2, ptr %ehselector.slot, align 4 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %_M_impl) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -981,13 +887,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE11_Deque_implC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 ret void } @@ -1061,14 +972,14 @@ lpad: ; preds = %entry catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %14 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %14 = call ptr @__cxa_begin_catch(ptr %exn) #13 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 0 %15 = load ptr, ptr %_M_map16, align 8 %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl17, i32 0, i32 1 %16 = load i64, ptr %_M_map_size18, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %15, i64 noundef %16) #13 %_M_impl19 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map20 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl19, i32 0, i32 0 store ptr null, ptr %_M_map20, align 8 @@ -1095,12 +1006,12 @@ try.cont: ; preds = %invoke.cont %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl25, i32 0, i32 2 %20 = load ptr, ptr %__nstart, align 8 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start, ptr noundef %20) #13 %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl26, i32 0, i32 3 %21 = load ptr, ptr %__nfinish, align 8 %add.ptr27 = getelementptr inbounds ptr, ptr %21, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef %add.ptr27) #13 %_M_impl28 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start29 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl28, i32 0, i32 2 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_start29, i32 0, i32 1 @@ -1134,7 +1045,7 @@ terminate.lpad: ; preds = %lpad23 %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #15 + call void @__clang_call_terminate(ptr %26) #14 unreachable unreachable: ; preds = %catch @@ -1142,17 +1053,7 @@ unreachable: ; preds = %catch } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_Deque_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1162,23 +1063,14 @@ entry: %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 1 store i64 0, ptr %_M_map_size, align 8 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 2 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %this1, i32 0, i32 3 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #8 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %this) unnamed_addr #5 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1224,9 +1116,13 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE15_M_allocate_mapEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__n) #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %__map_alloc = alloca %"class.std::allocator.0", align 1 @@ -1235,23 +1131,34 @@ entry: store ptr %this, ptr %this.addr, align 8 store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + call void @_ZNKSt11_Deque_baseIPK1ASaIS2_EE20_M_get_map_allocatorEv(ptr sret(%"class.std::allocator.0") align 1 %__map_alloc, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %0 = load i64, ptr %__n.addr, align 8 - %call = invoke noundef ptr @_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 - ret ptr %call + store ptr %__map_alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i5 = invoke noundef ptr @_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m.exit + store ptr %__map_alloc, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 + ret ptr %call.i5 lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - call void @_ZNSaIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__map_alloc) #5 + %4 = extractvalue { ptr, i32 } %3, 0 + store ptr %4, ptr %exn.slot, align 8 + %5 = extractvalue { ptr, i32 } %3, 1 + store i32 %5, ptr %ehselector.slot, align 4 + store ptr %__map_alloc, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + call void @_ZNSt15__new_allocatorIPPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i4) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -1311,10 +1218,10 @@ lpad: ; preds = %for.body catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #5 + %8 = call ptr @__cxa_begin_catch(ptr %exn) #13 %9 = load ptr, ptr %__nstart.addr, align 8 %10 = load ptr, ptr %__cur, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_destroy_nodesEPPS2_S6_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %9, ptr noundef %10) #13 invoke void @__cxa_rethrow() #16 to label %unreachable unwind label %lpad2 @@ -1348,7 +1255,7 @@ terminate.lpad: ; preds = %lpad2 %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #15 + call void @__clang_call_terminate(ptr %15) #14 unreachable unreachable: ; preds = %catch @@ -1376,7 +1283,7 @@ entry: store ptr %2, ptr %_M_first, align 8 %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 1 %3 = load ptr, ptr %_M_first2, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #13 %add.ptr = getelementptr inbounds ptr, ptr %3, i64 %call %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 store ptr %add.ptr, ptr %_M_last, align 8 @@ -1384,21 +1291,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPPK1AEE8allocateERS4_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1407,64 +1302,62 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #12 +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #13 +declare noundef nonnull ptr @_Znwm(i64 noundef) #10 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE16_M_allocate_nodeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %call = call noundef i64 @_ZSt16__deque_buf_sizem(i64 noundef 8) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %call) - ret ptr %call2 + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %call, ptr %__n.addr.i, align 8 + %0 = load ptr, ptr %__a.addr.i, align 8 + %1 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) + ret ptr %call.i } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1473,28 +1366,29 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1520,6 +1414,12 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i11 = alloca ptr, align 8 + %__args.addr.i12 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1544,56 +1444,59 @@ if.then: ; preds = %entry %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %2 = load ptr, ptr %_M_cur7, align 8 %3 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i11, align 8 + store ptr %6, ptr %__args.addr.i12, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i11, align 8 + %8 = load ptr, ptr %__args.addr.i12, align 8 + %9 = load ptr, ptr %8, align 8 + store ptr %9, ptr %7, align 8 %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl8, i32 0, i32 3 %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish9, i32 0, i32 0 - %4 = load ptr, ptr %_M_cur10, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %4, i32 1 + %10 = load ptr, ptr %_M_cur10, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 store ptr %incdec.ptr, ptr %_M_cur10, align 8 br label %if.end if.else: ; preds = %entry - %5 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %5) + %11 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef nonnull align 8 dereferenceable(8) %11) br label %if.end if.end: ; preds = %if.else, %if.then - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5dequeIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE16_M_push_back_auxIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i19 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call2 = call noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %cmp = icmp eq i64 %call, %call2 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #16 + call void @_ZSt20__throw_length_errorPKc(ptr noundef @.str.3) #18 unreachable if.end: ; preds = %entry @@ -1611,23 +1514,36 @@ if.end: ; preds = %entry %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish6, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl4, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + store ptr %_M_impl4, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i18, align 8 + store ptr %5, ptr %__args.addr.i19, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i18, align 8 + %7 = load ptr, ptr %__args.addr.i19, align 8 + %8 = load ptr, ptr %7, align 8 + store ptr %8, ptr %6, align 8 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_node11 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 3 - %3 = load ptr, ptr %_M_node11, align 8 - %add.ptr12 = getelementptr inbounds ptr, ptr %3, i64 1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #5 + %9 = load ptr, ptr %_M_node11, align 8 + %add.ptr12 = getelementptr inbounds ptr, ptr %9, i64 1 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish8, ptr noundef %add.ptr12) #13 %_M_impl13 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish14 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl13, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish14, i32 0, i32 1 - %4 = load ptr, ptr %_M_first, align 8 + %10 = load ptr, ptr %_M_first, align 8 %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish16 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl15, i32 0, i32 3 %_M_cur17 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish16, i32 0, i32 0 - store ptr %4, ptr %_M_cur17, align 8 + store ptr %10, ptr %_M_cur17, align 8 ret void } @@ -1638,29 +1554,12 @@ entry: %__tmp = alloca %"struct.std::_Deque_iterator", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #5 - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #5 + call void @_ZNSt5dequeIPK1ASaIS2_EE3endEv(ptr sret(%"struct.std::_Deque_iterator") align 8 %__tmp, ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_EmmEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #13 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt15_Deque_iteratorIPK1ARS2_PS2_EdeEv(ptr noundef nonnull align 8 dereferenceable(32) %__tmp) #13 ret ptr %call2 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNKSt5dequeIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { entry: @@ -1671,7 +1570,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 2 - %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #5 + %call = call noundef i64 @_ZStmiRKSt15_Deque_iteratorIPK1ARS2_PS2_ES7_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish, ptr noundef nonnull align 8 dereferenceable(32) %_M_start) #13 ret i64 %call } @@ -1681,13 +1580,13 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 - %call2 = call noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 + %call2 = call noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #13 ret i64 %call2 } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #12 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #11 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE22_M_reserve_map_at_backEm(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add) #0 comdat align 2 { @@ -1733,7 +1632,7 @@ entry: %__y.addr = alloca ptr, align 8 store ptr %__x, ptr %__x.addr, align 8 store ptr %__y, ptr %__y.addr, align 8 - %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #5 + %call = call noundef i64 @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E14_S_buffer_sizeEv() #13 %0 = load ptr, ptr %__x.addr, align 8 %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %0, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 @@ -1744,69 +1643,72 @@ entry: %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - %sub = sub nsw i64 %sub.ptr.div, 1 - %mul = mul nsw i64 %call, %sub %4 = load ptr, ptr %__x.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 0 - %5 = load ptr, ptr %_M_cur, align 8 + %_M_node2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %4, i32 0, i32 3 + %5 = load ptr, ptr %_M_node2, align 8 + %tobool = icmp ne ptr %5, null + %conv = zext i1 %tobool to i64 + %sub = sub nsw i64 %sub.ptr.div, %conv + %mul = mul nsw i64 %call, %sub %6 = load ptr, ptr %__x.addr, align 8 - %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 1 - %7 = load ptr, ptr %_M_first, align 8 - %sub.ptr.lhs.cast2 = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast3 = ptrtoint ptr %7 to i64 - %sub.ptr.sub4 = sub i64 %sub.ptr.lhs.cast2, %sub.ptr.rhs.cast3 - %sub.ptr.div5 = sdiv exact i64 %sub.ptr.sub4, 8 - %add = add nsw i64 %mul, %sub.ptr.div5 - %8 = load ptr, ptr %__y.addr, align 8 - %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 2 - %9 = load ptr, ptr %_M_last, align 8 + %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %6, i32 0, i32 0 + %7 = load ptr, ptr %_M_cur, align 8 + %8 = load ptr, ptr %__x.addr, align 8 + %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %8, i32 0, i32 1 + %9 = load ptr, ptr %_M_first, align 8 + %sub.ptr.lhs.cast3 = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast4 = ptrtoint ptr %9 to i64 + %sub.ptr.sub5 = sub i64 %sub.ptr.lhs.cast3, %sub.ptr.rhs.cast4 + %sub.ptr.div6 = sdiv exact i64 %sub.ptr.sub5, 8 + %add = add nsw i64 %mul, %sub.ptr.div6 %10 = load ptr, ptr %__y.addr, align 8 - %_M_cur6 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 0 - %11 = load ptr, ptr %_M_cur6, align 8 - %sub.ptr.lhs.cast7 = ptrtoint ptr %9 to i64 - %sub.ptr.rhs.cast8 = ptrtoint ptr %11 to i64 - %sub.ptr.sub9 = sub i64 %sub.ptr.lhs.cast7, %sub.ptr.rhs.cast8 - %sub.ptr.div10 = sdiv exact i64 %sub.ptr.sub9, 8 - %add11 = add nsw i64 %add, %sub.ptr.div10 - ret i64 %add11 + %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %10, i32 0, i32 2 + %11 = load ptr, ptr %_M_last, align 8 + %12 = load ptr, ptr %__y.addr, align 8 + %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %12, i32 0, i32 0 + %13 = load ptr, ptr %_M_cur7, align 8 + %sub.ptr.lhs.cast8 = ptrtoint ptr %11 to i64 + %sub.ptr.rhs.cast9 = ptrtoint ptr %13 to i64 + %sub.ptr.sub10 = sub i64 %sub.ptr.lhs.cast8, %sub.ptr.rhs.cast9 + %sub.ptr.div11 = sdiv exact i64 %sub.ptr.sub10, 8 + %add12 = add nsw i64 %add, %sub.ptr.div11 + ret i64 %add12 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt5dequeIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 9223372036854775807, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1837,16 +1739,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE17_M_reallocate_mapEmb(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %__nodes_to_add, i1 noundef zeroext %__add_at_front) #0 comdat align 2 { entry: @@ -2008,7 +1900,7 @@ cond.end46: ; preds = %cond.false45, %cond %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl59, i32 0, i32 1 %32 = load i64, ptr %_M_map_size60, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE17_M_deallocate_mapEPPS2_m(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %31, i64 noundef %32) #13 %33 = load ptr, ptr %__new_map, align 8 %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl61, i32 0, i32 0 @@ -2023,14 +1915,14 @@ if.end65: ; preds = %cond.end46, %if.end %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl66, i32 0, i32 2 %35 = load ptr, ptr %__new_nstart, align 8 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_start67, ptr noundef %35) #13 %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl68, i32 0, i32 3 %36 = load ptr, ptr %__new_nstart, align 8 %37 = load i64, ptr %__old_num_nodes, align 8 %add.ptr70 = getelementptr inbounds ptr, ptr %36, i64 %37 %add.ptr71 = getelementptr inbounds ptr, ptr %add.ptr70, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish69, ptr noundef %add.ptr71) #13 ret void } @@ -2080,11 +1972,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #13 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #13 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #13 %call3 = call noundef ptr @_ZSt14__copy_move_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPPK1AET_RKS5_S5_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2147,12 +2039,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2169,8 +2061,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2178,17 +2070,45 @@ if.then: ; preds = %entry %5 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %5 call void @llvm.memmove.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) + br label %if.end3 + +if.else: ; preds = %entry + %6 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %6, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %7 = load ptr, ptr %__result.addr, align 8 + %8 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %7, ptr noundef %8) br label %if.end -if.end: ; preds = %if.then, %entry - %6 = load ptr, ptr %__result.addr, align 8 - %7 = load i64, ptr %_Num, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 +if.end: ; preds = %if.then2, %if.else + br label %if.end3 + +if.end3: ; preds = %if.end, %if.then + %9 = load ptr, ptr %__result.addr, align 8 + %10 = load i64, ptr %_Num, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %9, i64 %10 ret ptr %add.ptr } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #14 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #12 + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %__to, ptr noundef %__from) #2 comdat align 2 { +entry: + %__to.addr = alloca ptr, align 8 + %__from.addr = alloca ptr, align 8 + store ptr %__to, ptr %__to.addr, align 8 + store ptr %__from, ptr %__from.addr, align 8 + %0 = load ptr, ptr %__from.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__to.addr, align 8 + store ptr %1, ptr %2, align 8 + ret void +} ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt22__copy_move_backward_aILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #0 comdat { @@ -2200,11 +2120,11 @@ entry: store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %0) #13 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %1) #13 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPPK1AET_S5_(ptr noundef %2) #13 %call3 = call noundef ptr @_ZSt23__copy_move_backward_a1ILb0EPPPK1AS4_ET1_T0_S6_S5_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2) %call4 = call noundef ptr @_ZSt12__niter_wrapIPPPK1AET_RKS5_S5_(ptr noundef nonnull align 8 dereferenceable(8) %__result.addr, ptr noundef %call3) ret ptr %call4 @@ -2238,12 +2158,12 @@ entry: %0 = load ptr, ptr %__first.addr, align 8 %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 - %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) + %call = call noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %0, ptr noundef %1, ptr noundef %2) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AEEPT_PKS7_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPPK1AS6_EEPT0_PT_SA_S8_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result) #2 comdat align 2 { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 @@ -2260,8 +2180,8 @@ entry: %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %_Num, align 8 %2 = load i64, ptr %_Num, align 8 - %tobool = icmp ne i64 %2, 0 - br i1 %tobool, label %if.then, label %if.end + %cmp = icmp sgt i64 %2, 1 + br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry %3 = load ptr, ptr %__result.addr, align 8 @@ -2272,14 +2192,29 @@ if.then: ; preds = %entry %6 = load i64, ptr %_Num, align 8 %mul = mul i64 8, %6 call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr, ptr align 8 %5, i64 %mul, i1 false) + br label %if.end4 + +if.else: ; preds = %entry + %7 = load i64, ptr %_Num, align 8 + %cmp1 = icmp eq i64 %7, 1 + br i1 %cmp1, label %if.then2, label %if.end + +if.then2: ; preds = %if.else + %8 = load ptr, ptr %__result.addr, align 8 + %add.ptr3 = getelementptr inbounds ptr, ptr %8, i64 -1 + %9 = load ptr, ptr %__first.addr, align 8 + call void @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE12__assign_oneIPPK1AS6_EEvPT_PT0_(ptr noundef %add.ptr3, ptr noundef %9) br label %if.end -if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %_Num, align 8 - %idx.neg1 = sub i64 0, %8 - %add.ptr2 = getelementptr inbounds ptr, ptr %7, i64 %idx.neg1 - ret ptr %add.ptr2 +if.end: ; preds = %if.then2, %if.else + br label %if.end4 + +if.end4: ; preds = %if.end, %if.then + %10 = load ptr, ptr %__result.addr, align 8 + %11 = load i64, ptr %_Num, align 8 + %idx.neg5 = sub i64 0, %11 + %add.ptr6 = getelementptr inbounds ptr, ptr %10, i64 %idx.neg5 + ret ptr %add.ptr6 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2299,7 +2234,7 @@ if.then: ; preds = %entry %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 3 %2 = load ptr, ptr %_M_node, align 8 %add.ptr = getelementptr inbounds ptr, ptr %2, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %this1, ptr noundef %add.ptr) #13 %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 2 %3 = load ptr, ptr %_M_last, align 8 %_M_cur2 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %this1, i32 0, i32 0 @@ -2328,6 +2263,10 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i10 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -2349,12 +2288,19 @@ if.then: ; preds = %entry %2 = load ptr, ptr %_M_cur6, align 8 %incdec.ptr = getelementptr inbounds ptr, ptr %2, i32 -1 store ptr %incdec.ptr, ptr %_M_cur6, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl7, i32 0, i32 3 %_M_cur9 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish8, i32 0, i32 0 %3 = load ptr, ptr %_M_cur9, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE7destroyIS2_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %3) #5 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %3, ptr %__p.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i10, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i10, align 8 br label %if.end if.else: ; preds = %entry @@ -2368,29 +2314,20 @@ if.end: ; preds = %invoke.cont, %if.th ret void terminate.lpad: ; preds = %if.else - %4 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } catch ptr null - %5 = extractvalue { ptr, i32 } %4, 0 - call void @__clang_call_terminate(ptr %5) #15 + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE7destroyIS2_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE7destroyIS3_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZNSt5dequeIPK1ASaIS2_EE15_M_pop_back_auxEv(ptr noundef nonnull align 8 dereferenceable(80) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i14 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -2398,7 +2335,7 @@ entry: %_M_finish = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl, i32 0, i32 3 %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish, i32 0, i32 1 %0 = load ptr, ptr %_M_first, align 8 - call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %0) #5 + call void @_ZNSt11_Deque_baseIPK1ASaIS2_EE18_M_deallocate_nodeEPS2_(ptr noundef nonnull align 8 dereferenceable(80) %this1, ptr noundef %0) #13 %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish3 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl2, i32 0, i32 3 %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 @@ -2406,7 +2343,7 @@ entry: %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish5, i32 0, i32 3 %1 = load ptr, ptr %_M_node, align 8 %add.ptr = getelementptr inbounds ptr, ptr %1, i64 -1 - call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish3, ptr noundef %add.ptr) #5 + call void @_ZNSt15_Deque_iteratorIPK1ARS2_PS2_E11_M_set_nodeEPS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_finish3, ptr noundef %add.ptr) #13 %_M_impl6 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish7 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl6, i32 0, i32 3 %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish7, i32 0, i32 2 @@ -2416,52 +2353,41 @@ entry: %_M_finish10 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl9, i32 0, i32 3 %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish10, i32 0, i32 0 store ptr %add.ptr8, ptr %_M_cur, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt11_Deque_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(80) %this1) #13 %_M_impl11 = getelementptr inbounds %"class.std::_Deque_base", ptr %this1, i32 0, i32 0 %_M_finish12 = getelementptr inbounds %"struct.std::_Deque_base>::_Deque_impl_data", ptr %_M_impl11, i32 0, i32 3 %_M_cur13 = getelementptr inbounds %"struct.std::_Deque_iterator", ptr %_M_finish12, i32 0, i32 0 %3 = load ptr, ptr %_M_cur13, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE7destroyIS2_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %3) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE7destroyIS3_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_stack_2.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %3, ptr %__p.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i14, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i14, align 8 ret void } attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #12 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #13 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } +attributes #18 = { cold noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2471,7 +2397,7 @@ attributes #17 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/static-return1.cpp.bc b/test_cases_bc/basic_cpp_tests/static-return1.cpp.bc new file mode 100644 index 00000000..859b693d --- /dev/null +++ b/test_cases_bc/basic_cpp_tests/static-return1.cpp.bc @@ -0,0 +1,197 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/basic_cpp_tests/static-return1.cpp.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/static-return1.cpp" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 +@.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 +@.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 +@.str.3 = private unnamed_addr constant [5 x i8] c"HOME\00", align 1 + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +declare i32 @printf(ptr noundef, ...) #1 + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z12PARTIALALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z8MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z7NOALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z21EXPECTEDFAIL_MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z20EXPECTEDFAIL_NOALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z9RC_ACCESSii(i32 noundef %id, i32 noundef %flags) #0 { +entry: + %id.addr = alloca i32, align 4 + %flags.addr = alloca i32, align 4 + store i32 %id, ptr %id.addr, align 4 + store i32 %flags, ptr %flags.addr, align 4 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z10CXT_THREADiPc(i32 noundef %thdid, ptr noundef %cxt) #2 { +entry: + %thdid.addr = alloca i32, align 4 + %cxt.addr = alloca ptr, align 8 + store i32 %thdid, ptr %thdid.addr, align 4 + store ptr %cxt, ptr %cxt.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z10TCT_ACCESSiPc(i32 noundef %thdid, ptr noundef %cxt) #2 { +entry: + %thdid.addr = alloca i32, align 4 + %cxt.addr = alloca ptr, align 8 + store i32 %thdid, ptr %thdid.addr, align 4 + store ptr %cxt, ptr %cxt.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z15INTERLEV_ACCESSiPcS_(i32 noundef %thdid, ptr noundef %cxt, ptr noundef %lev) #2 { +entry: + %thdid.addr = alloca i32, align 4 + %cxt.addr = alloca ptr, align 8 + %lev.addr = alloca ptr, align 8 + store i32 %thdid, ptr %thdid.addr, align 4 + store ptr %cxt, ptr %cxt.addr, align 8 + store ptr %lev, ptr %lev.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z4LOCKPc(ptr noundef %lockname) #2 { +entry: + %lockname.addr = alloca ptr, align 8 + store ptr %lockname, ptr %lockname.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z5PAUSEPc(ptr noundef %str) #0 { +entry: + %str.addr = alloca ptr, align 8 + store ptr %str, ptr %str.addr, align 8 + %0 = load ptr, ptr %str.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %0) + %call1 = call i32 (ptr, ...) @printf(ptr noundef @.str.2) + %call2 = call i32 @getchar() + ret void +} + +declare i32 @getchar() #1 + +; Function Attrs: mustprogress noinline norecurse optnone uwtable +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 { +entry: + %retval = alloca i32, align 4 + %argc.addr = alloca i32, align 4 + %argv.addr = alloca ptr, align 8 + %p = alloca ptr, align 8 + %q = alloca ptr, align 8 + %p2 = alloca ptr, align 8 + %q4 = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + store i32 %argc, ptr %argc.addr, align 4 + store ptr %argv, ptr %argv.addr, align 8 + %call = call ptr @getenv(ptr noundef @.str.3) #6 + store ptr %call, ptr %p, align 8 + %call1 = call ptr @getenv(ptr noundef @.str.3) #6 + store ptr %call1, ptr %q, align 8 + %0 = load ptr, ptr %p, align 8 + %1 = load ptr, ptr %q, align 8 + call void @_Z9MUSTALIASPvS_(ptr noundef %0, ptr noundef %1) + %call3 = call ptr @__errno_location() #7 + store ptr %call3, ptr %p2, align 8 + %call5 = call ptr @__errno_location() #7 + store ptr %call5, ptr %q4, align 8 + %2 = load ptr, ptr %p2, align 8 + %3 = load ptr, ptr %q4, align 8 + call void @_Z9MUSTALIASPvS_(ptr noundef %2, ptr noundef %3) + ret i32 0 +} + +; Function Attrs: nounwind +declare ptr @getenv(ptr noundef) #4 + +; Function Attrs: nounwind willreturn memory(none) +declare ptr @__errno_location() #5 + +attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind willreturn memory(none) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nounwind } +attributes #7 = { nounwind willreturn memory(none) } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/static-return2.cpp.bc b/test_cases_bc/basic_cpp_tests/static-return2.cpp.bc new file mode 100644 index 00000000..e3f6b8b3 --- /dev/null +++ b/test_cases_bc/basic_cpp_tests/static-return2.cpp.bc @@ -0,0 +1,199 @@ +; ModuleID = '/home/runner/work/Test-Suite/Test-Suite/test_cases_bc/basic_cpp_tests/static-return2.cpp.bc' +source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/static-return2.cpp" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 +@.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 +@.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +declare i32 @printf(ptr noundef, ...) #1 + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z12PARTIALALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z8MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z7NOALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z21EXPECTEDFAIL_MAYALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z20EXPECTEDFAIL_NOALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { +entry: + %p.addr = alloca ptr, align 8 + %q.addr = alloca ptr, align 8 + store ptr %p, ptr %p.addr, align 8 + store ptr %q, ptr %q.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z9RC_ACCESSii(i32 noundef %id, i32 noundef %flags) #0 { +entry: + %id.addr = alloca i32, align 4 + %flags.addr = alloca i32, align 4 + store i32 %id, ptr %id.addr, align 4 + store i32 %flags, ptr %flags.addr, align 4 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str) + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z10CXT_THREADiPc(i32 noundef %thdid, ptr noundef %cxt) #2 { +entry: + %thdid.addr = alloca i32, align 4 + %cxt.addr = alloca ptr, align 8 + store i32 %thdid, ptr %thdid.addr, align 4 + store ptr %cxt, ptr %cxt.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z10TCT_ACCESSiPc(i32 noundef %thdid, ptr noundef %cxt) #2 { +entry: + %thdid.addr = alloca i32, align 4 + %cxt.addr = alloca ptr, align 8 + store i32 %thdid, ptr %thdid.addr, align 4 + store ptr %cxt, ptr %cxt.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z15INTERLEV_ACCESSiPcS_(i32 noundef %thdid, ptr noundef %cxt, ptr noundef %lev) #2 { +entry: + %thdid.addr = alloca i32, align 4 + %cxt.addr = alloca ptr, align 8 + %lev.addr = alloca ptr, align 8 + store i32 %thdid, ptr %thdid.addr, align 4 + store ptr %cxt, ptr %cxt.addr, align 8 + store ptr %lev, ptr %lev.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define dso_local void @_Z4LOCKPc(ptr noundef %lockname) #2 { +entry: + %lockname.addr = alloca ptr, align 8 + store ptr %lockname, ptr %lockname.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define dso_local void @_Z5PAUSEPc(ptr noundef %str) #0 { +entry: + %str.addr = alloca ptr, align 8 + store ptr %str, ptr %str.addr, align 8 + %0 = load ptr, ptr %str.addr, align 8 + %call = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %0) + %call1 = call i32 (ptr, ...) @printf(ptr noundef @.str.2) + %call2 = call i32 @getchar() + ret void +} + +declare i32 @getchar() #1 + +; Function Attrs: mustprogress noinline norecurse optnone uwtable +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 { +entry: + %retval = alloca i32, align 4 + %argc.addr = alloca i32, align 4 + %argv.addr = alloca ptr, align 8 + %time = alloca i64, align 8 + %p1 = alloca ptr, align 8 + %p2 = alloca ptr, align 8 + %q1 = alloca ptr, align 8 + %q2 = alloca ptr, align 8 + store i32 0, ptr %retval, align 4 + store i32 %argc, ptr %argc.addr, align 4 + store ptr %argv, ptr %argv.addr, align 8 + store i64 0, ptr %time, align 8 + %call = call ptr @gmtime(ptr noundef %time) #5 + store ptr %call, ptr %p1, align 8 + %call1 = call ptr @gmtime(ptr noundef %time) #5 + store ptr %call1, ptr %p2, align 8 + %call2 = call ptr @localtime(ptr noundef %time) #5 + store ptr %call2, ptr %q1, align 8 + %call3 = call ptr @localtime(ptr noundef %time) #5 + store ptr %call3, ptr %q2, align 8 + %0 = load ptr, ptr %p1, align 8 + %1 = load ptr, ptr %q1, align 8 + call void @_Z8MAYALIASPvS_(ptr noundef %0, ptr noundef %1) + %2 = load ptr, ptr %p1, align 8 + %3 = load ptr, ptr %p2, align 8 + call void @_Z9MUSTALIASPvS_(ptr noundef %2, ptr noundef %3) + %4 = load ptr, ptr %q1, align 8 + %5 = load ptr, ptr %q2, align 8 + call void @_Z9MUSTALIASPvS_(ptr noundef %4, ptr noundef %5) + ret i32 0 +} + +; Function Attrs: nounwind +declare ptr @gmtime(ptr noundef) #4 + +; Function Attrs: nounwind +declare ptr @localtime(ptr noundef) #4 + +attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nounwind } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/unordered_map-1.cpp.bc b/test_cases_bc/basic_cpp_tests/unordered_map-1.cpp.bc index b6df0a89..850077a2 100644 --- a/test_cases_bc/basic_cpp_tests/unordered_map-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/unordered_map-1.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/u target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"struct.std::piecewise_construct_t" = type { i8 } %"class.std::unordered_map" = type { %"class.std::_Hashtable" } %"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr } @@ -14,19 +15,21 @@ target triple = "x86_64-unknown-linux-gnu" %"struct.std::__detail::_Node_iterator_base" = type { ptr } %"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" } %"struct.std::pair" = type { i32, %class.A } -%"struct.std::__detail::_Hash_node_value_base" = type { %"struct.std::__detail::_Hash_node_base", %"struct.__gnu_cxx::__aligned_buffer" } %"struct.__gnu_cxx::__aligned_buffer" = type { %"union.std::aligned_storage<16, 8>::type" } %"union.std::aligned_storage<16, 8>::type" = type { [16 x i8] } -%"class.std::allocator.4" = type { i8 } +%"class.std::allocator.2" = type { i8 } %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node" = type { ptr, ptr } %"class.std::tuple" = type { %"struct.std::_Tuple_impl" } %"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base" } %"struct.std::_Head_base" = type { ptr } -%"class.std::tuple.7" = type { i8 } -%"struct.std::pair.9" = type { i8, i64 } -%"struct.std::_Index_tuple" = type { i8 } -%"struct.std::_Index_tuple.8" = type { i8 } +%"class.std::tuple.5" = type { i8 } +%"struct.std::__detail::_RehashStateGuard" = type { ptr, i64 } +%"struct.std::pair.7" = type { i8, i64 } %"struct.std::integral_constant" = type { i8 } +%"struct.std::__detail::_Mod_range_hashing" = type { i8 } +%"struct.std::__detail::_Select1st" = type { i8 } +%"struct.std::_Index_tuple" = type { i8 } +%"struct.std::_Index_tuple.6" = type { i8 } $_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEEC2Ev = comdat any @@ -58,18 +61,10 @@ $_ZNSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_M $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev = comdat any -$_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EEC2Ev = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev = comdat any -$_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EEC2Ev = comdat any -$_ZNSaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any $_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev = comdat any @@ -90,27 +85,19 @@ $_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE18_M_deallocate_nodeEPS6_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE7destroyIS5_EEvRS7_PT_ = comdat any - $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv = comdat any -$_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv = comdat any - $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE22_M_deallocate_node_ptrEPS6_ = comdat any -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE7destroyIS6_EEvPT_ = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EE6_M_getEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv = comdat any -$_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10pointer_toERS6_ = comdat any +$_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEES6_Lb0EE10pointer_toERS6_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE10deallocateERS7_PS6_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10deallocateEPS7_m = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10deallocateEPS6_m = comdat any $_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEPPNS5_15_Hash_node_baseEm = comdat any @@ -118,100 +105,68 @@ $_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiE $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm = comdat any -$_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_ = comdat any - -$_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKi1AELb0EEEEERKSaIT_E = comdat any +$_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_ = comdat any -$_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m = comdat any -$_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EED2Ev = comdat any -$_ZNSaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev = comdat any $_ZNSt8__detail9_Map_baseIiSt4pairIKi1AESaIS4_ENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOi = comdat any $_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS2_ = comdat any -$_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m = comdat any +$_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm = comdat any $_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m = comdat any -$_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE4_M_vEv = comdat any - $_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_ = comdat any $_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESM_IJEEEEEPNS5_16_Hashtable_allocISaINS5_10_Hash_nodeIS3_Lb0EEEEEEDpOT_ = comdat any -$_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeERS1_mmPNS5_10_Hash_nodeIS3_Lb0EEEm = comdat any +$_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS5_10_Hash_nodeIS3_Lb0EEEm = comdat any $_ZNKSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEptEv = comdat any $_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev = comdat any +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv = comdat any $_ZNKSt4hashIiEclEi = comdat any $_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EE7_M_cgetEv = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERS2_mm = comdat any - -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev = comdat any +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm = comdat any $_ZNKSt8__detail18_Mod_range_hashingclEmm = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv = comdat any - $_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_find_before_nodeEmRS1_m = comdat any -$_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mPNS_10_Hash_nodeIS4_Lb0EEE = comdat any +$_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mRKNS_16_Hash_node_valueIS4_Lb0EEE = comdat any + +$_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS5_16_Hash_node_valueIS3_Lb0EEE = comdat any -$_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS5_10_Hash_nodeIS3_Lb0EEE = comdat any +$_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE = comdat any -$_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS4_Lb0EEEE9_S_equalsEmRKSH_ = comdat any +$_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS2_RKNS_16_Hash_node_valueIS4_Lb0EEE = comdat any $_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv = comdat any $_ZNKSt8equal_toIiEclERKiS2_ = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv = comdat any - -$_ZNKSt8__detail10_Select1stclIRSt4pairIKi1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS7_ = comdat any +$_ZNKSt8__detail10_Select1stclIRKSt4pairIKi1AEEEONS0_10__1st_typeIT_E4typeEOS9_ = comdat any $_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EE7_M_cgetEv = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EE7_M_cgetEv = comdat any - -$_ZSt3getILm0EKi1AERNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERS6_ = comdat any - -$_ZNSt10__pair_getILm0EE5__getIKi1AEERT_RSt4pairIS4_T0_E = comdat any - -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS4_Lb0EEEm = comdat any - -$_ZNKSt8__detail10_Select1stclIRKSt4pairIKi1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS8_ = comdat any - -$_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE4_M_vEv = comdat any - -$_ZSt3getILm0EKi1AERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKS6_ = comdat any - -$_ZNSt10__pair_getILm0EE11__const_getIKi1AEERKT_RKSt4pairIS4_T0_E = comdat any - -$_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv = comdat any - $_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv = comdat any $_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv = comdat any +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS4_Lb0EEEm = comdat any + $_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_ = comdat any $_ZNSt11_Tuple_implILm0EJOiEEC2IiEEOT_ = comdat any @@ -220,21 +175,11 @@ $_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_ = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE16_M_allocate_nodeIJRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEPS6_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE8allocateERS7_m = comdat any - $_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEPT_S8_ = comdat any $_ZNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEC2Ev = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvRS7_PT_DpOT0_ = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE11_M_max_sizeEv = comdat any - -$_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE9constructIS6_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE8allocateEmPKv = comdat any $_ZNSt5tupleIJOiEEC2EOS1_ = comdat any @@ -242,44 +187,42 @@ $_ZNSt4pairIKi1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES6_IJDpT0_E $_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_ = comdat any -$_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_ = comdat any - -$_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_ = comdat any - $_ZNSt4pairIKi1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS5_IJDpT1_EESt12_Index_tupleIJXspT0_EEESE_IJXspT2_EEE = comdat any $_ZSt3getILm0EJOiEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS5_ = comdat any $_ZSt12__get_helperILm0EOiJEERT0_RSt11_Tuple_implIXT_EJS1_DpT1_EE = comdat any -$_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv = comdat any +$_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_ = comdat any + +$_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_ = comdat any -$_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm = comdat any +$_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_ = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS4_Lb0EEEm = comdat any +$_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE = comdat any + +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm = comdat any $_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE22_M_insert_bucket_beginEmPNS5_10_Hash_nodeIS3_Lb0EEE = comdat any $_ZNSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE = comdat any -$_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE = comdat any +$_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev = comdat any -$_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm = comdat any +$_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv = comdat any $_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE19_M_allocate_bucketsEm = comdat any -$_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m = comdat any - $_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv = comdat any $_ZNSt8__detail19_Node_iterator_baseISt4pairIKi1AELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE = comdat any +$_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm = comdat any + $_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv = comdat any $_ZTV1A = comdat any @@ -293,8 +236,6 @@ $_ZSt19piecewise_construct = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @@ -302,7 +243,6 @@ $_ZSt19piecewise_construct = comdat any @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 @_ZSt19piecewise_construct = linkonce_odr dso_local constant %"struct.std::piecewise_construct_t" undef, comdat, align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_unordered_map_1.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -437,24 +377,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -472,20 +396,20 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #13 store i32 0, ptr %ref.tmp, align 4 %call = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEEixEOi(ptr noundef nonnull align 8 dereferenceable(56) %amap, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN1AaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %call, ptr noundef nonnull align 8 dereferenceable(8) %a) #5 - %call3 = call ptr @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 + %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN1AaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %call, ptr noundef nonnull align 8 dereferenceable(8) %a) #13 + %call3 = call ptr @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %ref.tmp2, i32 0, i32 0 %coerce.dive4 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 store ptr %call3, ptr %coerce.dive4, align 8 - call void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKi1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS4_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp2) #5 - %call5 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKi1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + call void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKi1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS4_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp2) #13 + %call5 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKi1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #13 %second = getelementptr inbounds %"struct.std::pair", ptr %call5, i32 0, i32 1 store ptr %second, ptr %aptr, align 8 %0 = load ptr, ptr %aptr, align 8 @@ -498,7 +422,7 @@ invoke.cont: ; preds = %entry invoke.cont6: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 + call void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -509,7 +433,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 + call void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -521,18 +445,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_map", ptr %this1, i32 0, i32 0 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -558,7 +482,7 @@ entry: declare i32 @__gxx_personality_v0(...) ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN1AaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) #7 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN1AaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -576,7 +500,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_map", ptr %this1, i32 0, i32 0 - %call = call ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + %call = call ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 %coerce.dive2 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 store ptr %call, ptr %coerce.dive2, align 8 @@ -587,7 +511,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKi1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS4_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKi1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS4_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -597,80 +521,84 @@ entry: %0 = load ptr, ptr %__x.addr, align 8 %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %0, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 - call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKi1AELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %1) #5 + call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKi1AELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %1) #13 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKi1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %_M_cur, align 8 - %call = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - ret ptr %call + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + ret ptr %call.i } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt13unordered_mapIi1ASt4hashIiESt8equal_toIiESaISt4pairIKiS0_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_map", ptr %this1, i32 0, i32 0 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 %_M_single_bucket = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 5 store ptr %_M_single_bucket, ptr %_M_buckets, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 store i64 1, ptr %_M_bucket_count, align 8 %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_before_begin) #5 + call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_before_begin) #13 %_M_element_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 store i64 0, ptr %_M_element_count, align 8 %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - call void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, float noundef 1.000000e+00) #5 + call void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, float noundef 1.000000e+00) #13 %_M_single_bucket2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 5 store ptr null, ptr %_M_single_bucket2, align 8 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -681,7 +609,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %this, float noundef %__z) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %this, float noundef %__z) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__z.addr = alloca float, align 4 @@ -697,79 +625,45 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -788,24 +682,24 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) #5 + call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) #13 invoke void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -840,7 +734,7 @@ terminate.lpad: ; preds = %invoke.cont, %entry %2 = landingpad { ptr, i32 } catch ptr null %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + call void @__clang_call_terminate(ptr %3) #14 unreachable } @@ -859,9 +753,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #15 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #13 + call void @_ZSt9terminatev() #14 unreachable } @@ -870,12 +764,12 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } @@ -899,7 +793,7 @@ while.body: ; preds = %while.cond %1 = load ptr, ptr %__n.addr, align 8 store ptr %1, ptr %__tmp, align 8 %2 = load ptr, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5 + %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #13 store ptr %call, ptr %__n.addr, align 8 %3 = load ptr, ptr %__tmp, align 8 call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE18_M_deallocate_nodeEPS6_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %3) @@ -922,7 +816,7 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { @@ -938,6 +832,11 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE18_M_deallocate_nodeEPS6_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__n) #0 comdat align 2 { entry: + %this.addr.i3 = alloca ptr, align 8 + %__p.addr.i4 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -945,23 +844,20 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %0 = load ptr, ptr %__n.addr, align 8 - %call2 = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - call void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE7destroyIS5_EEvRS7_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2) #5 - %1 = load ptr, ptr %__n.addr, align 8 - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE22_M_deallocate_node_ptrEPS6_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE7destroyIS5_EEvRS7_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE7destroyIS6_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call.i, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i3, align 8 + store ptr %2, ptr %__p.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i3, align 8 + %3 = load ptr, ptr %__p.addr.i4, align 8 + %4 = load ptr, ptr %__n.addr, align 8 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE22_M_deallocate_node_ptrEPS6_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %4) ret void } @@ -975,20 +871,12 @@ entry: ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 - ret ptr %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE22_M_deallocate_node_ptrEPS6_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 @@ -996,24 +884,18 @@ entry: store ptr %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10pointer_toERS6_(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEES6_Lb0EE10pointer_toERS6_(ptr noundef nonnull align 8 dereferenceable(24) %0) #13 store ptr %call, ptr %__ptr, align 8 %1 = load ptr, ptr %__n.addr, align 8 %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %2 = load ptr, ptr %__ptr, align 8 - call void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE10deallocateERS7_PS6_m(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %2, i64 noundef 1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE7destroyIS6_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10deallocateEPS6_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) ret void } @@ -1032,7 +914,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 ret ptr %call } @@ -1047,7 +929,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10pointer_toERS6_(ptr noundef nonnull align 8 dereferenceable(24) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEES6_Lb0EE10pointer_toERS6_(ptr noundef nonnull align 8 dereferenceable(24) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -1055,39 +937,23 @@ entry: ret ptr %0 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE10deallocateERS7_PS6_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10deallocateEPS7_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10deallocateEPS7_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10deallocateEPS6_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 +declare void @_ZdlPv(ptr noundef) #7 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEPPNS5_15_Hash_node_baseEm(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #0 comdat align 2 { @@ -1130,14 +996,22 @@ entry: ret i1 %cmp } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #8 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i8 = alloca ptr, align 8 + %this.addr.i6 = alloca ptr, align 8 + %this.addr.i4 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__bkts.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 %__ptr = alloca ptr, align 8 - %__alloc = alloca %"class.std::allocator.4", align 1 + %__alloc = alloca %"class.std::allocator.2", align 1 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 store ptr %this, ptr %this.addr, align 8 @@ -1145,27 +1019,41 @@ entry: store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__bkts.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 store ptr %call, ptr %__ptr, align 8 %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKi1AELb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef nonnull align 1 dereferenceable(1) %call2) #5 + store ptr %__alloc, ptr %this.addr.i, align 8 + store ptr %call2, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i8, align 8 + %this1.i9 = load ptr, ptr %this.addr.i8, align 8 %1 = load ptr, ptr %__ptr, align 8 %2 = load i64, ptr %__bkt_count.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef %1, i64 noundef %2) - to label %invoke.cont unwind label %lpad + store ptr %__alloc, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 %2, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + store ptr %__alloc, ptr %this.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i4, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i5) #13 ret void -lpad: ; preds = %entry - %3 = landingpad { ptr, i32 } +lpad: ; No predecessors! + %6 = landingpad { ptr, i32 } cleanup - %4 = extractvalue { ptr, i32 } %3, 0 - store ptr %4, ptr %exn.slot, align 8 - %5 = extractvalue { ptr, i32 } %3, 1 - store i32 %5, ptr %ehselector.slot, align 4 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + %7 = extractvalue { ptr, i32 } %6, 0 + store ptr %7, ptr %exn.slot, align 8 + %8 = extractvalue { ptr, i32 } %6, 1 + store i32 %8, ptr %ehselector.slot, align 4 + store ptr %__alloc, ptr %this.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i6, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i7) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -1177,7 +1065,7 @@ eh.resume: ; preds = %lpad } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -1185,99 +1073,45 @@ entry: ret ptr %0 } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKi1AELb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKi1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1288,6 +1122,8 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail9_Map_baseIiSt4pairIKi1AESaIS4_ENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOi(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %retval = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__k.addr = alloca ptr, align 8 @@ -1297,7 +1133,7 @@ entry: %__node = alloca ptr, align 8 %__node5 = alloca %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", align 8 %ref.tmp = alloca %"class.std::tuple", align 8 - %ref.tmp6 = alloca %"class.std::tuple.7", align 1 + %ref.tmp6 = alloca %"class.std::tuple.5", align 1 %__pos = alloca %"struct.std::__detail::_Node_iterator", align 8 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 @@ -1310,39 +1146,42 @@ entry: %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS2_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 4 dereferenceable(4) %1) store i64 %call, ptr %__code, align 8 %2 = load ptr, ptr %__h, align 8 - %3 = load ptr, ptr %__k.addr, align 8 - %4 = load i64, ptr %__code, align 8 - %call2 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m(ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef nonnull align 4 dereferenceable(4) %3, i64 noundef %4) + %3 = load i64, ptr %__code, align 8 + %call2 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %2, i64 noundef %3) store i64 %call2, ptr %__bkt, align 8 - %5 = load ptr, ptr %__h, align 8 - %6 = load i64, ptr %__bkt, align 8 - %7 = load ptr, ptr %__k.addr, align 8 - %8 = load i64, ptr %__code, align 8 - %call3 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m(ptr noundef nonnull align 8 dereferenceable(56) %5, i64 noundef %6, ptr noundef nonnull align 4 dereferenceable(4) %7, i64 noundef %8) + %4 = load ptr, ptr %__h, align 8 + %5 = load i64, ptr %__bkt, align 8 + %6 = load ptr, ptr %__k.addr, align 8 + %7 = load i64, ptr %__code, align 8 + %call3 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m(ptr noundef nonnull align 8 dereferenceable(56) %4, i64 noundef %5, ptr noundef nonnull align 4 dereferenceable(4) %6, i64 noundef %7) store ptr %call3, ptr %__node, align 8 - %9 = load ptr, ptr %__node, align 8 - %tobool = icmp ne ptr %9, null + %8 = load ptr, ptr %__node, align 8 + %tobool = icmp ne ptr %8, null br i1 %tobool, label %if.then, label %if.end if.then: ; preds = %entry - %10 = load ptr, ptr %__node, align 8 - %call4 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #5 - %second = getelementptr inbounds %"struct.std::pair", ptr %call4, i32 0, i32 1 + %9 = load ptr, ptr %__node, align 8 + %add.ptr = getelementptr inbounds i8, ptr %9, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + %call.i.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i.i) #13 + %second = getelementptr inbounds %"struct.std::pair", ptr %call.i.i, i32 0, i32 1 store ptr %second, ptr %retval, align 8 br label %return if.end: ; preds = %entry - %11 = load ptr, ptr %__h, align 8 - %12 = load ptr, ptr %__k.addr, align 8 - call void @_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_(ptr sret(%"class.std::tuple") align 8 %ref.tmp, ptr noundef nonnull align 4 dereferenceable(4) %12) #5 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESM_IJEEEEEPNS5_16_Hashtable_allocISaINS5_10_Hash_nodeIS3_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %__node5, ptr noundef %11, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt19piecewise_construct, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) - %13 = load ptr, ptr %__h, align 8 - %14 = load ptr, ptr %__k.addr, align 8 - %15 = load i64, ptr %__bkt, align 8 - %16 = load i64, ptr %__code, align 8 + %10 = load ptr, ptr %__h, align 8 + %11 = load ptr, ptr %__k.addr, align 8 + call void @_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_(ptr sret(%"class.std::tuple") align 8 %ref.tmp, ptr noundef nonnull align 4 dereferenceable(4) %11) #13 + call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESM_IJEEEEEPNS5_16_Hashtable_allocISaINS5_10_Hash_nodeIS3_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %__node5, ptr noundef %10, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt19piecewise_construct, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) + %12 = load ptr, ptr %__h, align 8 + %13 = load i64, ptr %__bkt, align 8 + %14 = load i64, ptr %__code, align 8 %_M_node = getelementptr inbounds %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node5, i32 0, i32 1 - %17 = load ptr, ptr %_M_node, align 8 - %call7 = invoke ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeERS1_mmPNS5_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, i64 noundef %15, i64 noundef %16, ptr noundef %17, i64 noundef 1) + %15 = load ptr, ptr %_M_node, align 8 + %call7 = invoke ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS5_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %12, i64 noundef %13, i64 noundef %14, ptr noundef %15, i64 noundef 1) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %if.end @@ -1351,25 +1190,25 @@ invoke.cont: ; preds = %if.end store ptr %call7, ptr %coerce.dive8, align 8 %_M_node9 = getelementptr inbounds %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node5, i32 0, i32 1 store ptr null, ptr %_M_node9, align 8 - %call10 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %__pos) #5 + %call10 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %__pos) #13 %second11 = getelementptr inbounds %"struct.std::pair", ptr %call10, i32 0, i32 1 store ptr %second11, ptr %retval, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #5 + call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #13 br label %return lpad: ; preds = %if.end - %18 = landingpad { ptr, i32 } + %16 = landingpad { ptr, i32 } cleanup - %19 = extractvalue { ptr, i32 } %18, 0 - store ptr %19, ptr %exn.slot, align 8 - %20 = extractvalue { ptr, i32 } %18, 1 - store i32 %20, ptr %ehselector.slot, align 4 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #5 + %17 = extractvalue { ptr, i32 } %16, 0 + store ptr %17, ptr %exn.slot, align 8 + %18 = extractvalue { ptr, i32 } %16, 1 + store i32 %18, ptr %ehselector.slot, align 4 + call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #13 br label %eh.resume return: ; preds = %invoke.cont, %if.then - %21 = load ptr, ptr %retval, align 8 - ret ptr %21 + %19 = load ptr, ptr %retval, align 8 + ret ptr %19 eh.resume: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 @@ -1387,28 +1226,25 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %0 = load ptr, ptr %__k.addr, align 8 %1 = load i32, ptr %0, align 4 - %call2 = call noundef i64 @_ZNKSt4hashIiEclEi(ptr noundef nonnull align 1 dereferenceable(1) %call, i32 noundef %1) #5 + %call2 = call noundef i64 @_ZNKSt4hashIiEclEi(ptr noundef nonnull align 1 dereferenceable(1) %call, i32 noundef %1) #13 ret i64 %call2 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__c) #0 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__c) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 %__c.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__k, ptr %__k.addr, align 8 store i64 %__c, ptr %__c.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__k.addr, align 8 - %1 = load i64, ptr %__c.addr, align 8 + %0 = load i64, ptr %__c.addr, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 - %2 = load i64, ptr %_M_bucket_count, align 8 - %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERS2_mm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %0, i64 noundef %1, i64 noundef %2) + %1 = load i64, ptr %_M_bucket_count, align 8 + %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm(ptr noundef nonnull align 1 dereferenceable(1) %this1, i64 noundef %0, i64 noundef %1) ret i64 %call } @@ -1451,16 +1287,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_(ptr noalias sret(%"class.std::tuple") align 8 %agg.result, ptr noundef nonnull align 4 dereferenceable(4) %__args) #2 comdat { entry: @@ -1469,12 +1295,12 @@ entry: store ptr %agg.result, ptr %result.ptr, align 8 store ptr %__args, ptr %__args.addr, align 8 %0 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef nonnull align 4 dereferenceable(4) %0) #5 + call void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef nonnull align 4 dereferenceable(4) %0) #13 ret void } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESM_IJEEEEEPNS5_16_Hashtable_allocISaINS5_10_Hash_nodeIS3_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__h, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) unnamed_addr #11 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESM_IJEEEEEPNS5_16_Hashtable_allocISaINS5_10_Hash_nodeIS3_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__h, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) unnamed_addr #8 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__h.addr = alloca ptr, align 8 @@ -1501,91 +1327,127 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeERS1_mmPNS5_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__bkt, i64 noundef %__code, ptr noundef %__node, i64 noundef %__n_elt) #0 comdat align 2 { +define linkonce_odr dso_local ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS5_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, i64 noundef %__code, ptr noundef %__node, i64 noundef %__n_elt) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %retval = alloca %"struct.std::__detail::_Node_iterator", align 8 %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 %__bkt.addr = alloca i64, align 8 %__code.addr = alloca i64, align 8 %__node.addr = alloca ptr, align 8 %__n_elt.addr = alloca i64, align 8 - %__saved_state = alloca ptr, align 8 - %ref.tmp = alloca i64, align 8 - %__do_rehash = alloca %"struct.std::pair.9", align 8 + %__rehash_guard = alloca %"struct.std::__detail::_RehashStateGuard", align 8 + %__do_rehash = alloca %"struct.std::pair.7", align 8 + %exn.slot = alloca ptr, align 8 + %ehselector.slot = alloca i32, align 4 + %agg.tmp = alloca %"struct.std::integral_constant", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %__k, ptr %__k.addr, align 8 store i64 %__bkt, ptr %__bkt.addr, align 8 store i64 %__code, ptr %__code.addr, align 8 store ptr %__node, ptr %__node.addr, align 8 store i64 %__n_elt, ptr %__n_elt.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - %call = call noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy) - store i64 %call, ptr %ref.tmp, align 8 - store ptr %ref.tmp, ptr %__saved_state, align 8 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard, ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy) %_M_rehash_policy2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 %0 = load i64, ptr %_M_bucket_count, align 8 %_M_element_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 %1 = load i64, ptr %_M_element_count, align 8 %2 = load i64, ptr %__n_elt.addr, align 8 - %call3 = call { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy2, i64 noundef %0, i64 noundef %1, i64 noundef %2) + %call = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy2, i64 noundef %0, i64 noundef %1, i64 noundef %2) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %entry %3 = getelementptr inbounds { i8, i64 }, ptr %__do_rehash, i32 0, i32 0 - %4 = extractvalue { i8, i64 } %call3, 0 + %4 = extractvalue { i8, i64 } %call, 0 store i8 %4, ptr %3, align 8 %5 = getelementptr inbounds { i8, i64 }, ptr %__do_rehash, i32 0, i32 1 - %6 = extractvalue { i8, i64 } %call3, 1 + %6 = extractvalue { i8, i64 } %call, 1 store i64 %6, ptr %5, align 8 - %first = getelementptr inbounds %"struct.std::pair.9", ptr %__do_rehash, i32 0, i32 0 + %first = getelementptr inbounds %"struct.std::pair.7", ptr %__do_rehash, i32 0, i32 0 %7 = load i8, ptr %first, align 8 %tobool = trunc i8 %7 to i1 br i1 %tobool, label %if.then, label %if.end -if.then: ; preds = %entry - %second = getelementptr inbounds %"struct.std::pair.9", ptr %__do_rehash, i32 0, i32 1 +if.then: ; preds = %invoke.cont + %second = getelementptr inbounds %"struct.std::pair.7", ptr %__do_rehash, i32 0, i32 1 %8 = load i64, ptr %second, align 8 - %9 = load ptr, ptr %__saved_state, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %8, ptr noundef nonnull align 8 dereferenceable(8) %9) - %10 = load ptr, ptr %__k.addr, align 8 - %11 = load i64, ptr %__code.addr, align 8 - %call4 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 4 dereferenceable(4) %10, i64 noundef %11) - store i64 %call4, ptr %__bkt.addr, align 8 + invoke void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %8) + to label %invoke.cont3 unwind label %lpad + +invoke.cont3: ; preds = %if.then + %9 = load i64, ptr %__code.addr, align 8 + %call5 = invoke noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %9) + to label %invoke.cont4 unwind label %lpad + +invoke.cont4: ; preds = %invoke.cont3 + store i64 %call5, ptr %__bkt.addr, align 8 br label %if.end -if.end: ; preds = %if.then, %entry - %12 = load ptr, ptr %__node.addr, align 8 - %13 = load i64, ptr %__code.addr, align 8 - call void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %12, i64 noundef %13) - %14 = load i64, ptr %__bkt.addr, align 8 - %15 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE22_M_insert_bucket_beginEmPNS5_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %14, ptr noundef %15) - %_M_element_count5 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 - %16 = load i64, ptr %_M_element_count5, align 8 - %inc = add i64 %16, 1 - store i64 %inc, ptr %_M_element_count5, align 8 - %17 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %17) #5 +lpad: ; preds = %invoke.cont6, %if.end, %invoke.cont3, %if.then, %entry + %10 = landingpad { ptr, i32 } + cleanup + %11 = extractvalue { ptr, i32 } %10, 0 + store ptr %11, ptr %exn.slot, align 8 + %12 = extractvalue { ptr, i32 } %10, 1 + store i32 %12, ptr %ehselector.slot, align 4 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard) #13 + br label %eh.resume + +if.end: ; preds = %invoke.cont4, %invoke.cont + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %__rehash_guard, i32 0, i32 0 + store ptr null, ptr %_M_guarded_obj, align 8 + %13 = load ptr, ptr %__node.addr, align 8 + %add.ptr = getelementptr inbounds i8, ptr %13, i64 8 + %14 = load i64, ptr %__code.addr, align 8 + invoke void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr, i64 noundef %14) + to label %invoke.cont6 unwind label %lpad + +invoke.cont6: ; preds = %if.end + %15 = load i64, ptr %__bkt.addr, align 8 + %16 = load ptr, ptr %__node.addr, align 8 + invoke void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE22_M_insert_bucket_beginEmPNS5_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %15, ptr noundef %16) + to label %invoke.cont7 unwind label %lpad + +invoke.cont7: ; preds = %invoke.cont6 + %_M_element_count8 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 + %17 = load i64, ptr %_M_element_count8, align 8 + %inc = add i64 %17, 1 + store i64 %inc, ptr %_M_element_count8, align 8 + %18 = load ptr, ptr %__node.addr, align 8 + call void @_ZNSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %18) #13 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 - %coerce.dive6 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 - %18 = load ptr, ptr %coerce.dive6, align 8 - ret ptr %18 + %coerce.dive9 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 + %19 = load ptr, ptr %coerce.dive9, align 8 + ret ptr %19 + +eh.resume: ; preds = %lpad + %exn = load ptr, ptr %exn.slot, align 8 + %sel = load i32, ptr %ehselector.slot, align 4 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn, 0 + %lpad.val10 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val10 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %_M_cur, align 8 - %call = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - ret ptr %call + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + ret ptr %call.i } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1613,12 +1475,12 @@ terminate.lpad: ; preds = %if.then %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #15 + call void @__clang_call_terminate(ptr %4) #14 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1649,33 +1511,21 @@ entry: ret ptr %this1 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERS2_mm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %0, i64 noundef %__c, i64 noundef %__bkt_count) #0 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__c, i64 noundef %__bkt_count) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 %__c.addr = alloca i64, align 8 %__bkt_count.addr = alloca i64, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Mod_range_hashing", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 store i64 %__c, ptr %__c.addr, align 8 store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) - %1 = load i64, ptr %__c.addr, align 8 - %2 = load i64, ptr %__bkt_count.addr, align 8 - %call2 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef %1, i64 noundef %2) #5 - ret i64 %call2 -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - ret ptr %call + %0 = load i64, ptr %__c.addr, align 8 + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, i64 noundef %0, i64 noundef %1) #13 + ret i64 %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1694,15 +1544,6 @@ entry: ret i64 %rem } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret ptr %this1 -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_find_before_nodeEmRS1_m(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__code) #0 comdat align 2 { entry: @@ -1743,7 +1584,8 @@ for.cond: ; preds = %for.inc, %if.end %6 = load ptr, ptr %__k.addr, align 8 %7 = load i64, ptr %__code.addr, align 8 %8 = load ptr, ptr %__p, align 8 - %call = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %6, i64 noundef %7, ptr noundef %8) + %add.ptr = getelementptr inbounds i8, ptr %8, i64 8 + %call = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mRKNS_16_Hash_node_valueIS4_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %6, i64 noundef %7, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr) br i1 %call, label %if.then2, label %if.end3 if.then2: ; preds = %for.cond @@ -1756,31 +1598,32 @@ if.end3: ; preds = %for.cond %_M_nxt4 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %10, i32 0, i32 0 %11 = load ptr, ptr %_M_nxt4, align 8 %tobool5 = icmp ne ptr %11, null - br i1 %tobool5, label %lor.lhs.false, label %if.then8 + br i1 %tobool5, label %lor.lhs.false, label %if.then9 lor.lhs.false: ; preds = %if.end3 %12 = load ptr, ptr %__p, align 8 - %call6 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #5 - %call7 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS5_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef %call6) #5 + %call6 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #13 + %add.ptr7 = getelementptr inbounds i8, ptr %call6, i64 8 + %call8 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS5_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr7) #13 %13 = load i64, ptr %__bkt.addr, align 8 - %cmp = icmp ne i64 %call7, %13 - br i1 %cmp, label %if.then8, label %if.end9 + %cmp = icmp ne i64 %call8, %13 + br i1 %cmp, label %if.then9, label %if.end10 -if.then8: ; preds = %lor.lhs.false, %if.end3 +if.then9: ; preds = %lor.lhs.false, %if.end3 br label %for.end -if.end9: ; preds = %lor.lhs.false +if.end10: ; preds = %lor.lhs.false %14 = load ptr, ptr %__p, align 8 store ptr %14, ptr %__prev_p, align 8 br label %for.inc -for.inc: ; preds = %if.end9 +for.inc: ; preds = %if.end10 %15 = load ptr, ptr %__p, align 8 - %call10 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #5 - store ptr %call10, ptr %__p, align 8 + %call11 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #13 + store ptr %call11, ptr %__p, align 8 br label %for.cond, !llvm.loop !8 -for.end: ; preds = %if.then8 +for.end: ; preds = %if.then9 store ptr null, ptr %retval, align 8 br label %return @@ -1790,7 +1633,7 @@ return: ; preds = %for.end, %if.then2, } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__c, ptr noundef %__n) #0 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mRKNS_16_Hash_node_valueIS4_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__c, ptr noundef nonnull align 8 dereferenceable(16) %__n) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__k.addr = alloca ptr, align 8 @@ -1803,26 +1646,22 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %0 = load i64, ptr %__c.addr, align 8 %1 = load ptr, ptr %__n.addr, align 8 - %call = call noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS4_Lb0EEEE9_S_equalsEmRKSH_(i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(24) %1) + %call = call noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) %1) br i1 %call, label %land.rhs, label %land.end land.rhs: ; preds = %entry - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %2 = load ptr, ptr %__k.addr, align 8 - %call3 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %3 = load ptr, ptr %__n.addr, align 8 - %call4 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #5 - %call5 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRSt4pairIKi1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS7_(ptr noundef nonnull align 1 dereferenceable(1) %call3, ptr noundef nonnull align 8 dereferenceable(16) %call4) - %call6 = call noundef zeroext i1 @_ZNKSt8equal_toIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %call5) + %call2 = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS2_RKNS_16_Hash_node_valueIS4_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 8 dereferenceable(16) %3) br label %land.end land.end: ; preds = %land.rhs, %entry - %4 = phi i1 [ false, %entry ], [ %call6, %land.rhs ] + %4 = phi i1 [ false, %entry ], [ %call2, %land.rhs ] ret i1 %4 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS5_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef %__n) #2 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS5_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(16) %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -1832,12 +1671,12 @@ entry: %0 = load ptr, ptr %__n.addr, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 %1 = load i64, ptr %_M_bucket_count, align 8 - %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %0, i64 noundef %1) #5 + %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %1) #13 ret i64 %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS4_Lb0EEEE9_S_equalsEmRKSH_(i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(24) %1) #2 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) %1) #2 comdat align 2 { entry: %.addr = alloca i64, align 8 %.addr1 = alloca ptr, align 8 @@ -1847,7 +1686,33 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS2_RKNS_16_Hash_node_valueIS4_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, ptr noundef nonnull align 8 dereferenceable(16) %__n) #0 comdat align 2 { +entry: + %this.addr.i5 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + %__n.addr = alloca ptr, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Select1st", align 1 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + store ptr %__n, ptr %__n.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %0 = load ptr, ptr %__k.addr, align 8 + %1 = load ptr, ptr %__n.addr, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i5, align 8 + %this1.i6 = load ptr, ptr %this.addr.i5, align 8 + %call.i7 = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i6) #13 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKi1AEEEONS0_10__1st_typeIT_E4typeEOS9_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(16) %call.i7) #13 + %call4 = call noundef zeroext i1 @_ZNKSt8equal_toIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef nonnull align 4 dereferenceable(4) %0, ptr noundef nonnull align 4 dereferenceable(4) %call3) + ret i1 %call4 +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKi1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1874,18 +1739,8 @@ entry: ret i1 %cmp } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRSt4pairIKi1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS7_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKi1AEEEONS0_10__1st_typeIT_E4typeEOS9_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1893,8 +1748,8 @@ entry: store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKi1AERNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERS6_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - ret ptr %call + %first = getelementptr inbounds %"struct.std::pair", ptr %0, i32 0, i32 0 + ret ptr %first } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1907,152 +1762,64 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - ret ptr %this1 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKi1AERNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERS6_(ptr noundef nonnull align 8 dereferenceable(16) %__in) #2 comdat { -entry: - %__in.addr = alloca ptr, align 8 - store ptr %__in, ptr %__in.addr, align 8 - %0 = load ptr, ptr %__in.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE5__getIKi1AEERT_RSt4pairIS4_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE5__getIKi1AEERT_RSt4pairIS4_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %__pair) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: - %__pair.addr = alloca ptr, align 8 - store ptr %__pair, ptr %__pair.addr, align 8 - %0 = load ptr, ptr %__pair.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair", ptr %0, i32 0, i32 0 - ret ptr %first + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_buffer", ptr %this1, i32 0, i32 0 + ret ptr %_M_storage } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__bkt_count) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__n, i64 noundef %__bkt_count) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i6 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 + %__n.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Mod_range_hashing", align 1 + %ref.tmp2 = alloca %"struct.std::__detail::_Select1st", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 + store ptr %__n, ptr %__n.addr, align 8 store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %0 = load ptr, ptr %__n.addr, align 8 + store ptr %0, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i6, align 8 + %call.i8 = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i7) #13 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKi1AEEEONS0_10__1st_typeIT_E4typeEOS9_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2, ptr noundef nonnull align 8 dereferenceable(16) %call.i8) #13 + %call4 = invoke noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS2_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %call3) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %call3 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont2 unwind label %terminate.lpad - -invoke.cont2: ; preds = %invoke.cont - %call5 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont4 unwind label %terminate.lpad - -invoke.cont4: ; preds = %invoke.cont2 - %0 = load ptr, ptr %__p.addr, align 8 - %call6 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - %call8 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKi1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS8_(ptr noundef nonnull align 1 dereferenceable(1) %call5, ptr noundef nonnull align 8 dereferenceable(16) %call6) - to label %invoke.cont7 unwind label %terminate.lpad - -invoke.cont7: ; preds = %invoke.cont4 - %1 = load i32, ptr %call8, align 4 - %call9 = call noundef i64 @_ZNKSt4hashIiEclEi(ptr noundef nonnull align 1 dereferenceable(1) %call3, i32 noundef %1) #5 - %2 = load i64, ptr %__bkt_count.addr, align 8 - %call10 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef %call9, i64 noundef %2) #5 - ret i64 %call10 + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call5 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, i64 noundef %call4, i64 noundef %1) #13 + ret i64 %call5 -terminate.lpad: ; preds = %invoke.cont4, %invoke.cont2, %invoke.cont, %entry - %3 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %entry + %2 = landingpad { ptr, i32 } catch ptr null - %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #15 + %3 = extractvalue { ptr, i32 } %2, 0 + call void @__clang_call_terminate(ptr %3) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKi1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS8_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKi1AERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKi1AERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %__in) #2 comdat { -entry: - %__in.addr = alloca ptr, align 8 - store ptr %__in, ptr %__in.addr, align 8 - %0 = load ptr, ptr %__in.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE11__const_getIKi1AEERKT_RKSt4pairIS4_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE11__const_getIKi1AEERKT_RKSt4pairIS4_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %__pair) #2 comdat align 2 { -entry: - %__pair.addr = alloca ptr, align 8 - store ptr %__pair, ptr %__pair.addr, align 8 - %0 = load ptr, ptr %__pair.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair", ptr %0, i32 0, i32 0 - ret ptr %first -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_buffer", ptr %this1, i32 0, i32 0 - ret ptr %_M_storage -} - ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__elements) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__elements) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %__elements.addr = alloca ptr, align 8 @@ -2070,12 +1837,12 @@ terminate.lpad: ; preds = %entry %1 = landingpad { ptr, i32 } catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #15 + call void @__clang_call_terminate(ptr %2) #14 unreachable } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__head) unnamed_addr #11 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__head) unnamed_addr #8 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__head.addr = alloca ptr, align 8 @@ -2088,7 +1855,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__h) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__h) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__h.addr = alloca ptr, align 8 @@ -2104,10 +1871,28 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE16_M_allocate_nodeIJRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEPS6_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i19 = alloca ptr, align 8 + %__p.addr.i20 = alloca ptr, align 8 + %__args.addr.i21 = alloca ptr, align 8 + %__args.addr2.i22 = alloca ptr, align 8 + %__args.addr4.i23 = alloca ptr, align 8 + %agg.tmp6.i = alloca %"class.std::tuple", align 8 + %__a.addr.i17 = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 + %__args.addr2.i = alloca ptr, align 8 + %__args.addr4.i = alloca ptr, align 8 + %__a.addr.i14 = alloca ptr, align 8 + %__n.addr.i15 = alloca i64, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__args.addr2 = alloca ptr, align 8 %__args.addr4 = alloca ptr, align 8 + %__alloc = alloca ptr, align 8 %__nptr = alloca ptr, align 8 %__n = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 @@ -2118,101 +1903,125 @@ entry: store ptr %__args3, ptr %__args.addr4, align 8 %this5 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this5) - %call6 = call noundef ptr @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE8allocateERS7_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - store ptr %call6, ptr %__nptr, align 8 - %0 = load ptr, ptr %__nptr, align 8 - %call7 = call noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEPT_S8_(ptr noundef %0) #5 + store ptr %call, ptr %__alloc, align 8 + %0 = load ptr, ptr %__alloc, align 8 + store ptr %0, ptr %__a.addr.i14, align 8 + store i64 1, ptr %__n.addr.i15, align 8 + %1 = load ptr, ptr %__a.addr.i14, align 8 + %2 = load i64, ptr %__n.addr.i15, align 8 + %call.i16 = call noundef ptr @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + store ptr %call.i16, ptr %__nptr, align 8 + %3 = load ptr, ptr %__nptr, align 8 + %call7 = call noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEPT_S8_(ptr noundef %3) #13 store ptr %call7, ptr %__n, align 8 - %1 = load ptr, ptr %__n, align 8 - call void @_ZNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #5 - %call8 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this5) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - %2 = load ptr, ptr %__n, align 8 - %call9 = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5 - %3 = load ptr, ptr %__args.addr, align 8 - %4 = load ptr, ptr %__args.addr2, align 8 - %5 = load ptr, ptr %__args.addr4, align 8 - invoke void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvRS7_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call8, ptr noundef %call9, ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 1 dereferenceable(1) %5) - to label %invoke.cont10 unwind label %lpad - -invoke.cont10: ; preds = %invoke.cont + %4 = load ptr, ptr %__n, align 8 + call void @_ZNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #13 + %5 = load ptr, ptr %__alloc, align 8 %6 = load ptr, ptr %__n, align 8 - ret ptr %6 + %add.ptr = getelementptr inbounds i8, ptr %6, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKi1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + %7 = load ptr, ptr %__args.addr, align 8 + %8 = load ptr, ptr %__args.addr2, align 8 + %9 = load ptr, ptr %__args.addr4, align 8 + store ptr %5, ptr %__a.addr.i17, align 8 + store ptr %call.i, ptr %__p.addr.i18, align 8 + store ptr %7, ptr %__args.addr.i, align 8 + store ptr %8, ptr %__args.addr2.i, align 8 + store ptr %9, ptr %__args.addr4.i, align 8 + %10 = load ptr, ptr %__a.addr.i17, align 8 + %11 = load ptr, ptr %__p.addr.i18, align 8 + %12 = load ptr, ptr %__args.addr.i, align 8 + %13 = load ptr, ptr %__args.addr2.i, align 8 + %14 = load ptr, ptr %__args.addr4.i, align 8 + store ptr %10, ptr %this.addr.i19, align 8 + store ptr %11, ptr %__p.addr.i20, align 8 + store ptr %12, ptr %__args.addr.i21, align 8 + store ptr %13, ptr %__args.addr2.i22, align 8 + store ptr %14, ptr %__args.addr4.i23, align 8 + %this5.i = load ptr, ptr %this.addr.i19, align 8 + %15 = load ptr, ptr %__p.addr.i20, align 8 + %16 = load ptr, ptr %__args.addr.i21, align 8 + %17 = load ptr, ptr %__args.addr2.i22, align 8 + call void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp6.i, ptr noundef nonnull align 8 dereferenceable(8) %17) #13 + %18 = load ptr, ptr %__args.addr4.i23, align 8 + invoke void @_ZNSt4pairIKi1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES6_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef %agg.tmp6.i) + to label %_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESC_IJEEEEEvPT_DpOT0_.exit unwind label %lpad + +_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESC_IJEEEEEvPT_DpOT0_.exit: ; preds = %entry + br label %_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvRS7_PT_DpOT0_.exit + +_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvRS7_PT_DpOT0_.exit: ; preds = %_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESC_IJEEEEEvPT_DpOT0_.exit + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvRS7_PT_DpOT0_.exit + %19 = load ptr, ptr %__n, align 8 + ret ptr %19 -lpad: ; preds = %invoke.cont, %entry - %7 = landingpad { ptr, i32 } +lpad: ; preds = %entry + %20 = landingpad { ptr, i32 } catch ptr null - %8 = extractvalue { ptr, i32 } %7, 0 - store ptr %8, ptr %exn.slot, align 8 - %9 = extractvalue { ptr, i32 } %7, 1 - store i32 %9, ptr %ehselector.slot, align 4 + %21 = extractvalue { ptr, i32 } %20, 0 + store ptr %21, ptr %exn.slot, align 8 + %22 = extractvalue { ptr, i32 } %20, 1 + store i32 %22, ptr %ehselector.slot, align 4 br label %catch catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %10 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %call13 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this5) - to label %invoke.cont12 unwind label %lpad11 - -invoke.cont12: ; preds = %catch - %11 = load ptr, ptr %__nptr, align 8 - invoke void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE10deallocateERS7_PS6_m(ptr noundef nonnull align 1 dereferenceable(1) %call13, ptr noundef %11, i64 noundef 1) - to label %invoke.cont14 unwind label %lpad11 - -invoke.cont14: ; preds = %invoke.cont12 + %23 = call ptr @__cxa_begin_catch(ptr %exn) #13 + %24 = load ptr, ptr %__n, align 8 + %25 = load ptr, ptr %__alloc, align 8 + %26 = load ptr, ptr %__nptr, align 8 + store ptr %25, ptr %__a.addr.i, align 8 + store ptr %26, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %27 = load ptr, ptr %__a.addr.i, align 8 + %28 = load ptr, ptr %__p.addr.i, align 8 + %29 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE10deallocateEPS6_m(ptr noundef nonnull align 1 dereferenceable(1) %27, ptr noundef %28, i64 noundef %29) + br label %invoke.cont10 + +invoke.cont10: ; preds = %catch invoke void @__cxa_rethrow() #16 - to label %unreachable unwind label %lpad11 + to label %unreachable unwind label %lpad9 -lpad11: ; preds = %invoke.cont14, %invoke.cont12, %catch - %12 = landingpad { ptr, i32 } +lpad9: ; preds = %invoke.cont10 + %30 = landingpad { ptr, i32 } cleanup - %13 = extractvalue { ptr, i32 } %12, 0 - store ptr %13, ptr %exn.slot, align 8 - %14 = extractvalue { ptr, i32 } %12, 1 - store i32 %14, ptr %ehselector.slot, align 4 + %31 = extractvalue { ptr, i32 } %30, 0 + store ptr %31, ptr %exn.slot, align 8 + %32 = extractvalue { ptr, i32 } %30, 1 + store i32 %32, ptr %ehselector.slot, align 4 invoke void @__cxa_end_catch() - to label %invoke.cont15 unwind label %terminate.lpad + to label %invoke.cont11 unwind label %terminate.lpad -invoke.cont15: ; preds = %lpad11 +invoke.cont11: ; preds = %lpad9 br label %eh.resume try.cont: ; No predecessors! call void @llvm.trap() unreachable -eh.resume: ; preds = %invoke.cont15 - %exn16 = load ptr, ptr %exn.slot, align 8 +eh.resume: ; preds = %invoke.cont11 + %exn12 = load ptr, ptr %exn.slot, align 8 %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn16, 0 - %lpad.val17 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val17 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn12, 0 + %lpad.val13 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val13 -terminate.lpad: ; preds = %lpad11 - %15 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %lpad9 + %33 = landingpad { ptr, i32 } catch ptr null - %16 = extractvalue { ptr, i32 } %15, 0 - call void @__clang_call_terminate(ptr %16) #15 + %34 = extractvalue { ptr, i32 } %33, 0 + call void @__clang_call_terminate(ptr %34) #14 unreachable -unreachable: ; preds = %invoke.cont14 +unreachable: ; preds = %invoke.cont10 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE8allocateERS7_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEPT_S8_(ptr noundef %__ptr) #2 comdat { entry: @@ -2223,34 +2032,13 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEEE9constructIS5_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvRS7_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__args.addr2 = alloca ptr, align 8 - %__args.addr4 = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - store ptr %__args1, ptr %__args.addr2, align 8 - store ptr %__args3, ptr %__args.addr4, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - %3 = load ptr, ptr %__args.addr2, align 8 - %4 = load ptr, ptr %__args.addr4, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE9constructIS6_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 1 dereferenceable(1) %4) + call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #13 + %0 = getelementptr inbounds i8, ptr %this1, i64 8 ret void } @@ -2259,11 +2047,12 @@ declare void @__cxa_rethrow() declare void @__cxa_end_catch() ; Function Attrs: cold noreturn nounwind -declare void @llvm.trap() #12 +declare void @llvm.trap() #9 ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -2272,75 +2061,42 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 384307168202282325 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 768614336404564650 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 24 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 24 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 384307168202282325 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #10 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #13 +declare void @_ZSt17__throw_bad_allocv() #10 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #14 - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKi1AEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKi1AELb0EEEE9constructIS6_JRKSt21piecewise_construct_tSt5tupleIJOiEESD_IJEEEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__args.addr2 = alloca ptr, align 8 - %__args.addr4 = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::piecewise_construct_t", align 1 - %agg.tmp6 = alloca %"class.std::tuple", align 8 - %agg.tmp7 = alloca %"class.std::tuple.7", align 1 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - store ptr %__args1, ptr %__args.addr2, align 8 - store ptr %__args3, ptr %__args.addr4, align 8 - %this5 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %__args.addr2, align 8 - call void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp6, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__args.addr4, align 8 - call void @_ZNSt4pairIKi1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES6_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef %agg.tmp6) - ret void -} +declare noundef nonnull ptr @_Znwm(i64 noundef) #11 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -2348,18 +2104,18 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load ptr, ptr %.addr, align 8 - call void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 + call void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef nonnull align 8 dereferenceable(8) %1) #13 ret void } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIKi1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES6_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__first) unnamed_addr #11 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIKi1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES6_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__first) unnamed_addr #8 comdat align 2 { entry: %0 = alloca %"struct.std::piecewise_construct_t", align 1 - %__second = alloca %"class.std::tuple.7", align 1 + %__second = alloca %"class.std::tuple.5", align 1 %this.addr = alloca ptr, align 8 %agg.tmp = alloca %"struct.std::_Index_tuple", align 1 - %agg.tmp3 = alloca %"struct.std::_Index_tuple.8", align 1 + %agg.tmp3 = alloca %"struct.std::_Index_tuple.6", align 1 store ptr %this, ptr %this.addr, align 8 %this2 = load ptr, ptr %this.addr, align 8 call void @_ZNSt4pairIKi1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS5_IJDpT1_EESt12_Index_tupleIJXspT0_EEESE_IJXspT2_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this2, ptr noundef nonnull align 8 dereferenceable(8) %__first, ptr noundef nonnull align 1 dereferenceable(1) %__second) @@ -2367,7 +2123,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__in) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__in) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__in.addr = alloca ptr, align 8 @@ -2375,37 +2131,18 @@ entry: store ptr %__in, ptr %__in.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__in.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 - call void @_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef nonnull align 4 dereferenceable(4) %call) + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %this1, ptr align 8 %0, i64 8, i1 false) ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__t) #2 comdat align 2 { -entry: - %__t.addr = alloca ptr, align 8 - store ptr %__t, ptr %__t.addr, align 8 - %0 = load ptr, ptr %__t.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat align 2 { -entry: - %__b.addr = alloca ptr, align 8 - store ptr %__b, ptr %__b.addr, align 8 - %0 = load ptr, ptr %__b.addr, align 8 - %_M_head_impl = getelementptr inbounds %"struct.std::_Head_base", ptr %0, i32 0, i32 0 - %1 = load ptr, ptr %_M_head_impl, align 8 - ret ptr %1 -} +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #12 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIKi1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS5_IJDpT1_EESt12_Index_tupleIJXspT0_EEESE_IJXspT2_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__tuple1, ptr noundef nonnull align 1 dereferenceable(1) %__tuple2) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIKi1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS5_IJDpT1_EESt12_Index_tupleIJXspT0_EEESE_IJXspT2_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__tuple1, ptr noundef nonnull align 1 dereferenceable(1) %__tuple2) unnamed_addr #4 comdat align 2 { entry: %0 = alloca %"struct.std::_Index_tuple", align 1 - %1 = alloca %"struct.std::_Index_tuple.8", align 1 + %1 = alloca %"struct.std::_Index_tuple.6", align 1 %this.addr = alloca ptr, align 8 %__tuple1.addr = alloca ptr, align 8 %__tuple2.addr = alloca ptr, align 8 @@ -2415,12 +2152,12 @@ entry: %this2 = load ptr, ptr %this.addr, align 8 %first = getelementptr inbounds %"struct.std::pair", ptr %this2, i32 0, i32 0 %2 = load ptr, ptr %__tuple1.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJOiEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS5_(ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJOiEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS5_(ptr noundef nonnull align 8 dereferenceable(8) %2) #13 %3 = load i32, ptr %call, align 4 store i32 %3, ptr %first, align 8 %second = getelementptr inbounds %"struct.std::pair", ptr %this2, i32 0, i32 1 call void @llvm.memset.p0.i64(ptr align 8 %second, i8 0, i64 8, i1 false) - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %second) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %second) #13 ret void } @@ -2430,7 +2167,7 @@ entry: %__t.addr = alloca ptr, align 8 store ptr %__t, ptr %__t.addr, align 8 %0 = load ptr, ptr %__t.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt12__get_helperILm0EOiJEERT0_RSt11_Tuple_implIXT_EJS1_DpT1_EE(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt12__get_helperILm0EOiJEERT0_RSt11_Tuple_implIXT_EJS1_DpT1_EE(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 ret ptr %call } @@ -2440,101 +2177,169 @@ entry: %__t.addr = alloca ptr, align 8 store ptr %__t, ptr %__t.addr, align 8 %0 = load ptr, ptr %__t.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__t) #2 comdat align 2 { +entry: + %__t.addr = alloca ptr, align 8 + store ptr %__t, ptr %__t.addr, align 8 + %0 = load ptr, ptr %__t.addr, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat align 2 { +entry: + %__b.addr = alloca ptr, align 8 + store ptr %__b, ptr %__b.addr, align 8 + %0 = load ptr, ptr %__b.addr, align 8 + %_M_head_impl = getelementptr inbounds %"struct.std::_Head_base", ptr %0, i32 0, i32 0 + %1 = load ptr, ptr %_M_head_impl, align 8 + ret ptr %1 +} + +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %__policy) unnamed_addr #8 comdat align 2 { entry: %this.addr = alloca ptr, align 8 + %__policy.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 + store ptr %__policy, ptr %__policy.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 - %0 = load i64, ptr %_M_next_resize, align 8 - ret i64 %0 + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__policy.addr, align 8 + store ptr %0, ptr %_M_guarded_obj, align 8 + %_M_prev_state = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__policy.addr, align 8 + %call = call noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %1) + store i64 %call, ptr %_M_prev_state, align 8 + ret void } declare { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef, i64 noundef) #1 ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count, ptr noundef nonnull align 8 dereferenceable(8) %__state) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count) #0 comdat align 2 { entry: + %0 = alloca %"struct.std::integral_constant", align 1 %this.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 - %__state.addr = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::integral_constant", align 1 - %exn.slot = alloca ptr, align 8 - %ehselector.slot = alloca i32, align 4 + %__new_buckets = alloca ptr, align 8 + %__p = alloca ptr, align 8 + %__bbegin_bkt = alloca i64, align 8 + %__next = alloca ptr, align 8 + %__bkt = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 - store ptr %__state, ptr %__state.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load i64, ptr %__bkt_count.addr, align 8 - invoke void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - br label %try.cont - -lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } - catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - br label %catch - -catch: ; preds = %lpad - %exn = load ptr, ptr %exn.slot, align 8 - %4 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - %5 = load ptr, ptr %__state.addr, align 8 - %6 = load i64, ptr %5, align 8 - invoke void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, i64 noundef %6) - to label %invoke.cont3 unwind label %lpad2 + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call = call noundef ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %1) + store ptr %call, ptr %__new_buckets, align 8 + %call2 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) + store ptr %call2, ptr %__p, align 8 + %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin, i32 0, i32 0 + store ptr null, ptr %_M_nxt, align 8 + store i64 0, ptr %__bbegin_bkt, align 8 + br label %while.cond -invoke.cont3: ; preds = %catch - invoke void @__cxa_rethrow() #16 - to label %unreachable unwind label %lpad2 +while.cond: ; preds = %if.end22, %entry + %2 = load ptr, ptr %__p, align 8 + %tobool = icmp ne ptr %2, null + br i1 %tobool, label %while.body, label %while.end -lpad2: ; preds = %invoke.cont3, %catch - %7 = landingpad { ptr, i32 } - cleanup - %8 = extractvalue { ptr, i32 } %7, 0 - store ptr %8, ptr %exn.slot, align 8 - %9 = extractvalue { ptr, i32 } %7, 1 - store i32 %9, ptr %ehselector.slot, align 4 - invoke void @__cxa_end_catch() - to label %invoke.cont4 unwind label %terminate.lpad +while.body: ; preds = %while.cond + %3 = load ptr, ptr %__p, align 8 + %call3 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #13 + store ptr %call3, ptr %__next, align 8 + %4 = load ptr, ptr %__p, align 8 + %add.ptr = getelementptr inbounds i8, ptr %4, i64 8 + %5 = load i64, ptr %__bkt_count.addr, align 8 + %call4 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr, i64 noundef %5) #13 + store i64 %call4, ptr %__bkt, align 8 + %6 = load ptr, ptr %__new_buckets, align 8 + %7 = load i64, ptr %__bkt, align 8 + %arrayidx = getelementptr inbounds ptr, ptr %6, i64 %7 + %8 = load ptr, ptr %arrayidx, align 8 + %tobool5 = icmp ne ptr %8, null + br i1 %tobool5, label %if.else, label %if.then -invoke.cont4: ; preds = %lpad2 - br label %eh.resume +if.then: ; preds = %while.body + %_M_before_begin6 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt7 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin6, i32 0, i32 0 + %9 = load ptr, ptr %_M_nxt7, align 8 + %10 = load ptr, ptr %__p, align 8 + %_M_nxt8 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %10, i32 0, i32 0 + store ptr %9, ptr %_M_nxt8, align 8 + %11 = load ptr, ptr %__p, align 8 + %_M_before_begin9 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt10 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin9, i32 0, i32 0 + store ptr %11, ptr %_M_nxt10, align 8 + %_M_before_begin11 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %12 = load ptr, ptr %__new_buckets, align 8 + %13 = load i64, ptr %__bkt, align 8 + %arrayidx12 = getelementptr inbounds ptr, ptr %12, i64 %13 + store ptr %_M_before_begin11, ptr %arrayidx12, align 8 + %14 = load ptr, ptr %__p, align 8 + %_M_nxt13 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %14, i32 0, i32 0 + %15 = load ptr, ptr %_M_nxt13, align 8 + %tobool14 = icmp ne ptr %15, null + br i1 %tobool14, label %if.then15, label %if.end -try.cont: ; preds = %invoke.cont - ret void +if.then15: ; preds = %if.then + %16 = load ptr, ptr %__p, align 8 + %17 = load ptr, ptr %__new_buckets, align 8 + %18 = load i64, ptr %__bbegin_bkt, align 8 + %arrayidx16 = getelementptr inbounds ptr, ptr %17, i64 %18 + store ptr %16, ptr %arrayidx16, align 8 + br label %if.end -eh.resume: ; preds = %invoke.cont4 - %exn5 = load ptr, ptr %exn.slot, align 8 - %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn5, 0 - %lpad.val6 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val6 +if.end: ; preds = %if.then15, %if.then + %19 = load i64, ptr %__bkt, align 8 + store i64 %19, ptr %__bbegin_bkt, align 8 + br label %if.end22 -terminate.lpad: ; preds = %lpad2 - %10 = landingpad { ptr, i32 } - catch ptr null - %11 = extractvalue { ptr, i32 } %10, 0 - call void @__clang_call_terminate(ptr %11) #15 - unreachable +if.else: ; preds = %while.body + %20 = load ptr, ptr %__new_buckets, align 8 + %21 = load i64, ptr %__bkt, align 8 + %arrayidx17 = getelementptr inbounds ptr, ptr %20, i64 %21 + %22 = load ptr, ptr %arrayidx17, align 8 + %_M_nxt18 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %22, i32 0, i32 0 + %23 = load ptr, ptr %_M_nxt18, align 8 + %24 = load ptr, ptr %__p, align 8 + %_M_nxt19 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %24, i32 0, i32 0 + store ptr %23, ptr %_M_nxt19, align 8 + %25 = load ptr, ptr %__p, align 8 + %26 = load ptr, ptr %__new_buckets, align 8 + %27 = load i64, ptr %__bkt, align 8 + %arrayidx20 = getelementptr inbounds ptr, ptr %26, i64 %27 + %28 = load ptr, ptr %arrayidx20, align 8 + %_M_nxt21 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %28, i32 0, i32 0 + store ptr %25, ptr %_M_nxt21, align 8 + br label %if.end22 -unreachable: ; preds = %invoke.cont3 - unreachable +if.end22: ; preds = %if.else, %if.end + %29 = load ptr, ptr %__next, align 8 + store ptr %29, ptr %__p, align 8 + br label %while.cond, !llvm.loop !9 + +while.end: ; preds = %while.cond + call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) + %30 = load i64, ptr %__bkt_count.addr, align 8 + %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 + store i64 %30, ptr %_M_bucket_count, align 8 + %31 = load ptr, ptr %__new_buckets, align 8 + %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 + store ptr %31, ptr %_M_buckets, align 8 + ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %0, i64 noundef %1) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -2607,8 +2412,9 @@ if.then14: ; preds = %if.else %_M_buckets15 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 %18 = load ptr, ptr %_M_buckets15, align 8 %19 = load ptr, ptr %__node.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #5 - %call16 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS5_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef %call) #5 + %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #13 + %add.ptr = getelementptr inbounds i8, ptr %call, i64 8 + %call16 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS5_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr) #13 %arrayidx17 = getelementptr inbounds ptr, ptr %18, i64 %call16 store ptr %17, ptr %arrayidx17, align 8 br label %if.end @@ -2627,7 +2433,7 @@ if.end21: ; preds = %if.end, %if.then } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 @@ -2635,137 +2441,52 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKi1AELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %0) #5 + call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKi1AELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %0) #13 ret void } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count) #0 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: - %0 = alloca %"struct.std::integral_constant", align 1 %this.addr = alloca ptr, align 8 - %__bkt_count.addr = alloca i64, align 8 - %__new_buckets = alloca ptr, align 8 - %__p = alloca ptr, align 8 - %__bbegin_bkt = alloca i64, align 8 - %__next = alloca ptr, align 8 - %__bkt = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %1 = load i64, ptr %__bkt_count.addr, align 8 - %call = call noundef ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %1) - store ptr %call, ptr %__new_buckets, align 8 - %call2 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) - store ptr %call2, ptr %__p, align 8 - %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin, i32 0, i32 0 - store ptr null, ptr %_M_nxt, align 8 - store i64 0, ptr %__bbegin_bkt, align 8 - br label %while.cond - -while.cond: ; preds = %if.end22, %entry - %2 = load ptr, ptr %__p, align 8 - %tobool = icmp ne ptr %2, null - br i1 %tobool, label %while.body, label %while.end - -while.body: ; preds = %while.cond - %3 = load ptr, ptr %__p, align 8 - %call3 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKi1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #5 - store ptr %call3, ptr %__next, align 8 - %4 = load ptr, ptr %__p, align 8 - %5 = load i64, ptr %__bkt_count.addr, align 8 - %call4 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKi1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS4_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %4, i64 noundef %5) #5 - store i64 %call4, ptr %__bkt, align 8 - %6 = load ptr, ptr %__new_buckets, align 8 - %7 = load i64, ptr %__bkt, align 8 - %arrayidx = getelementptr inbounds ptr, ptr %6, i64 %7 - %8 = load ptr, ptr %arrayidx, align 8 - %tobool5 = icmp ne ptr %8, null - br i1 %tobool5, label %if.else, label %if.then + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_guarded_obj, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end -if.then: ; preds = %while.body - %_M_before_begin6 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt7 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin6, i32 0, i32 0 - %9 = load ptr, ptr %_M_nxt7, align 8 - %10 = load ptr, ptr %__p, align 8 - %_M_nxt8 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %10, i32 0, i32 0 - store ptr %9, ptr %_M_nxt8, align 8 - %11 = load ptr, ptr %__p, align 8 - %_M_before_begin9 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt10 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin9, i32 0, i32 0 - store ptr %11, ptr %_M_nxt10, align 8 - %_M_before_begin11 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %12 = load ptr, ptr %__new_buckets, align 8 - %13 = load i64, ptr %__bkt, align 8 - %arrayidx12 = getelementptr inbounds ptr, ptr %12, i64 %13 - store ptr %_M_before_begin11, ptr %arrayidx12, align 8 - %14 = load ptr, ptr %__p, align 8 - %_M_nxt13 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %14, i32 0, i32 0 - %15 = load ptr, ptr %_M_nxt13, align 8 - %tobool14 = icmp ne ptr %15, null - br i1 %tobool14, label %if.then15, label %if.end +if.then: ; preds = %entry + %_M_guarded_obj2 = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %1 = load ptr, ptr %_M_guarded_obj2, align 8 + %_M_prev_state = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 1 + %2 = load i64, ptr %_M_prev_state, align 8 + invoke void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %1, i64 noundef %2) + to label %invoke.cont unwind label %terminate.lpad -if.then15: ; preds = %if.then - %16 = load ptr, ptr %__p, align 8 - %17 = load ptr, ptr %__new_buckets, align 8 - %18 = load i64, ptr %__bbegin_bkt, align 8 - %arrayidx16 = getelementptr inbounds ptr, ptr %17, i64 %18 - store ptr %16, ptr %arrayidx16, align 8 +invoke.cont: ; preds = %if.then br label %if.end -if.end: ; preds = %if.then15, %if.then - %19 = load i64, ptr %__bkt, align 8 - store i64 %19, ptr %__bbegin_bkt, align 8 - br label %if.end22 - -if.else: ; preds = %while.body - %20 = load ptr, ptr %__new_buckets, align 8 - %21 = load i64, ptr %__bkt, align 8 - %arrayidx17 = getelementptr inbounds ptr, ptr %20, i64 %21 - %22 = load ptr, ptr %arrayidx17, align 8 - %_M_nxt18 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %22, i32 0, i32 0 - %23 = load ptr, ptr %_M_nxt18, align 8 - %24 = load ptr, ptr %__p, align 8 - %_M_nxt19 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %24, i32 0, i32 0 - store ptr %23, ptr %_M_nxt19, align 8 - %25 = load ptr, ptr %__p, align 8 - %26 = load ptr, ptr %__new_buckets, align 8 - %27 = load i64, ptr %__bkt, align 8 - %arrayidx20 = getelementptr inbounds ptr, ptr %26, i64 %27 - %28 = load ptr, ptr %arrayidx20, align 8 - %_M_nxt21 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %28, i32 0, i32 0 - store ptr %25, ptr %_M_nxt21, align 8 - br label %if.end22 - -if.end22: ; preds = %if.else, %if.end - %29 = load ptr, ptr %__next, align 8 - store ptr %29, ptr %__p, align 8 - br label %while.cond, !llvm.loop !9 - -while.end: ; preds = %while.cond - call void @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) - %30 = load i64, ptr %__bkt_count.addr, align 8 - %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 - store i64 %30, ptr %_M_bucket_count, align 8 - %31 = load ptr, ptr %__new_buckets, align 8 - %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 - store ptr %31, ptr %_M_buckets, align 8 +if.end: ; preds = %invoke.cont, %entry ret void + +terminate.lpad: ; preds = %if.then + %3 = landingpad { ptr, i32 } + catch ptr null + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #14 + unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %this, i64 noundef %__state) #2 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__state.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store i64 %__state, ptr %__state.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load i64, ptr %__state.addr, align 8 %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 - store i64 %0, ptr %_M_next_resize, align 8 - ret void + %0 = load i64, ptr %_M_next_resize, align 8 + ret i64 %0 } ; Function Attrs: mustprogress noinline optnone uwtable @@ -2799,12 +2520,19 @@ return: ; preds = %if.end, %if.then ret ptr %2 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__bkt_count) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__bkt_count) #8 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i9 = alloca ptr, align 8 + %this.addr.i7 = alloca ptr, align 8 + %this.addr.i5 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 - %__alloc = alloca %"class.std::allocator.4", align 1 + %__alloc = alloca %"class.std::allocator.2", align 1 %__ptr = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 @@ -2813,32 +2541,47 @@ entry: store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKi1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKi1AELb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + store ptr %__alloc, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i9, align 8 + %this1.i10 = load ptr, ptr %this.addr.i9, align 8 %0 = load i64, ptr %__bkt_count.addr, align 8 - %call2 = invoke noundef ptr @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - store ptr %call2, ptr %__ptr, align 8 - %1 = load ptr, ptr %__ptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %1) #5 + store ptr %__alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i11 = invoke noundef ptr @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit + store ptr %call.i11, ptr %__ptr, align 8 + %3 = load ptr, ptr %__ptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %3) #13 store ptr %call3, ptr %__p, align 8 - %2 = load ptr, ptr %__p, align 8 - %3 = load i64, ptr %__bkt_count.addr, align 8 - %mul = mul i64 %3, 8 - call void @llvm.memset.p0.i64(ptr align 8 %2, i8 0, i64 %mul, i1 false) %4 = load ptr, ptr %__p, align 8 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 - ret ptr %4 + %5 = load i64, ptr %__bkt_count.addr, align 8 + %mul = mul i64 %5, 8 + call void @llvm.memset.p0.i64(ptr align 8 %4, i8 0, i64 %mul, i1 false) + %6 = load ptr, ptr %__p, align 8 + store ptr %__alloc, ptr %this.addr.i5, align 8 + %this1.i6 = load ptr, ptr %this.addr.i5, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i6) #13 + ret ptr %6 lpad: ; preds = %entry - %5 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } cleanup - %6 = extractvalue { ptr, i32 } %5, 0 - store ptr %6, ptr %exn.slot, align 8 - %7 = extractvalue { ptr, i32 } %5, 1 - store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + %8 = extractvalue { ptr, i32 } %7, 0 + store ptr %8, ptr %exn.slot, align 8 + %9 = extractvalue { ptr, i32 } %7, 1 + store i32 %9, ptr %ehselector.slot, align 4 + store ptr %__alloc, ptr %this.addr.i7, align 8 + %this1.i8 = load ptr, ptr %this.addr.i7, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i8) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -2849,19 +2592,6 @@ eh.resume: ; preds = %lpad resume { ptr, i32 } %lpad.val4 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %__ptr) #2 comdat { entry: @@ -2872,8 +2602,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -2882,32 +2613,33 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #16 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #16 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKi1AELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKi1AELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 @@ -2920,6 +2652,20 @@ entry: ret void } +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %this, i64 noundef %__state) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__state.addr = alloca i64, align 8 + store ptr %this, ptr %this.addr, align 8 + store i64 %__state, ptr %__state.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load i64, ptr %__state.addr, align 8 + %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 + store i64 %0, ptr %_M_next_resize, align 8 + ret void +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local ptr @_ZNSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this) #2 comdat align 2 { entry: @@ -2928,38 +2674,31 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKi1AESaIS3_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb0ELb0ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) - call void @_ZNSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %call) #5 + call void @_ZNSt8__detail14_Node_iteratorISt4pairIKi1AELb0ELb0EEC2EPNS_10_Hash_nodeIS4_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %call) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 %coerce.dive2 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive2, align 8 ret ptr %0 } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_unordered_map_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { cold noreturn nounwind } -attributes #13 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { cold noreturn nounwind } +attributes #10 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2969,7 +2708,7 @@ attributes #17 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/unordered_map-2.cpp.bc b/test_cases_bc/basic_cpp_tests/unordered_map-2.cpp.bc index a1ad3f2d..6f9594e0 100644 --- a/test_cases_bc/basic_cpp_tests/unordered_map-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/unordered_map-2.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/u target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"struct.std::piecewise_construct_t" = type { i8 } %"class.std::unordered_map" = type { %"class.std::_Hashtable" } %"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr } @@ -14,19 +15,21 @@ target triple = "x86_64-unknown-linux-gnu" %"struct.std::__detail::_Node_iterator_base" = type { ptr } %"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" } %"struct.std::pair" = type { i32, ptr } -%"struct.std::__detail::_Hash_node_value_base" = type { %"struct.std::__detail::_Hash_node_base", %"struct.__gnu_cxx::__aligned_buffer" } %"struct.__gnu_cxx::__aligned_buffer" = type { %"union.std::aligned_storage<16, 8>::type" } %"union.std::aligned_storage<16, 8>::type" = type { [16 x i8] } -%"class.std::allocator.4" = type { i8 } +%"class.std::allocator.2" = type { i8 } %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node" = type { ptr, ptr } %"class.std::tuple" = type { %"struct.std::_Tuple_impl" } %"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base" } %"struct.std::_Head_base" = type { ptr } -%"class.std::tuple.7" = type { i8 } -%"struct.std::pair.9" = type { i8, i64 } -%"struct.std::_Index_tuple" = type { i8 } -%"struct.std::_Index_tuple.8" = type { i8 } +%"class.std::tuple.5" = type { i8 } +%"struct.std::__detail::_RehashStateGuard" = type { ptr, i64 } +%"struct.std::pair.7" = type { i8, i64 } %"struct.std::integral_constant" = type { i8 } +%"struct.std::__detail::_Mod_range_hashing" = type { i8 } +%"struct.std::__detail::_Select1st" = type { i8 } +%"struct.std::_Index_tuple" = type { i8 } +%"struct.std::_Index_tuple.6" = type { i8 } $_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEEC2Ev = comdat any @@ -56,18 +59,10 @@ $_ZNSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18 $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev = comdat any -$_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EEC2Ev = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev = comdat any -$_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EEC2Ev = comdat any -$_ZNSaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any $_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev = comdat any @@ -88,27 +83,19 @@ $_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE18_M_deallocate_nodeEPS8_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE7destroyIS7_EEvRS9_PT_ = comdat any - $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv = comdat any -$_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv = comdat any - $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE22_M_deallocate_node_ptrEPS8_ = comdat any -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE7destroyIS8_EEvPT_ = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EE6_M_getEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv = comdat any -$_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10pointer_toERS8_ = comdat any +$_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEES8_Lb0EE10pointer_toERS8_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE10deallocateERS9_PS8_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10deallocateEPS9_m = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10deallocateEPS8_m = comdat any $_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEPPNS7_15_Hash_node_baseEm = comdat any @@ -116,100 +103,68 @@ $_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toI $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm = comdat any -$_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_ = comdat any - -$_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEERKSaIT_E = comdat any +$_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_ = comdat any -$_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m = comdat any -$_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EED2Ev = comdat any -$_ZNSaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev = comdat any $_ZNSt8__detail9_Map_baseIiSt4pairIKiPK1AESaIS6_ENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOi = comdat any $_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS2_ = comdat any -$_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m = comdat any +$_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm = comdat any $_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m = comdat any -$_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE4_M_vEv = comdat any - $_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_ = comdat any $_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESO_IJEEEEEPNS7_16_Hashtable_allocISaINS7_10_Hash_nodeIS5_Lb0EEEEEEDpOT_ = comdat any -$_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeERS1_mmPNS7_10_Hash_nodeIS5_Lb0EEEm = comdat any +$_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS7_10_Hash_nodeIS5_Lb0EEEm = comdat any $_ZNKSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEptEv = comdat any $_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev = comdat any +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv = comdat any $_ZNKSt4hashIiEclEi = comdat any $_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EE7_M_cgetEv = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERS2_mm = comdat any - -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev = comdat any +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm = comdat any $_ZNKSt8__detail18_Mod_range_hashingclEmm = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv = comdat any - $_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_find_before_nodeEmRS1_m = comdat any -$_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mPNS_10_Hash_nodeIS6_Lb0EEE = comdat any +$_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mRKNS_16_Hash_node_valueIS6_Lb0EEE = comdat any + +$_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS7_16_Hash_node_valueIS5_Lb0EEE = comdat any -$_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS7_10_Hash_nodeIS5_Lb0EEE = comdat any +$_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE = comdat any -$_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS6_Lb0EEEE9_S_equalsEmRKSJ_ = comdat any +$_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS2_RKNS_16_Hash_node_valueIS6_Lb0EEE = comdat any $_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv = comdat any $_ZNKSt8equal_toIiEclERKiS2_ = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv = comdat any - -$_ZNKSt8__detail10_Select1stclIRSt4pairIKiPK1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS9_ = comdat any +$_ZNKSt8__detail10_Select1stclIRKSt4pairIKiPK1AEEEONS0_10__1st_typeIT_E4typeEOSB_ = comdat any $_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EE7_M_cgetEv = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EE7_M_cgetEv = comdat any - -$_ZSt3getILm0EKiPK1AERNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERS8_ = comdat any - -$_ZNSt10__pair_getILm0EE5__getIKiPK1AEERT_RSt4pairIS6_T0_E = comdat any - -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS6_Lb0EEEm = comdat any - -$_ZNKSt8__detail10_Select1stclIRKSt4pairIKiPK1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOSA_ = comdat any - -$_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE4_M_vEv = comdat any - -$_ZSt3getILm0EKiPK1AERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKS8_ = comdat any - -$_ZNSt10__pair_getILm0EE11__const_getIKiPK1AEERKT_RKSt4pairIS6_T0_E = comdat any - -$_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv = comdat any - $_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv = comdat any $_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv = comdat any +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS6_Lb0EEEm = comdat any + $_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_ = comdat any $_ZNSt11_Tuple_implILm0EJOiEEC2IiEEOT_ = comdat any @@ -218,21 +173,11 @@ $_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_ = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE16_M_allocate_nodeIJRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEPS8_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE8allocateERS9_m = comdat any - $_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEPT_SA_ = comdat any $_ZNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEC2Ev = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvRS9_PT_DpOT0_ = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE11_M_max_sizeEv = comdat any - -$_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE9constructIS8_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvPT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE8allocateEmPKv = comdat any $_ZNSt5tupleIJOiEEC2EOS1_ = comdat any @@ -240,44 +185,42 @@ $_ZNSt4pairIKiPK1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES8_IJDpT0 $_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_ = comdat any -$_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_ = comdat any - -$_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_ = comdat any - $_ZNSt4pairIKiPK1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS7_IJDpT1_EESt12_Index_tupleIJXspT0_EEESG_IJXspT2_EEE = comdat any $_ZSt3getILm0EJOiEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS5_ = comdat any $_ZSt12__get_helperILm0EOiJEERT0_RSt11_Tuple_implIXT_EJS1_DpT1_EE = comdat any -$_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv = comdat any +$_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_ = comdat any + +$_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_ = comdat any -$_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm = comdat any +$_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_ = comdat any -$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS6_Lb0EEEm = comdat any +$_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE = comdat any + +$_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm = comdat any $_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE22_M_insert_bucket_beginEmPNS7_10_Hash_nodeIS5_Lb0EEE = comdat any $_ZNSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE = comdat any -$_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE = comdat any +$_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev = comdat any -$_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm = comdat any +$_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv = comdat any $_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE19_M_allocate_bucketsEm = comdat any -$_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m = comdat any - $_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv = comdat any $_ZNSt8__detail19_Node_iterator_baseISt4pairIKiPK1AELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE = comdat any +$_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm = comdat any + $_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv = comdat any $_ZTV1A = comdat any @@ -291,8 +234,6 @@ $_ZSt19piecewise_construct = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @@ -300,7 +241,6 @@ $_ZSt19piecewise_construct = comdat any @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 @_ZSt19piecewise_construct = linkonce_odr dso_local constant %"struct.std::piecewise_construct_t" undef, comdat, align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_unordered_map_2.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -435,24 +375,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -470,20 +394,20 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #13 store i32 0, ptr %ref.tmp, align 4 %call = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEEixEOi(ptr noundef nonnull align 8 dereferenceable(56) %amap, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry store ptr %a, ptr %call, align 8 - %call2 = call ptr @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 + %call2 = call ptr @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %ref.tmp1, i32 0, i32 0 %coerce.dive3 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 store ptr %call2, ptr %coerce.dive3, align 8 - call void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKiPK1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS6_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp1) #5 - %call4 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKiPK1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + call void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKiPK1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS6_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp1) #13 + %call4 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKiPK1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #13 %second = getelementptr inbounds %"struct.std::pair", ptr %call4, i32 0, i32 1 %0 = load ptr, ptr %second, align 8 store ptr %0, ptr %aptr, align 8 @@ -497,7 +421,7 @@ invoke.cont: ; preds = %entry invoke.cont5: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 + call void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -508,7 +432,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #5 + call void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %amap) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -520,18 +444,18 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_map", ptr %this1, i32 0, i32 0 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -564,7 +488,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_map", ptr %this1, i32 0, i32 0 - %call = call ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + %call = call ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 %coerce.dive2 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 store ptr %call, ptr %coerce.dive2, align 8 @@ -575,7 +499,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKiPK1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS6_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail20_Node_const_iteratorISt4pairIKiPK1AELb0ELb0EEC2ERKNS_14_Node_iteratorIS6_Lb0ELb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -585,80 +509,84 @@ entry: %0 = load ptr, ptr %__x.addr, align 8 %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %0, i32 0, i32 0 %1 = load ptr, ptr %_M_cur, align 8 - call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKiPK1AELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %1) #5 + call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKiPK1AELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %1) #13 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKiPK1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %_M_cur, align 8 - %call = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - ret ptr %call + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + ret ptr %call.i } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt13unordered_mapIiPK1ASt4hashIiESt8equal_toIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_map", ptr %this1, i32 0, i32 0 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 %_M_single_bucket = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 5 store ptr %_M_single_bucket, ptr %_M_buckets, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 store i64 1, ptr %_M_bucket_count, align 8 %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_before_begin) #5 + call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_before_begin) #13 %_M_element_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 store i64 0, ptr %_M_element_count, align 8 %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - call void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, float noundef 1.000000e+00) #5 + call void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, float noundef 1.000000e+00) #13 %_M_single_bucket2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 5 store ptr null, ptr %_M_single_bucket2, align 8 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -669,7 +597,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %this, float noundef %__z) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %this, float noundef %__z) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__z.addr = alloca float, align 4 @@ -685,79 +613,45 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIiELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -776,24 +670,24 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) #5 + call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) #13 invoke void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #15 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -828,7 +722,7 @@ terminate.lpad: ; preds = %invoke.cont, %entry %2 = landingpad { ptr, i32 } catch ptr null %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #15 + call void @__clang_call_terminate(ptr %3) #14 unreachable } @@ -847,9 +741,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #15 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #13 + call void @_ZSt9terminatev() #14 unreachable } @@ -858,12 +752,12 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #13 ret void } @@ -887,7 +781,7 @@ while.body: ; preds = %while.cond %1 = load ptr, ptr %__n.addr, align 8 store ptr %1, ptr %__tmp, align 8 %2 = load ptr, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5 + %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #13 store ptr %call, ptr %__n.addr, align 8 %3 = load ptr, ptr %__tmp, align 8 call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE18_M_deallocate_nodeEPS8_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %3) @@ -910,7 +804,7 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { @@ -926,6 +820,11 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE18_M_deallocate_nodeEPS8_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__n) #0 comdat align 2 { entry: + %this.addr.i3 = alloca ptr, align 8 + %__p.addr.i4 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -933,23 +832,20 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %0 = load ptr, ptr %__n.addr, align 8 - %call2 = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - call void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE7destroyIS7_EEvRS9_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2) #5 - %1 = load ptr, ptr %__n.addr, align 8 - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE22_M_deallocate_node_ptrEPS8_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE7destroyIS7_EEvRS9_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE7destroyIS8_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call.i, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i3, align 8 + store ptr %2, ptr %__p.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i3, align 8 + %3 = load ptr, ptr %__p.addr.i4, align 8 + %4 = load ptr, ptr %__n.addr, align 8 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE22_M_deallocate_node_ptrEPS8_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %4) ret void } @@ -963,20 +859,12 @@ entry: ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 - ret ptr %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE22_M_deallocate_node_ptrEPS8_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 @@ -984,24 +872,18 @@ entry: store ptr %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10pointer_toERS8_(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEES8_Lb0EE10pointer_toERS8_(ptr noundef nonnull align 8 dereferenceable(24) %0) #13 store ptr %call, ptr %__ptr, align 8 %1 = load ptr, ptr %__n.addr, align 8 %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %2 = load ptr, ptr %__ptr, align 8 - call void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE10deallocateERS9_PS8_m(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %2, i64 noundef 1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE7destroyIS8_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10deallocateEPS8_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) ret void } @@ -1020,7 +902,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 ret ptr %call } @@ -1035,7 +917,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10pointer_toERS8_(ptr noundef nonnull align 8 dereferenceable(24) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEES8_Lb0EE10pointer_toERS8_(ptr noundef nonnull align 8 dereferenceable(24) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -1043,39 +925,23 @@ entry: ret ptr %0 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE10deallocateERS9_PS8_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10deallocateEPS9_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10deallocateEPS9_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10deallocateEPS8_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 +declare void @_ZdlPv(ptr noundef) #7 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEPPNS7_15_Hash_node_baseEm(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #0 comdat align 2 { @@ -1118,14 +984,22 @@ entry: ret i1 %cmp } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #8 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i8 = alloca ptr, align 8 + %this.addr.i6 = alloca ptr, align 8 + %this.addr.i4 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__bkts.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 %__ptr = alloca ptr, align 8 - %__alloc = alloca %"class.std::allocator.4", align 1 + %__alloc = alloca %"class.std::allocator.2", align 1 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 store ptr %this, ptr %this.addr, align 8 @@ -1133,27 +1007,41 @@ entry: store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__bkts.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 store ptr %call, ptr %__ptr, align 8 %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef nonnull align 1 dereferenceable(1) %call2) #5 + store ptr %__alloc, ptr %this.addr.i, align 8 + store ptr %call2, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i8, align 8 + %this1.i9 = load ptr, ptr %this.addr.i8, align 8 %1 = load ptr, ptr %__ptr, align 8 %2 = load i64, ptr %__bkt_count.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef %1, i64 noundef %2) - to label %invoke.cont unwind label %lpad + store ptr %__alloc, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 %2, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + store ptr %__alloc, ptr %this.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i4, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i5) #13 ret void -lpad: ; preds = %entry - %3 = landingpad { ptr, i32 } +lpad: ; No predecessors! + %6 = landingpad { ptr, i32 } cleanup - %4 = extractvalue { ptr, i32 } %3, 0 - store ptr %4, ptr %exn.slot, align 8 - %5 = extractvalue { ptr, i32 } %3, 1 - store i32 %5, ptr %ehselector.slot, align 4 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + %7 = extractvalue { ptr, i32 } %6, 0 + store ptr %7, ptr %exn.slot, align 8 + %8 = extractvalue { ptr, i32 } %6, 1 + store i32 %8, ptr %ehselector.slot, align 4 + store ptr %__alloc, ptr %this.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i6, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i7) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -1165,7 +1053,7 @@ eh.resume: ; preds = %lpad } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -1173,99 +1061,45 @@ entry: ret ptr %0 } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #13 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1276,6 +1110,8 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail9_Map_baseIiSt4pairIKiPK1AESaIS6_ENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOi(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %retval = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__k.addr = alloca ptr, align 8 @@ -1285,7 +1121,7 @@ entry: %__node = alloca ptr, align 8 %__node5 = alloca %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", align 8 %ref.tmp = alloca %"class.std::tuple", align 8 - %ref.tmp6 = alloca %"class.std::tuple.7", align 1 + %ref.tmp6 = alloca %"class.std::tuple.5", align 1 %__pos = alloca %"struct.std::__detail::_Node_iterator", align 8 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 @@ -1298,39 +1134,42 @@ entry: %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS2_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 4 dereferenceable(4) %1) store i64 %call, ptr %__code, align 8 %2 = load ptr, ptr %__h, align 8 - %3 = load ptr, ptr %__k.addr, align 8 - %4 = load i64, ptr %__code, align 8 - %call2 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m(ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef nonnull align 4 dereferenceable(4) %3, i64 noundef %4) + %3 = load i64, ptr %__code, align 8 + %call2 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %2, i64 noundef %3) store i64 %call2, ptr %__bkt, align 8 - %5 = load ptr, ptr %__h, align 8 - %6 = load i64, ptr %__bkt, align 8 - %7 = load ptr, ptr %__k.addr, align 8 - %8 = load i64, ptr %__code, align 8 - %call3 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m(ptr noundef nonnull align 8 dereferenceable(56) %5, i64 noundef %6, ptr noundef nonnull align 4 dereferenceable(4) %7, i64 noundef %8) + %4 = load ptr, ptr %__h, align 8 + %5 = load i64, ptr %__bkt, align 8 + %6 = load ptr, ptr %__k.addr, align 8 + %7 = load i64, ptr %__code, align 8 + %call3 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m(ptr noundef nonnull align 8 dereferenceable(56) %4, i64 noundef %5, ptr noundef nonnull align 4 dereferenceable(4) %6, i64 noundef %7) store ptr %call3, ptr %__node, align 8 - %9 = load ptr, ptr %__node, align 8 - %tobool = icmp ne ptr %9, null + %8 = load ptr, ptr %__node, align 8 + %tobool = icmp ne ptr %8, null br i1 %tobool, label %if.then, label %if.end if.then: ; preds = %entry - %10 = load ptr, ptr %__node, align 8 - %call4 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #5 - %second = getelementptr inbounds %"struct.std::pair", ptr %call4, i32 0, i32 1 + %9 = load ptr, ptr %__node, align 8 + %add.ptr = getelementptr inbounds i8, ptr %9, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + %call.i.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i.i) #13 + %second = getelementptr inbounds %"struct.std::pair", ptr %call.i.i, i32 0, i32 1 store ptr %second, ptr %retval, align 8 br label %return if.end: ; preds = %entry - %11 = load ptr, ptr %__h, align 8 - %12 = load ptr, ptr %__k.addr, align 8 - call void @_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_(ptr sret(%"class.std::tuple") align 8 %ref.tmp, ptr noundef nonnull align 4 dereferenceable(4) %12) #5 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESO_IJEEEEEPNS7_16_Hashtable_allocISaINS7_10_Hash_nodeIS5_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %__node5, ptr noundef %11, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt19piecewise_construct, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) - %13 = load ptr, ptr %__h, align 8 - %14 = load ptr, ptr %__k.addr, align 8 - %15 = load i64, ptr %__bkt, align 8 - %16 = load i64, ptr %__code, align 8 + %10 = load ptr, ptr %__h, align 8 + %11 = load ptr, ptr %__k.addr, align 8 + call void @_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_(ptr sret(%"class.std::tuple") align 8 %ref.tmp, ptr noundef nonnull align 4 dereferenceable(4) %11) #13 + call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESO_IJEEEEEPNS7_16_Hashtable_allocISaINS7_10_Hash_nodeIS5_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %__node5, ptr noundef %10, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt19piecewise_construct, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) + %12 = load ptr, ptr %__h, align 8 + %13 = load i64, ptr %__bkt, align 8 + %14 = load i64, ptr %__code, align 8 %_M_node = getelementptr inbounds %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node5, i32 0, i32 1 - %17 = load ptr, ptr %_M_node, align 8 - %call7 = invoke ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeERS1_mmPNS7_10_Hash_nodeIS5_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, i64 noundef %15, i64 noundef %16, ptr noundef %17, i64 noundef 1) + %15 = load ptr, ptr %_M_node, align 8 + %call7 = invoke ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS7_10_Hash_nodeIS5_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %12, i64 noundef %13, i64 noundef %14, ptr noundef %15, i64 noundef 1) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %if.end @@ -1339,25 +1178,25 @@ invoke.cont: ; preds = %if.end store ptr %call7, ptr %coerce.dive8, align 8 %_M_node9 = getelementptr inbounds %"struct.std::_Hashtable, std::allocator>, std::__detail::_Select1st, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node5, i32 0, i32 1 store ptr null, ptr %_M_node9, align 8 - %call10 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %__pos) #5 + %call10 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %__pos) #13 %second11 = getelementptr inbounds %"struct.std::pair", ptr %call10, i32 0, i32 1 store ptr %second11, ptr %retval, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #5 + call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #13 br label %return lpad: ; preds = %if.end - %18 = landingpad { ptr, i32 } + %16 = landingpad { ptr, i32 } cleanup - %19 = extractvalue { ptr, i32 } %18, 0 - store ptr %19, ptr %exn.slot, align 8 - %20 = extractvalue { ptr, i32 } %18, 1 - store i32 %20, ptr %ehselector.slot, align 4 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #5 + %17 = extractvalue { ptr, i32 } %16, 0 + store ptr %17, ptr %exn.slot, align 8 + %18 = extractvalue { ptr, i32 } %16, 1 + store i32 %18, ptr %ehselector.slot, align 4 + call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node5) #13 br label %eh.resume return: ; preds = %invoke.cont, %if.then - %21 = load ptr, ptr %retval, align 8 - ret ptr %21 + %19 = load ptr, ptr %retval, align 8 + ret ptr %19 eh.resume: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 @@ -1375,28 +1214,25 @@ entry: store ptr %this, ptr %this.addr, align 8 store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %0 = load ptr, ptr %__k.addr, align 8 %1 = load i32, ptr %0, align 4 - %call2 = call noundef i64 @_ZNKSt4hashIiEclEi(ptr noundef nonnull align 1 dereferenceable(1) %call, i32 noundef %1) #5 + %call2 = call noundef i64 @_ZNKSt4hashIiEclEi(ptr noundef nonnull align 1 dereferenceable(1) %call, i32 noundef %1) #13 ret i64 %call2 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__c) #0 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__c) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 %__c.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__k, ptr %__k.addr, align 8 store i64 %__c, ptr %__c.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__k.addr, align 8 - %1 = load i64, ptr %__c.addr, align 8 + %0 = load i64, ptr %__c.addr, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 - %2 = load i64, ptr %_M_bucket_count, align 8 - %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERS2_mm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %0, i64 noundef %1, i64 noundef %2) + %1 = load i64, ptr %_M_bucket_count, align 8 + %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm(ptr noundef nonnull align 1 dereferenceable(1) %this1, i64 noundef %0, i64 noundef %1) ret i64 %call } @@ -1439,16 +1275,6 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZSt16forward_as_tupleIJiEESt5tupleIJDpOT_EES3_(ptr noalias sret(%"class.std::tuple") align 8 %agg.result, ptr noundef nonnull align 4 dereferenceable(4) %__args) #2 comdat { entry: @@ -1457,12 +1283,12 @@ entry: store ptr %agg.result, ptr %result.ptr, align 8 store ptr %__args, ptr %__args.addr, align 8 %0 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef nonnull align 4 dereferenceable(4) %0) #5 + call void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef nonnull align 4 dereferenceable(4) %0) #13 ret void } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESO_IJEEEEEPNS7_16_Hashtable_allocISaINS7_10_Hash_nodeIS5_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__h, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) unnamed_addr #11 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeC2IJRKSt21piecewise_construct_tSt5tupleIJOiEESO_IJEEEEEPNS7_16_Hashtable_allocISaINS7_10_Hash_nodeIS5_Lb0EEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__h, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) unnamed_addr #8 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__h.addr = alloca ptr, align 8 @@ -1489,91 +1315,127 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeERS1_mmPNS7_10_Hash_nodeIS5_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__bkt, i64 noundef %__code, ptr noundef %__node, i64 noundef %__n_elt) #0 comdat align 2 { +define linkonce_odr dso_local ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS7_10_Hash_nodeIS5_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, i64 noundef %__code, ptr noundef %__node, i64 noundef %__n_elt) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %retval = alloca %"struct.std::__detail::_Node_iterator", align 8 %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 %__bkt.addr = alloca i64, align 8 %__code.addr = alloca i64, align 8 %__node.addr = alloca ptr, align 8 %__n_elt.addr = alloca i64, align 8 - %__saved_state = alloca ptr, align 8 - %ref.tmp = alloca i64, align 8 - %__do_rehash = alloca %"struct.std::pair.9", align 8 + %__rehash_guard = alloca %"struct.std::__detail::_RehashStateGuard", align 8 + %__do_rehash = alloca %"struct.std::pair.7", align 8 + %exn.slot = alloca ptr, align 8 + %ehselector.slot = alloca i32, align 4 + %agg.tmp = alloca %"struct.std::integral_constant", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %__k, ptr %__k.addr, align 8 store i64 %__bkt, ptr %__bkt.addr, align 8 store i64 %__code, ptr %__code.addr, align 8 store ptr %__node, ptr %__node.addr, align 8 store i64 %__n_elt, ptr %__n_elt.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - %call = call noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy) - store i64 %call, ptr %ref.tmp, align 8 - store ptr %ref.tmp, ptr %__saved_state, align 8 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard, ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy) %_M_rehash_policy2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 %0 = load i64, ptr %_M_bucket_count, align 8 %_M_element_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 %1 = load i64, ptr %_M_element_count, align 8 %2 = load i64, ptr %__n_elt.addr, align 8 - %call3 = call { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy2, i64 noundef %0, i64 noundef %1, i64 noundef %2) + %call = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy2, i64 noundef %0, i64 noundef %1, i64 noundef %2) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %entry %3 = getelementptr inbounds { i8, i64 }, ptr %__do_rehash, i32 0, i32 0 - %4 = extractvalue { i8, i64 } %call3, 0 + %4 = extractvalue { i8, i64 } %call, 0 store i8 %4, ptr %3, align 8 %5 = getelementptr inbounds { i8, i64 }, ptr %__do_rehash, i32 0, i32 1 - %6 = extractvalue { i8, i64 } %call3, 1 + %6 = extractvalue { i8, i64 } %call, 1 store i64 %6, ptr %5, align 8 - %first = getelementptr inbounds %"struct.std::pair.9", ptr %__do_rehash, i32 0, i32 0 + %first = getelementptr inbounds %"struct.std::pair.7", ptr %__do_rehash, i32 0, i32 0 %7 = load i8, ptr %first, align 8 %tobool = trunc i8 %7 to i1 br i1 %tobool, label %if.then, label %if.end -if.then: ; preds = %entry - %second = getelementptr inbounds %"struct.std::pair.9", ptr %__do_rehash, i32 0, i32 1 +if.then: ; preds = %invoke.cont + %second = getelementptr inbounds %"struct.std::pair.7", ptr %__do_rehash, i32 0, i32 1 %8 = load i64, ptr %second, align 8 - %9 = load ptr, ptr %__saved_state, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %8, ptr noundef nonnull align 8 dereferenceable(8) %9) - %10 = load ptr, ptr %__k.addr, align 8 - %11 = load i64, ptr %__code.addr, align 8 - %call4 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERS1_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 4 dereferenceable(4) %10, i64 noundef %11) - store i64 %call4, ptr %__bkt.addr, align 8 + invoke void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %8) + to label %invoke.cont3 unwind label %lpad + +invoke.cont3: ; preds = %if.then + %9 = load i64, ptr %__code.addr, align 8 + %call5 = invoke noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %9) + to label %invoke.cont4 unwind label %lpad + +invoke.cont4: ; preds = %invoke.cont3 + store i64 %call5, ptr %__bkt.addr, align 8 br label %if.end -if.end: ; preds = %if.then, %entry - %12 = load ptr, ptr %__node.addr, align 8 - %13 = load i64, ptr %__code.addr, align 8 - call void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %12, i64 noundef %13) - %14 = load i64, ptr %__bkt.addr, align 8 - %15 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE22_M_insert_bucket_beginEmPNS7_10_Hash_nodeIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %14, ptr noundef %15) - %_M_element_count5 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 - %16 = load i64, ptr %_M_element_count5, align 8 - %inc = add i64 %16, 1 - store i64 %inc, ptr %_M_element_count5, align 8 - %17 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %17) #5 +lpad: ; preds = %invoke.cont6, %if.end, %invoke.cont3, %if.then, %entry + %10 = landingpad { ptr, i32 } + cleanup + %11 = extractvalue { ptr, i32 } %10, 0 + store ptr %11, ptr %exn.slot, align 8 + %12 = extractvalue { ptr, i32 } %10, 1 + store i32 %12, ptr %ehselector.slot, align 4 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard) #13 + br label %eh.resume + +if.end: ; preds = %invoke.cont4, %invoke.cont + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %__rehash_guard, i32 0, i32 0 + store ptr null, ptr %_M_guarded_obj, align 8 + %13 = load ptr, ptr %__node.addr, align 8 + %add.ptr = getelementptr inbounds i8, ptr %13, i64 8 + %14 = load i64, ptr %__code.addr, align 8 + invoke void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr, i64 noundef %14) + to label %invoke.cont6 unwind label %lpad + +invoke.cont6: ; preds = %if.end + %15 = load i64, ptr %__bkt.addr, align 8 + %16 = load ptr, ptr %__node.addr, align 8 + invoke void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE22_M_insert_bucket_beginEmPNS7_10_Hash_nodeIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %15, ptr noundef %16) + to label %invoke.cont7 unwind label %lpad + +invoke.cont7: ; preds = %invoke.cont6 + %_M_element_count8 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 + %17 = load i64, ptr %_M_element_count8, align 8 + %inc = add i64 %17, 1 + store i64 %inc, ptr %_M_element_count8, align 8 + %18 = load ptr, ptr %__node.addr, align 8 + call void @_ZNSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %18) #13 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 - %coerce.dive6 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 - %18 = load ptr, ptr %coerce.dive6, align 8 - ret ptr %18 + %coerce.dive9 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 + %19 = load ptr, ptr %coerce.dive9, align 8 + ret ptr %19 + +eh.resume: ; preds = %lpad + %exn = load ptr, ptr %exn.slot, align 8 + %sel = load i32, ptr %ehselector.slot, align 4 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn, 0 + %lpad.val10 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val10 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %_M_cur, align 8 - %call = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - ret ptr %call + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + ret ptr %call.i } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1601,12 +1463,12 @@ terminate.lpad: ; preds = %if.then %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #15 + call void @__clang_call_terminate(ptr %4) #14 unreachable } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1637,33 +1499,21 @@ entry: ret ptr %this1 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERS2_mm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %0, i64 noundef %__c, i64 noundef %__bkt_count) #0 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__c, i64 noundef %__bkt_count) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 %__c.addr = alloca i64, align 8 %__bkt_count.addr = alloca i64, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Mod_range_hashing", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 store i64 %__c, ptr %__c.addr, align 8 store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) - %1 = load i64, ptr %__c.addr, align 8 - %2 = load i64, ptr %__bkt_count.addr, align 8 - %call2 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef %1, i64 noundef %2) #5 - ret i64 %call2 -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - ret ptr %call + %0 = load i64, ptr %__c.addr, align 8 + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, i64 noundef %0, i64 noundef %1) #13 + ret i64 %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1682,15 +1532,6 @@ entry: ret i64 %rem } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret ptr %this1 -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_find_before_nodeEmRS1_m(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__code) #0 comdat align 2 { entry: @@ -1731,7 +1572,8 @@ for.cond: ; preds = %for.inc, %if.end %6 = load ptr, ptr %__k.addr, align 8 %7 = load i64, ptr %__code.addr, align 8 %8 = load ptr, ptr %__p, align 8 - %call = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %6, i64 noundef %7, ptr noundef %8) + %add.ptr = getelementptr inbounds i8, ptr %8, i64 8 + %call = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mRKNS_16_Hash_node_valueIS6_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %6, i64 noundef %7, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr) br i1 %call, label %if.then2, label %if.end3 if.then2: ; preds = %for.cond @@ -1744,31 +1586,32 @@ if.end3: ; preds = %for.cond %_M_nxt4 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %10, i32 0, i32 0 %11 = load ptr, ptr %_M_nxt4, align 8 %tobool5 = icmp ne ptr %11, null - br i1 %tobool5, label %lor.lhs.false, label %if.then8 + br i1 %tobool5, label %lor.lhs.false, label %if.then9 lor.lhs.false: ; preds = %if.end3 %12 = load ptr, ptr %__p, align 8 - %call6 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #5 - %call7 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS7_10_Hash_nodeIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef %call6) #5 + %call6 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #13 + %add.ptr7 = getelementptr inbounds i8, ptr %call6, i64 8 + %call8 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS7_16_Hash_node_valueIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr7) #13 %13 = load i64, ptr %__bkt.addr, align 8 - %cmp = icmp ne i64 %call7, %13 - br i1 %cmp, label %if.then8, label %if.end9 + %cmp = icmp ne i64 %call8, %13 + br i1 %cmp, label %if.then9, label %if.end10 -if.then8: ; preds = %lor.lhs.false, %if.end3 +if.then9: ; preds = %lor.lhs.false, %if.end3 br label %for.end -if.end9: ; preds = %lor.lhs.false +if.end10: ; preds = %lor.lhs.false %14 = load ptr, ptr %__p, align 8 store ptr %14, ptr %__prev_p, align 8 br label %for.inc -for.inc: ; preds = %if.end9 +for.inc: ; preds = %if.end10 %15 = load ptr, ptr %__p, align 8 - %call10 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #5 - store ptr %call10, ptr %__p, align 8 + %call11 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #13 + store ptr %call11, ptr %__p, align 8 br label %for.cond, !llvm.loop !8 -for.end: ; preds = %if.then8 +for.end: ; preds = %if.then9 store ptr null, ptr %retval, align 8 br label %return @@ -1778,7 +1621,7 @@ return: ; preds = %for.end, %if.then2, } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__c, ptr noundef %__n) #0 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS2_mRKNS_16_Hash_node_valueIS6_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, i64 noundef %__c, ptr noundef nonnull align 8 dereferenceable(16) %__n) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__k.addr = alloca ptr, align 8 @@ -1791,26 +1634,22 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %0 = load i64, ptr %__c.addr, align 8 %1 = load ptr, ptr %__n.addr, align 8 - %call = call noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS6_Lb0EEEE9_S_equalsEmRKSJ_(i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(24) %1) + %call = call noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) %1) br i1 %call, label %land.rhs, label %land.end land.rhs: ; preds = %entry - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %2 = load ptr, ptr %__k.addr, align 8 - %call3 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %3 = load ptr, ptr %__n.addr, align 8 - %call4 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #5 - %call5 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRSt4pairIKiPK1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS9_(ptr noundef nonnull align 1 dereferenceable(1) %call3, ptr noundef nonnull align 8 dereferenceable(16) %call4) - %call6 = call noundef zeroext i1 @_ZNKSt8equal_toIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %call5) + %call2 = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS2_RKNS_16_Hash_node_valueIS6_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 8 dereferenceable(16) %3) br label %land.end land.end: ; preds = %land.rhs, %entry - %4 = phi i1 [ false, %entry ], [ %call6, %land.rhs ] + %4 = phi i1 [ false, %entry ], [ %call2, %land.rhs ] ret i1 %4 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS7_10_Hash_nodeIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef %__n) #2 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS7_16_Hash_node_valueIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(16) %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -1820,12 +1659,12 @@ entry: %0 = load ptr, ptr %__n.addr, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 %1 = load i64, ptr %_M_bucket_count, align 8 - %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %0, i64 noundef %1) #5 + %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %1) #13 ret i64 %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS6_Lb0EEEE9_S_equalsEmRKSJ_(i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(24) %1) #2 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) %1) #2 comdat align 2 { entry: %.addr = alloca i64, align 8 %.addr1 = alloca ptr, align 8 @@ -1835,12 +1674,38 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS2_RKNS_16_Hash_node_valueIS6_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 4 dereferenceable(4) %__k, ptr noundef nonnull align 8 dereferenceable(16) %__n) #0 comdat align 2 { entry: + %this.addr.i5 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + %__n.addr = alloca ptr, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Select1st", align 1 store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + store ptr %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %0 = load ptr, ptr %__k.addr, align 8 + %1 = load ptr, ptr %__n.addr, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i5, align 8 + %this1.i6 = load ptr, ptr %this.addr.i5, align 8 + %call.i7 = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i6) #13 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKiPK1AEEEONS0_10__1st_typeIT_E4typeEOSB_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(16) %call.i7) #13 + %call4 = call noundef zeroext i1 @_ZNKSt8equal_toIiEclERKiS2_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef nonnull align 4 dereferenceable(4) %0, ptr noundef nonnull align 4 dereferenceable(4) %call3) + ret i1 %call4 +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIiSt4pairIKiPK1AENS_10_Select1stESt8equal_toIiESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIiELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) ret ptr %call } @@ -1862,18 +1727,8 @@ entry: ret i1 %cmp } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRSt4pairIKiPK1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOS9_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKiPK1AEEEONS0_10__1st_typeIT_E4typeEOSB_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1881,8 +1736,8 @@ entry: store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKiPK1AERNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERS8_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - ret ptr %call + %first = getelementptr inbounds %"struct.std::pair", ptr %0, i32 0, i32 0 + ret ptr %first } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1895,152 +1750,64 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_10_Select1stELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - ret ptr %this1 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKiPK1AERNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERS8_(ptr noundef nonnull align 8 dereferenceable(16) %__in) #2 comdat { -entry: - %__in.addr = alloca ptr, align 8 - store ptr %__in, ptr %__in.addr, align 8 - %0 = load ptr, ptr %__in.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE5__getIKiPK1AEERT_RSt4pairIS6_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #13 ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE5__getIKiPK1AEERT_RSt4pairIS6_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %__pair) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: - %__pair.addr = alloca ptr, align 8 - store ptr %__pair, ptr %__pair.addr, align 8 - %0 = load ptr, ptr %__pair.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair", ptr %0, i32 0, i32 0 - ret ptr %first + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_buffer", ptr %this1, i32 0, i32 0 + ret ptr %_M_storage } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__bkt_count) #2 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__n, i64 noundef %__bkt_count) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i6 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 + %__n.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Mod_range_hashing", align 1 + %ref.tmp2 = alloca %"struct.std::__detail::_Select1st", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 + store ptr %__n, ptr %__n.addr, align 8 store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %0 = load ptr, ptr %__n.addr, align 8 + store ptr %0, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i6, align 8 + %call.i8 = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i7) #13 + %call3 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKiPK1AEEEONS0_10__1st_typeIT_E4typeEOSB_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2, ptr noundef nonnull align 8 dereferenceable(16) %call.i8) #13 + %call4 = invoke noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS2_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 4 dereferenceable(4) %call3) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %call3 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont2 unwind label %terminate.lpad - -invoke.cont2: ; preds = %invoke.cont - %call5 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont4 unwind label %terminate.lpad - -invoke.cont4: ; preds = %invoke.cont2 - %0 = load ptr, ptr %__p.addr, align 8 - %call6 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5 - %call8 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKiPK1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOSA_(ptr noundef nonnull align 1 dereferenceable(1) %call5, ptr noundef nonnull align 8 dereferenceable(16) %call6) - to label %invoke.cont7 unwind label %terminate.lpad - -invoke.cont7: ; preds = %invoke.cont4 - %1 = load i32, ptr %call8, align 4 - %call9 = call noundef i64 @_ZNKSt4hashIiEclEi(ptr noundef nonnull align 1 dereferenceable(1) %call3, i32 noundef %1) #5 - %2 = load i64, ptr %__bkt_count.addr, align 8 - %call10 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef %call9, i64 noundef %2) #5 - ret i64 %call10 + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call5 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, i64 noundef %call4, i64 noundef %1) #13 + ret i64 %call5 -terminate.lpad: ; preds = %invoke.cont4, %invoke.cont2, %invoke.cont, %entry - %3 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %entry + %2 = landingpad { ptr, i32 } catch ptr null - %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #15 + %3 = extractvalue { ptr, i32 } %2, 0 + call void @__clang_call_terminate(ptr %3) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt8__detail10_Select1stclIRKSt4pairIKiPK1AEEEDTclsr3stdE3getILi0EEclsr3stdE7forwardIT_Efp_EEEOSA_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(16) %__x) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKiPK1AERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKS8_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EKiPK1AERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKS8_(ptr noundef nonnull align 8 dereferenceable(16) %__in) #2 comdat { -entry: - %__in.addr = alloca ptr, align 8 - store ptr %__in, ptr %__in.addr, align 8 - %0 = load ptr, ptr %__in.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE11__const_getIKiPK1AEERKT_RKSt4pairIS6_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10__pair_getILm0EE11__const_getIKiPK1AEERKT_RKSt4pairIS6_T0_E(ptr noundef nonnull align 8 dereferenceable(16) %__pair) #2 comdat align 2 { -entry: - %__pair.addr = alloca ptr, align 8 - store ptr %__pair, ptr %__pair.addr, align 8 - %0 = load ptr, ptr %__pair.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair", ptr %0, i32 0, i32 0 - ret ptr %first -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_storage) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_buffer", ptr %this1, i32 0, i32 0 - ret ptr %_M_storage -} - ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__elements) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2IJiELb1ELb1EEEDpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__elements) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 %__elements.addr = alloca ptr, align 8 @@ -2058,12 +1825,12 @@ terminate.lpad: ; preds = %entry %1 = landingpad { ptr, i32 } catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 - call void @__clang_call_terminate(ptr %2) #15 + call void @__clang_call_terminate(ptr %2) #14 unreachable } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__head) unnamed_addr #11 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__head) unnamed_addr #8 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__head.addr = alloca ptr, align 8 @@ -2076,7 +1843,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__h) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 4 dereferenceable(4) %__h) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__h.addr = alloca ptr, align 8 @@ -2092,10 +1859,28 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE16_M_allocate_nodeIJRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEPS8_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i19 = alloca ptr, align 8 + %__p.addr.i20 = alloca ptr, align 8 + %__args.addr.i21 = alloca ptr, align 8 + %__args.addr2.i22 = alloca ptr, align 8 + %__args.addr4.i23 = alloca ptr, align 8 + %agg.tmp6.i = alloca %"class.std::tuple", align 8 + %__a.addr.i17 = alloca ptr, align 8 + %__p.addr.i18 = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 + %__args.addr2.i = alloca ptr, align 8 + %__args.addr4.i = alloca ptr, align 8 + %__a.addr.i14 = alloca ptr, align 8 + %__n.addr.i15 = alloca i64, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__args.addr2 = alloca ptr, align 8 %__args.addr4 = alloca ptr, align 8 + %__alloc = alloca ptr, align 8 %__nptr = alloca ptr, align 8 %__n = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 @@ -2106,101 +1891,125 @@ entry: store ptr %__args3, ptr %__args.addr4, align 8 %this5 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this5) - %call6 = call noundef ptr @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE8allocateERS9_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - store ptr %call6, ptr %__nptr, align 8 - %0 = load ptr, ptr %__nptr, align 8 - %call7 = call noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEPT_SA_(ptr noundef %0) #5 + store ptr %call, ptr %__alloc, align 8 + %0 = load ptr, ptr %__alloc, align 8 + store ptr %0, ptr %__a.addr.i14, align 8 + store i64 1, ptr %__n.addr.i15, align 8 + %1 = load ptr, ptr %__a.addr.i14, align 8 + %2 = load i64, ptr %__n.addr.i15, align 8 + %call.i16 = call noundef ptr @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + store ptr %call.i16, ptr %__nptr, align 8 + %3 = load ptr, ptr %__nptr, align 8 + %call7 = call noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEPT_SA_(ptr noundef %3) #13 store ptr %call7, ptr %__n, align 8 - %1 = load ptr, ptr %__n, align 8 - call void @_ZNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #5 - %call8 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this5) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - %2 = load ptr, ptr %__n, align 8 - %call9 = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5 - %3 = load ptr, ptr %__args.addr, align 8 - %4 = load ptr, ptr %__args.addr2, align 8 - %5 = load ptr, ptr %__args.addr4, align 8 - invoke void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvRS9_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call8, ptr noundef %call9, ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 1 dereferenceable(1) %5) - to label %invoke.cont10 unwind label %lpad - -invoke.cont10: ; preds = %invoke.cont + %4 = load ptr, ptr %__n, align 8 + call void @_ZNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #13 + %5 = load ptr, ptr %__alloc, align 8 %6 = load ptr, ptr %__n, align 8 - ret ptr %6 + %add.ptr = getelementptr inbounds i8, ptr %6, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferISt4pairIKiPK1AEE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1.i) #13 + %7 = load ptr, ptr %__args.addr, align 8 + %8 = load ptr, ptr %__args.addr2, align 8 + %9 = load ptr, ptr %__args.addr4, align 8 + store ptr %5, ptr %__a.addr.i17, align 8 + store ptr %call.i, ptr %__p.addr.i18, align 8 + store ptr %7, ptr %__args.addr.i, align 8 + store ptr %8, ptr %__args.addr2.i, align 8 + store ptr %9, ptr %__args.addr4.i, align 8 + %10 = load ptr, ptr %__a.addr.i17, align 8 + %11 = load ptr, ptr %__p.addr.i18, align 8 + %12 = load ptr, ptr %__args.addr.i, align 8 + %13 = load ptr, ptr %__args.addr2.i, align 8 + %14 = load ptr, ptr %__args.addr4.i, align 8 + store ptr %10, ptr %this.addr.i19, align 8 + store ptr %11, ptr %__p.addr.i20, align 8 + store ptr %12, ptr %__args.addr.i21, align 8 + store ptr %13, ptr %__args.addr2.i22, align 8 + store ptr %14, ptr %__args.addr4.i23, align 8 + %this5.i = load ptr, ptr %this.addr.i19, align 8 + %15 = load ptr, ptr %__p.addr.i20, align 8 + %16 = load ptr, ptr %__args.addr.i21, align 8 + %17 = load ptr, ptr %__args.addr2.i22, align 8 + call void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp6.i, ptr noundef nonnull align 8 dereferenceable(8) %17) #13 + %18 = load ptr, ptr %__args.addr4.i23, align 8 + invoke void @_ZNSt4pairIKiPK1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES8_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef %agg.tmp6.i) + to label %_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESE_IJEEEEEvPT_DpOT0_.exit unwind label %lpad + +_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESE_IJEEEEEvPT_DpOT0_.exit: ; preds = %entry + br label %_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvRS9_PT_DpOT0_.exit + +_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvRS9_PT_DpOT0_.exit: ; preds = %_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESE_IJEEEEEvPT_DpOT0_.exit + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvRS9_PT_DpOT0_.exit + %19 = load ptr, ptr %__n, align 8 + ret ptr %19 -lpad: ; preds = %invoke.cont, %entry - %7 = landingpad { ptr, i32 } +lpad: ; preds = %entry + %20 = landingpad { ptr, i32 } catch ptr null - %8 = extractvalue { ptr, i32 } %7, 0 - store ptr %8, ptr %exn.slot, align 8 - %9 = extractvalue { ptr, i32 } %7, 1 - store i32 %9, ptr %ehselector.slot, align 4 + %21 = extractvalue { ptr, i32 } %20, 0 + store ptr %21, ptr %exn.slot, align 8 + %22 = extractvalue { ptr, i32 } %20, 1 + store i32 %22, ptr %ehselector.slot, align 4 br label %catch catch: ; preds = %lpad %exn = load ptr, ptr %exn.slot, align 8 - %10 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %call13 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this5) - to label %invoke.cont12 unwind label %lpad11 - -invoke.cont12: ; preds = %catch - %11 = load ptr, ptr %__nptr, align 8 - invoke void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE10deallocateERS9_PS8_m(ptr noundef nonnull align 1 dereferenceable(1) %call13, ptr noundef %11, i64 noundef 1) - to label %invoke.cont14 unwind label %lpad11 - -invoke.cont14: ; preds = %invoke.cont12 + %23 = call ptr @__cxa_begin_catch(ptr %exn) #13 + %24 = load ptr, ptr %__n, align 8 + %25 = load ptr, ptr %__alloc, align 8 + %26 = load ptr, ptr %__nptr, align 8 + store ptr %25, ptr %__a.addr.i, align 8 + store ptr %26, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %27 = load ptr, ptr %__a.addr.i, align 8 + %28 = load ptr, ptr %__p.addr.i, align 8 + %29 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE10deallocateEPS8_m(ptr noundef nonnull align 1 dereferenceable(1) %27, ptr noundef %28, i64 noundef %29) + br label %invoke.cont10 + +invoke.cont10: ; preds = %catch invoke void @__cxa_rethrow() #16 - to label %unreachable unwind label %lpad11 + to label %unreachable unwind label %lpad9 -lpad11: ; preds = %invoke.cont14, %invoke.cont12, %catch - %12 = landingpad { ptr, i32 } +lpad9: ; preds = %invoke.cont10 + %30 = landingpad { ptr, i32 } cleanup - %13 = extractvalue { ptr, i32 } %12, 0 - store ptr %13, ptr %exn.slot, align 8 - %14 = extractvalue { ptr, i32 } %12, 1 - store i32 %14, ptr %ehselector.slot, align 4 + %31 = extractvalue { ptr, i32 } %30, 0 + store ptr %31, ptr %exn.slot, align 8 + %32 = extractvalue { ptr, i32 } %30, 1 + store i32 %32, ptr %ehselector.slot, align 4 invoke void @__cxa_end_catch() - to label %invoke.cont15 unwind label %terminate.lpad + to label %invoke.cont11 unwind label %terminate.lpad -invoke.cont15: ; preds = %lpad11 +invoke.cont11: ; preds = %lpad9 br label %eh.resume try.cont: ; No predecessors! call void @llvm.trap() unreachable -eh.resume: ; preds = %invoke.cont15 - %exn16 = load ptr, ptr %exn.slot, align 8 +eh.resume: ; preds = %invoke.cont11 + %exn12 = load ptr, ptr %exn.slot, align 8 %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn16, 0 - %lpad.val17 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val17 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn12, 0 + %lpad.val13 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val13 -terminate.lpad: ; preds = %lpad11 - %15 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %lpad9 + %33 = landingpad { ptr, i32 } catch ptr null - %16 = extractvalue { ptr, i32 } %15, 0 - call void @__clang_call_terminate(ptr %16) #15 + %34 = extractvalue { ptr, i32 } %33, 0 + call void @__clang_call_terminate(ptr %34) #14 unreachable -unreachable: ; preds = %invoke.cont14 +unreachable: ; preds = %invoke.cont10 unreachable } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE8allocateERS9_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEPT_SA_(ptr noundef %__ptr) #2 comdat { entry: @@ -2211,34 +2020,13 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEEE9constructIS7_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvRS9_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__args.addr2 = alloca ptr, align 8 - %__args.addr4 = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - store ptr %__args1, ptr %__args.addr2, align 8 - store ptr %__args3, ptr %__args.addr4, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - %3 = load ptr, ptr %__args.addr2, align 8 - %4 = load ptr, ptr %__args.addr4, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE9constructIS8_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 1 dereferenceable(1) %4) + call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #13 + %0 = getelementptr inbounds i8, ptr %this1, i64 8 ret void } @@ -2247,11 +2035,12 @@ declare void @__cxa_rethrow() declare void @__cxa_end_catch() ; Function Attrs: cold noreturn nounwind -declare void @llvm.trap() #12 +declare void @llvm.trap() #9 ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -2260,75 +2049,42 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 384307168202282325 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 768614336404564650 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable + +if.end: ; preds = %if.then call void @_ZSt17__throw_bad_allocv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 24 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 24 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 384307168202282325 -} +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #10 ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #13 +declare void @_ZSt17__throw_bad_allocv() #10 ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #14 - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hash_node_value_baseISt4pairIKiPK1AEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EEEE9constructIS8_JRKSt21piecewise_construct_tSt5tupleIJOiEESF_IJEEEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 1 dereferenceable(1) %__args, ptr noundef nonnull align 8 dereferenceable(8) %__args1, ptr noundef nonnull align 1 dereferenceable(1) %__args3) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - %__args.addr2 = alloca ptr, align 8 - %__args.addr4 = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::piecewise_construct_t", align 1 - %agg.tmp6 = alloca %"class.std::tuple", align 8 - %agg.tmp7 = alloca %"class.std::tuple.7", align 1 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - store ptr %__args1, ptr %__args.addr2, align 8 - store ptr %__args3, ptr %__args.addr4, align 8 - %this5 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %__args.addr2, align 8 - call void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp6, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__args.addr4, align 8 - call void @_ZNSt4pairIKiPK1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES8_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef %agg.tmp6) - ret void -} +declare noundef nonnull ptr @_Znwm(i64 noundef) #11 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt5tupleIJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -2336,18 +2092,18 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load ptr, ptr %.addr, align 8 - call void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 + call void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef nonnull align 8 dereferenceable(8) %1) #13 ret void } ; Function Attrs: noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIKiPK1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES8_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__first) unnamed_addr #11 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIKiPK1AEC2IJOiEJEEESt21piecewise_construct_tSt5tupleIJDpT_EES8_IJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__first) unnamed_addr #8 comdat align 2 { entry: %0 = alloca %"struct.std::piecewise_construct_t", align 1 - %__second = alloca %"class.std::tuple.7", align 1 + %__second = alloca %"class.std::tuple.5", align 1 %this.addr = alloca ptr, align 8 %agg.tmp = alloca %"struct.std::_Index_tuple", align 1 - %agg.tmp3 = alloca %"struct.std::_Index_tuple.8", align 1 + %agg.tmp3 = alloca %"struct.std::_Index_tuple.6", align 1 store ptr %this, ptr %this.addr, align 8 %this2 = load ptr, ptr %this.addr, align 8 call void @_ZNSt4pairIKiPK1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS7_IJDpT1_EESt12_Index_tupleIJXspT0_EEESG_IJXspT2_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this2, ptr noundef nonnull align 8 dereferenceable(8) %__first, ptr noundef nonnull align 1 dereferenceable(1) %__second) @@ -2355,7 +2111,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__in) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt11_Tuple_implILm0EJOiEEC2EOS1_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__in) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__in.addr = alloca ptr, align 8 @@ -2363,37 +2119,18 @@ entry: store ptr %__in, ptr %__in.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__in.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 - call void @_ZNSt10_Head_baseILm0EOiLb0EEC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef nonnull align 4 dereferenceable(4) %call) + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %this1, ptr align 8 %0, i64 8, i1 false) ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__t) #2 comdat align 2 { -entry: - %__t.addr = alloca ptr, align 8 - store ptr %__t, ptr %__t.addr, align 8 - %0 = load ptr, ptr %__t.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat align 2 { -entry: - %__b.addr = alloca ptr, align 8 - store ptr %__b, ptr %__b.addr, align 8 - %0 = load ptr, ptr %__b.addr, align 8 - %_M_head_impl = getelementptr inbounds %"struct.std::_Head_base", ptr %0, i32 0, i32 0 - %1 = load ptr, ptr %_M_head_impl, align 8 - ret ptr %1 -} +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #12 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairIKiPK1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS7_IJDpT1_EESt12_Index_tupleIJXspT0_EEESG_IJXspT2_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__tuple1, ptr noundef nonnull align 1 dereferenceable(1) %__tuple2) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairIKiPK1AEC2IJOiEJLm0EEJEJEEERSt5tupleIJDpT_EERS7_IJDpT1_EESt12_Index_tupleIJXspT0_EEESG_IJXspT2_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(8) %__tuple1, ptr noundef nonnull align 1 dereferenceable(1) %__tuple2) unnamed_addr #4 comdat align 2 { entry: %0 = alloca %"struct.std::_Index_tuple", align 1 - %1 = alloca %"struct.std::_Index_tuple.8", align 1 + %1 = alloca %"struct.std::_Index_tuple.6", align 1 %this.addr = alloca ptr, align 8 %__tuple1.addr = alloca ptr, align 8 %__tuple2.addr = alloca ptr, align 8 @@ -2403,7 +2140,7 @@ entry: %this2 = load ptr, ptr %this.addr, align 8 %first = getelementptr inbounds %"struct.std::pair", ptr %this2, i32 0, i32 0 %2 = load ptr, ptr %__tuple1.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJOiEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS5_(ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3getILm0EJOiEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS5_(ptr noundef nonnull align 8 dereferenceable(8) %2) #13 %3 = load i32, ptr %call, align 4 store i32 %3, ptr %first, align 8 %second = getelementptr inbounds %"struct.std::pair", ptr %this2, i32 0, i32 1 @@ -2417,7 +2154,7 @@ entry: %__t.addr = alloca ptr, align 8 store ptr %__t, ptr %__t.addr, align 8 %0 = load ptr, ptr %__t.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt12__get_helperILm0EOiJEERT0_RSt11_Tuple_implIXT_EJS1_DpT1_EE(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt12__get_helperILm0EOiJEERT0_RSt11_Tuple_implIXT_EJS1_DpT1_EE(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 ret ptr %call } @@ -2427,101 +2164,169 @@ entry: %__t.addr = alloca ptr, align 8 store ptr %__t, ptr %__t.addr, align 8 %0 = load ptr, ptr %__t.addr, align 8 - %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt11_Tuple_implILm0EJOiEE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__t) #2 comdat align 2 { +entry: + %__t.addr = alloca ptr, align 8 + store ptr %__t, ptr %__t.addr, align 8 + %0 = load ptr, ptr %__t.addr, align 8 + %call = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %0) #13 + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt10_Head_baseILm0EOiLb0EE7_M_headERS1_(ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat align 2 { +entry: + %__b.addr = alloca ptr, align 8 + store ptr %__b, ptr %__b.addr, align 8 + %0 = load ptr, ptr %__b.addr, align 8 + %_M_head_impl = getelementptr inbounds %"struct.std::_Head_base", ptr %0, i32 0, i32 0 + %1 = load ptr, ptr %_M_head_impl, align 8 + ret ptr %1 +} + +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %__policy) unnamed_addr #8 comdat align 2 { entry: %this.addr = alloca ptr, align 8 + %__policy.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 + store ptr %__policy, ptr %__policy.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 - %0 = load i64, ptr %_M_next_resize, align 8 - ret i64 %0 + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__policy.addr, align 8 + store ptr %0, ptr %_M_guarded_obj, align 8 + %_M_prev_state = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__policy.addr, align 8 + %call = call noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %1) + store i64 %call, ptr %_M_prev_state, align 8 + ret void } declare { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef, i64 noundef) #1 ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count, ptr noundef nonnull align 8 dereferenceable(8) %__state) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count) #0 comdat align 2 { entry: + %0 = alloca %"struct.std::integral_constant", align 1 %this.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 - %__state.addr = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::integral_constant", align 1 - %exn.slot = alloca ptr, align 8 - %ehselector.slot = alloca i32, align 4 + %__new_buckets = alloca ptr, align 8 + %__p = alloca ptr, align 8 + %__bbegin_bkt = alloca i64, align 8 + %__next = alloca ptr, align 8 + %__bkt = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 - store ptr %__state, ptr %__state.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load i64, ptr %__bkt_count.addr, align 8 - invoke void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - br label %try.cont - -lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } - catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - br label %catch + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call = call noundef ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %1) + store ptr %call, ptr %__new_buckets, align 8 + %call2 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) + store ptr %call2, ptr %__p, align 8 + %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin, i32 0, i32 0 + store ptr null, ptr %_M_nxt, align 8 + store i64 0, ptr %__bbegin_bkt, align 8 + br label %while.cond -catch: ; preds = %lpad - %exn = load ptr, ptr %exn.slot, align 8 - %4 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - %5 = load ptr, ptr %__state.addr, align 8 - %6 = load i64, ptr %5, align 8 - invoke void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, i64 noundef %6) - to label %invoke.cont3 unwind label %lpad2 +while.cond: ; preds = %if.end22, %entry + %2 = load ptr, ptr %__p, align 8 + %tobool = icmp ne ptr %2, null + br i1 %tobool, label %while.body, label %while.end -invoke.cont3: ; preds = %catch - invoke void @__cxa_rethrow() #16 - to label %unreachable unwind label %lpad2 +while.body: ; preds = %while.cond + %3 = load ptr, ptr %__p, align 8 + %call3 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #13 + store ptr %call3, ptr %__next, align 8 + %4 = load ptr, ptr %__p, align 8 + %add.ptr = getelementptr inbounds i8, ptr %4, i64 8 + %5 = load i64, ptr %__bkt_count.addr, align 8 + %call4 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr, i64 noundef %5) #13 + store i64 %call4, ptr %__bkt, align 8 + %6 = load ptr, ptr %__new_buckets, align 8 + %7 = load i64, ptr %__bkt, align 8 + %arrayidx = getelementptr inbounds ptr, ptr %6, i64 %7 + %8 = load ptr, ptr %arrayidx, align 8 + %tobool5 = icmp ne ptr %8, null + br i1 %tobool5, label %if.else, label %if.then -lpad2: ; preds = %invoke.cont3, %catch - %7 = landingpad { ptr, i32 } - cleanup - %8 = extractvalue { ptr, i32 } %7, 0 - store ptr %8, ptr %exn.slot, align 8 - %9 = extractvalue { ptr, i32 } %7, 1 - store i32 %9, ptr %ehselector.slot, align 4 - invoke void @__cxa_end_catch() - to label %invoke.cont4 unwind label %terminate.lpad +if.then: ; preds = %while.body + %_M_before_begin6 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt7 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin6, i32 0, i32 0 + %9 = load ptr, ptr %_M_nxt7, align 8 + %10 = load ptr, ptr %__p, align 8 + %_M_nxt8 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %10, i32 0, i32 0 + store ptr %9, ptr %_M_nxt8, align 8 + %11 = load ptr, ptr %__p, align 8 + %_M_before_begin9 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt10 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin9, i32 0, i32 0 + store ptr %11, ptr %_M_nxt10, align 8 + %_M_before_begin11 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %12 = load ptr, ptr %__new_buckets, align 8 + %13 = load i64, ptr %__bkt, align 8 + %arrayidx12 = getelementptr inbounds ptr, ptr %12, i64 %13 + store ptr %_M_before_begin11, ptr %arrayidx12, align 8 + %14 = load ptr, ptr %__p, align 8 + %_M_nxt13 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %14, i32 0, i32 0 + %15 = load ptr, ptr %_M_nxt13, align 8 + %tobool14 = icmp ne ptr %15, null + br i1 %tobool14, label %if.then15, label %if.end -invoke.cont4: ; preds = %lpad2 - br label %eh.resume +if.then15: ; preds = %if.then + %16 = load ptr, ptr %__p, align 8 + %17 = load ptr, ptr %__new_buckets, align 8 + %18 = load i64, ptr %__bbegin_bkt, align 8 + %arrayidx16 = getelementptr inbounds ptr, ptr %17, i64 %18 + store ptr %16, ptr %arrayidx16, align 8 + br label %if.end -try.cont: ; preds = %invoke.cont - ret void +if.end: ; preds = %if.then15, %if.then + %19 = load i64, ptr %__bkt, align 8 + store i64 %19, ptr %__bbegin_bkt, align 8 + br label %if.end22 -eh.resume: ; preds = %invoke.cont4 - %exn5 = load ptr, ptr %exn.slot, align 8 - %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn5, 0 - %lpad.val6 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val6 +if.else: ; preds = %while.body + %20 = load ptr, ptr %__new_buckets, align 8 + %21 = load i64, ptr %__bkt, align 8 + %arrayidx17 = getelementptr inbounds ptr, ptr %20, i64 %21 + %22 = load ptr, ptr %arrayidx17, align 8 + %_M_nxt18 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %22, i32 0, i32 0 + %23 = load ptr, ptr %_M_nxt18, align 8 + %24 = load ptr, ptr %__p, align 8 + %_M_nxt19 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %24, i32 0, i32 0 + store ptr %23, ptr %_M_nxt19, align 8 + %25 = load ptr, ptr %__p, align 8 + %26 = load ptr, ptr %__new_buckets, align 8 + %27 = load i64, ptr %__bkt, align 8 + %arrayidx20 = getelementptr inbounds ptr, ptr %26, i64 %27 + %28 = load ptr, ptr %arrayidx20, align 8 + %_M_nxt21 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %28, i32 0, i32 0 + store ptr %25, ptr %_M_nxt21, align 8 + br label %if.end22 -terminate.lpad: ; preds = %lpad2 - %10 = landingpad { ptr, i32 } - catch ptr null - %11 = extractvalue { ptr, i32 } %10, 0 - call void @__clang_call_terminate(ptr %11) #15 - unreachable +if.end22: ; preds = %if.else, %if.end + %29 = load ptr, ptr %__next, align 8 + store ptr %29, ptr %__p, align 8 + br label %while.cond, !llvm.loop !9 -unreachable: ; preds = %invoke.cont3 - unreachable +while.end: ; preds = %while.cond + call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) + %30 = load i64, ptr %__bkt_count.addr, align 8 + %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 + store i64 %30, ptr %_M_bucket_count, align 8 + %31 = load ptr, ptr %__new_buckets, align 8 + %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 + store ptr %31, ptr %_M_buckets, align 8 + ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %0, i64 noundef %1) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -2594,8 +2399,9 @@ if.then14: ; preds = %if.else %_M_buckets15 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 %18 = load ptr, ptr %_M_buckets15, align 8 %19 = load ptr, ptr %__node.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #5 - %call16 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexEPNS7_10_Hash_nodeIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef %call) #5 + %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #13 + %add.ptr = getelementptr inbounds i8, ptr %call, i64 8 + %call16 = call noundef i64 @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNS7_16_Hash_node_valueIS5_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(16) %add.ptr) #13 %arrayidx17 = getelementptr inbounds ptr, ptr %18, i64 %call16 store ptr %17, ptr %arrayidx17, align 8 br label %if.end @@ -2614,7 +2420,7 @@ if.end21: ; preds = %if.end, %if.then } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 @@ -2622,137 +2428,52 @@ entry: store ptr %__p, ptr %__p.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKiPK1AELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %0) #5 + call void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKiPK1AELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %0) #13 ret void } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count) #0 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: - %0 = alloca %"struct.std::integral_constant", align 1 %this.addr = alloca ptr, align 8 - %__bkt_count.addr = alloca i64, align 8 - %__new_buckets = alloca ptr, align 8 - %__p = alloca ptr, align 8 - %__bbegin_bkt = alloca i64, align 8 - %__next = alloca ptr, align 8 - %__bkt = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %1 = load i64, ptr %__bkt_count.addr, align 8 - %call = call noundef ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %1) - store ptr %call, ptr %__new_buckets, align 8 - %call2 = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) - store ptr %call2, ptr %__p, align 8 - %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin, i32 0, i32 0 - store ptr null, ptr %_M_nxt, align 8 - store i64 0, ptr %__bbegin_bkt, align 8 - br label %while.cond - -while.cond: ; preds = %if.end22, %entry - %2 = load ptr, ptr %__p, align 8 - %tobool = icmp ne ptr %2, null - br i1 %tobool, label %while.body, label %while.end - -while.body: ; preds = %while.cond - %3 = load ptr, ptr %__p, align 8 - %call3 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeISt4pairIKiPK1AELb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #5 - store ptr %call3, ptr %__next, align 8 - %4 = load ptr, ptr %__p, align 8 - %5 = load i64, ptr %__bkt_count.addr, align 8 - %call4 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIiSt4pairIKiPK1AENS_10_Select1stESt4hashIiENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS6_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %4, i64 noundef %5) #5 - store i64 %call4, ptr %__bkt, align 8 - %6 = load ptr, ptr %__new_buckets, align 8 - %7 = load i64, ptr %__bkt, align 8 - %arrayidx = getelementptr inbounds ptr, ptr %6, i64 %7 - %8 = load ptr, ptr %arrayidx, align 8 - %tobool5 = icmp ne ptr %8, null - br i1 %tobool5, label %if.else, label %if.then + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_guarded_obj, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end -if.then: ; preds = %while.body - %_M_before_begin6 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt7 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin6, i32 0, i32 0 - %9 = load ptr, ptr %_M_nxt7, align 8 - %10 = load ptr, ptr %__p, align 8 - %_M_nxt8 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %10, i32 0, i32 0 - store ptr %9, ptr %_M_nxt8, align 8 - %11 = load ptr, ptr %__p, align 8 - %_M_before_begin9 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt10 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin9, i32 0, i32 0 - store ptr %11, ptr %_M_nxt10, align 8 - %_M_before_begin11 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %12 = load ptr, ptr %__new_buckets, align 8 - %13 = load i64, ptr %__bkt, align 8 - %arrayidx12 = getelementptr inbounds ptr, ptr %12, i64 %13 - store ptr %_M_before_begin11, ptr %arrayidx12, align 8 - %14 = load ptr, ptr %__p, align 8 - %_M_nxt13 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %14, i32 0, i32 0 - %15 = load ptr, ptr %_M_nxt13, align 8 - %tobool14 = icmp ne ptr %15, null - br i1 %tobool14, label %if.then15, label %if.end +if.then: ; preds = %entry + %_M_guarded_obj2 = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %1 = load ptr, ptr %_M_guarded_obj2, align 8 + %_M_prev_state = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 1 + %2 = load i64, ptr %_M_prev_state, align 8 + invoke void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %1, i64 noundef %2) + to label %invoke.cont unwind label %terminate.lpad -if.then15: ; preds = %if.then - %16 = load ptr, ptr %__p, align 8 - %17 = load ptr, ptr %__new_buckets, align 8 - %18 = load i64, ptr %__bbegin_bkt, align 8 - %arrayidx16 = getelementptr inbounds ptr, ptr %17, i64 %18 - store ptr %16, ptr %arrayidx16, align 8 +invoke.cont: ; preds = %if.then br label %if.end -if.end: ; preds = %if.then15, %if.then - %19 = load i64, ptr %__bkt, align 8 - store i64 %19, ptr %__bbegin_bkt, align 8 - br label %if.end22 - -if.else: ; preds = %while.body - %20 = load ptr, ptr %__new_buckets, align 8 - %21 = load i64, ptr %__bkt, align 8 - %arrayidx17 = getelementptr inbounds ptr, ptr %20, i64 %21 - %22 = load ptr, ptr %arrayidx17, align 8 - %_M_nxt18 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %22, i32 0, i32 0 - %23 = load ptr, ptr %_M_nxt18, align 8 - %24 = load ptr, ptr %__p, align 8 - %_M_nxt19 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %24, i32 0, i32 0 - store ptr %23, ptr %_M_nxt19, align 8 - %25 = load ptr, ptr %__p, align 8 - %26 = load ptr, ptr %__new_buckets, align 8 - %27 = load i64, ptr %__bkt, align 8 - %arrayidx20 = getelementptr inbounds ptr, ptr %26, i64 %27 - %28 = load ptr, ptr %arrayidx20, align 8 - %_M_nxt21 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %28, i32 0, i32 0 - store ptr %25, ptr %_M_nxt21, align 8 - br label %if.end22 - -if.end22: ; preds = %if.else, %if.end - %29 = load ptr, ptr %__next, align 8 - store ptr %29, ptr %__p, align 8 - br label %while.cond, !llvm.loop !9 - -while.end: ; preds = %while.cond - call void @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) - %30 = load i64, ptr %__bkt_count.addr, align 8 - %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 - store i64 %30, ptr %_M_bucket_count, align 8 - %31 = load ptr, ptr %__new_buckets, align 8 - %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 - store ptr %31, ptr %_M_buckets, align 8 +if.end: ; preds = %invoke.cont, %entry ret void + +terminate.lpad: ; preds = %if.then + %3 = landingpad { ptr, i32 } + catch ptr null + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #14 + unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %this, i64 noundef %__state) #2 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__state.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store i64 %__state, ptr %__state.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load i64, ptr %__state.addr, align 8 %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 - store i64 %0, ptr %_M_next_resize, align 8 - ret void + %0 = load i64, ptr %_M_next_resize, align 8 + ret i64 %0 } ; Function Attrs: mustprogress noinline optnone uwtable @@ -2786,12 +2507,19 @@ return: ; preds = %if.end, %if.then ret ptr %2 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__bkt_count) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__bkt_count) #8 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i9 = alloca ptr, align 8 + %this.addr.i7 = alloca ptr, align 8 + %this.addr.i5 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 - %__alloc = alloca %"class.std::allocator.4", align 1 + %__alloc = alloca %"class.std::allocator.2", align 1 %__ptr = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 @@ -2800,32 +2528,47 @@ entry: store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeISt4pairIKiPK1AELb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + store ptr %__alloc, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i9, align 8 + %this1.i10 = load ptr, ptr %this.addr.i9, align 8 %0 = load i64, ptr %__bkt_count.addr, align 8 - %call2 = invoke noundef ptr @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - store ptr %call2, ptr %__ptr, align 8 - %1 = load ptr, ptr %__ptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %1) #5 + store ptr %__alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i11 = invoke noundef ptr @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit + store ptr %call.i11, ptr %__ptr, align 8 + %3 = load ptr, ptr %__ptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %3) #13 store ptr %call3, ptr %__p, align 8 - %2 = load ptr, ptr %__p, align 8 - %3 = load i64, ptr %__bkt_count.addr, align 8 - %mul = mul i64 %3, 8 - call void @llvm.memset.p0.i64(ptr align 8 %2, i8 0, i64 %mul, i1 false) %4 = load ptr, ptr %__p, align 8 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 - ret ptr %4 + %5 = load i64, ptr %__bkt_count.addr, align 8 + %mul = mul i64 %5, 8 + call void @llvm.memset.p0.i64(ptr align 8 %4, i8 0, i64 %mul, i1 false) + %6 = load ptr, ptr %__p, align 8 + store ptr %__alloc, ptr %this.addr.i5, align 8 + %this1.i6 = load ptr, ptr %this.addr.i5, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i6) #13 + ret ptr %6 lpad: ; preds = %entry - %5 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } cleanup - %6 = extractvalue { ptr, i32 } %5, 0 - store ptr %6, ptr %exn.slot, align 8 - %7 = extractvalue { ptr, i32 } %5, 1 - store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + %8 = extractvalue { ptr, i32 } %7, 0 + store ptr %8, ptr %exn.slot, align 8 + %9 = extractvalue { ptr, i32 } %7, 1 + store i32 %9, ptr %ehselector.slot, align 4 + store ptr %__alloc, ptr %this.addr.i7, align 8 + %this1.i8 = load ptr, ptr %this.addr.i7, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i8) #13 br label %eh.resume eh.resume: ; preds = %lpad @@ -2836,19 +2579,6 @@ eh.resume: ; preds = %lpad resume { ptr, i32 } %lpad.val4 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %__ptr) #2 comdat { entry: @@ -2859,8 +2589,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -2869,32 +2600,33 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #16 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 - ret ptr %call2 -} +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #16 + unreachable -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #17 + ret ptr %call5 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKiPK1AELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail19_Node_iterator_baseISt4pairIKiPK1AELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 @@ -2907,6 +2639,20 @@ entry: ret void } +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %this, i64 noundef %__state) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__state.addr = alloca i64, align 8 + store ptr %this, ptr %this.addr, align 8 + store i64 %__state, ptr %__state.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load i64, ptr %__state.addr, align 8 + %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 + store i64 %0, ptr %_M_next_resize, align 8 + ret void +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local ptr @_ZNSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this) #2 comdat align 2 { entry: @@ -2915,38 +2661,31 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef ptr @_ZNKSt10_HashtableIiSt4pairIKiPK1AESaIS5_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) - call void @_ZNSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %call) #5 + call void @_ZNSt8__detail14_Node_iteratorISt4pairIKiPK1AELb0ELb0EEC2EPNS_10_Hash_nodeIS6_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %call) #13 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 %coerce.dive2 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive2, align 8 ret ptr %0 } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_unordered_map_2.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { cold noreturn nounwind } -attributes #13 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #14 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { noreturn nounwind } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { cold noreturn nounwind } +attributes #10 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #11 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } attributes #16 = { noreturn } -attributes #17 = { allocsize(0) } +attributes #17 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2956,7 +2695,7 @@ attributes #17 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/basic_cpp_tests/unordered_set-1.cpp.bc b/test_cases_bc/basic_cpp_tests/unordered_set-1.cpp.bc index ffb8868c..fa002db0 100644 --- a/test_cases_bc/basic_cpp_tests/unordered_set-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/unordered_set-1.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/u target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::unordered_set" = type { %"class.std::_Hashtable" } %"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr } %"struct.std::__detail::_Hash_node_base" = type { ptr } @@ -11,14 +12,17 @@ target triple = "x86_64-unknown-linux-gnu" %"struct.std::pair" = type <{ %"struct.std::__detail::_Node_iterator", i8, [7 x i8] }> %"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" } %"struct.std::__detail::_Node_iterator_base" = type { ptr } -%"struct.std::__detail::_Hash_node_value_base" = type { %"struct.std::__detail::_Hash_node_base", %"struct.__gnu_cxx::__aligned_buffer" } %"struct.__gnu_cxx::__aligned_buffer" = type { %"union.std::aligned_storage<8, 8>::type" } %"union.std::aligned_storage<8, 8>::type" = type { [8 x i8] } -%"class.std::allocator.4" = type { i8 } +%"class.std::allocator.2" = type { i8 } %"struct.std::__detail::_AllocNode" = type { ptr } %"struct.std::integral_constant" = type { i8 } +%"struct.std::__detail::_ConvertToValueType" = type { i8 } +%"struct.std::__detail::_Identity" = type { i8 } %"struct.std::_Hashtable, std::__detail::_Identity, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node" = type { ptr, ptr } -%"struct.std::pair.7" = type { i8, i64 } +%"struct.std::__detail::_RehashStateGuard" = type { ptr, i64 } +%"struct.std::pair.5" = type { i8, i64 } +%"struct.std::__detail::_Mod_range_hashing" = type { i8 } $_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EEC2Ev = comdat any @@ -46,18 +50,10 @@ $_ZNSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_rang $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EEC2Ev = comdat any -$_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_9_IdentityELb1EEC2Ev = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EEC2Ev = comdat any -$_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EEC2Ev = comdat any -$_ZNSaINSt8__detail10_Hash_nodeIPK1ALb0EEEEC2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any $_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEED2Ev = comdat any @@ -78,27 +74,19 @@ $_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE18_M_deallocate_nodeEPS5_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE7destroyIS4_EEvRS6_PT_ = comdat any - $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv = comdat any -$_ZNSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv = comdat any - $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE22_M_deallocate_node_ptrEPS5_ = comdat any -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE7destroyIS5_EEvPT_ = comdat any - $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EE6_M_getEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv = comdat any $_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv = comdat any -$_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeIPK1ALb0EEEE10pointer_toERS5_ = comdat any +$_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeIPK1ALb0EEES5_Lb0EE10pointer_toERS5_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE10deallocateERS6_PS5_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE10deallocateEPS6_m = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE10deallocateEPS5_m = comdat any $_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_deallocate_bucketsEPPNS4_15_Hash_node_baseEm = comdat any @@ -106,25 +94,15 @@ $_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hash $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm = comdat any -$_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_ = comdat any - -$_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeIPK1ALb0EEEEERKSaIT_E = comdat any - -$_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m = comdat any - -$_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any +$_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_ = comdat any -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m = comdat any -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev = comdat any $_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EED2Ev = comdat any -$_ZNSaINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev = comdat any $_ZNSt8__detail12_Insert_baseIPK1AS3_SaIS3_ENS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb1ELb1EEEE6insertERKS3_ = comdat any @@ -132,119 +110,111 @@ $_ZNSt8__detail12_Insert_baseIPK1AS3_SaIS3_ENS_9_IdentityESt8equal_toIS3_ESt4has $_ZNSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEC2ERNS_16_Hashtable_allocIS6_EE = comdat any -$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_insertIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_St17integral_constantIbLb1EEm = comdat any +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_insertIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_St17integral_constantIbLb1EE = comdat any + +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE20_M_insert_unique_auxIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_ = comdat any + +$_ZNKSt8__detail19_ConvertToValueTypeINS_9_IdentityEPK1AEclIRKS4_EEOT_SA_ = comdat any -$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv = comdat any +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE16_M_insert_uniqueIRKS2_SI_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_OT0_RKT1_ = comdat any + +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE14_S_forward_keyERKS2_ = comdat any $_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_ = comdat any -$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERKS3_ = comdat any +$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE4sizeEv = comdat any -$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKS2_m = comdat any +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22__small_size_thresholdEv = comdat any -$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_M_find_nodeEmRKS2_m = comdat any +$_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE16_M_key_equals_trIS3_EEbRKT_RKNS_16_Hash_node_valueIS3_Lb0EEE = comdat any $_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE = comdat any $_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IS5_bLb1EEEOT_OT0_ = comdat any -$_ZNKSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEclIRKS4_EEPS5_OT_ = comdat any - -$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeC2EPNS4_10_Hash_nodeIS2_Lb0EEEPNS4_16_Hashtable_allocISaISI_EEE = comdat any +$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_hash_code_trIS3_EEmRKT_ = comdat any -$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_insert_unique_nodeERKS2_mmPNS4_10_Hash_nodeIS2_Lb0EEEm = comdat any +$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEm = comdat any -$_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IRS5_bLb1EEEOT_OT0_ = comdat any +$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIS2_EEPNS4_10_Hash_nodeIS2_Lb0EEEmRKT_m = comdat any -$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev = comdat any +$_ZNSt8__detail12_NodeBuilderINS_9_IdentityEE8_S_buildIRKPK1AS8_NS_10_AllocNodeISaINS_10_Hash_nodeIS6_Lb0EEEEEEEENT1_10__node_ptrEOT_OT0_RKSE_ = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_9_IdentityELb1EE7_M_cgetEv = comdat any +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeC2EPNS4_10_Hash_nodeIS2_Lb0EEEPNS4_16_Hashtable_allocISaISI_EEE = comdat any -$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev = comdat any +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_insert_unique_nodeEmmPNS4_10_Hash_nodeIS2_Lb0EEEm = comdat any -$_ZNKSt4hashIPK1AEclES2_ = comdat any +$_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IRS5_bLb1EEEOT_OT0_ = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EE7_M_cgetEv = comdat any +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev = comdat any -$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKS3_mm = comdat any +$_ZNSt8__detail22_Hashtable_hash_traitsISt4hashIPK1AEE22__small_size_thresholdEv = comdat any -$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev = comdat any +$_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE5_M_eqEv = comdat any -$_ZNKSt8__detail18_Mod_range_hashingclEmm = comdat any +$_ZNKSt8equal_toIPK1AEclERKS2_S5_ = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv = comdat any +$_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EE7_M_cgetEv = comdat any -$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE19_M_find_before_nodeEmRKS2_m = comdat any +$_ZNK9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv = comdat any -$_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_equalsERKS3_mPNS_10_Hash_nodeIS3_Lb0EEE = comdat any +$_ZNK9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv = comdat any -$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEPNS4_10_Hash_nodeIS2_Lb0EEE = comdat any +$_ZNSt8__detail19_Node_iterator_baseIPK1ALb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE = comdat any -$_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS3_Lb0EEEE9_S_equalsEmRKSG_ = comdat any +$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv = comdat any -$_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE5_M_eqEv = comdat any +$_ZNKSt4hashIPK1AEclES2_ = comdat any -$_ZNKSt8equal_toIPK1AEclERKS2_S5_ = comdat any +$_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EE7_M_cgetEv = comdat any -$_ZNKSt8__detail9_IdentityclIRPK1AEEOT_S7_ = comdat any +$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm = comdat any -$_ZNSt8__detail21_Hash_node_value_baseIPK1AE4_M_vEv = comdat any +$_ZNKSt8__detail18_Mod_range_hashingclEmm = comdat any -$_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EE7_M_cgetEv = comdat any +$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_find_before_node_trIS2_EEPNS4_15_Hash_node_baseEmRKT_m = comdat any -$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS3_Lb0EEEm = comdat any +$_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE12_M_equals_trIS3_EEbRKT_mRKNS_16_Hash_node_valueIS3_Lb0EEE = comdat any -$_ZNKSt8__detail21_Hash_node_value_baseIPK1AE4_M_vEv = comdat any +$_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKNS4_16_Hash_node_valueIS2_Lb0EEE = comdat any -$_ZNKSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv = comdat any +$_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE = comdat any -$_ZNK9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv = comdat any +$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS3_Lb0EEEm = comdat any -$_ZNK9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv = comdat any +$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERKS3_ = comdat any -$_ZNSt8__detail19_Node_iterator_baseIPK1ALb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE = comdat any +$_ZNKSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEclIJRKS4_EEEPS5_DpOT_ = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE16_M_allocate_nodeIJRKS4_EEEPS5_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE8allocateERS6_m = comdat any - $_ZSt12__to_addressINSt8__detail10_Hash_nodeIPK1ALb0EEEEPT_S7_ = comdat any $_ZNSt8__detail10_Hash_nodeIPK1ALb0EEC2Ev = comdat any -$_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE9constructIS4_JRKS4_EEEvRS6_PT_DpOT0_ = comdat any - -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE8allocateEmPKv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE11_M_max_sizeEv = comdat any - -$_ZNSt8__detail21_Hash_node_value_baseIPK1AEC2Ev = comdat any +$_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE8allocateEmPKv = comdat any -$_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE9constructIS5_JRKS5_EEEvPT_DpOT0_ = comdat any +$_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_ = comdat any -$_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv = comdat any - -$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmRKm = comdat any +$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE = comdat any -$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS3_Lb0EEEm = comdat any +$_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm = comdat any $_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_insert_bucket_beginEmPNS4_10_Hash_nodeIS2_Lb0EEE = comdat any -$_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE = comdat any +$_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev = comdat any -$_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm = comdat any +$_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv = comdat any $_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE19_M_allocate_bucketsEm = comdat any $_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE19_M_allocate_bucketsEm = comdat any -$_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m = comdat any - $_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_ = comdat any -$_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv = comdat any +$_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv = comdat any -$_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv = comdat any +$_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm = comdat any $_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE5beginEv = comdat any @@ -257,15 +227,12 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_unordered_set_1.cpp, ptr null }] ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -400,24 +367,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -434,12 +385,12 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %aset) #5 - %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #15 + call void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %aset) #12 + %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #13 to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #12 store ptr %call, ptr %a, align 8 %call2 = invoke { ptr, i8 } @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %aset, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont1 unwind label %lpad @@ -451,11 +402,11 @@ invoke.cont1: ; preds = %invoke.cont %2 = getelementptr inbounds { ptr, i8 }, ptr %coerce, i32 0, i32 1 %3 = extractvalue { ptr, i8 } %call2, 1 store i8 %3, ptr %2, align 8 - %call3 = call ptr @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %aset) #5 + %call3 = call ptr @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %aset) #12 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %it, i32 0, i32 0 %coerce.dive4 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 store ptr %call3, ptr %coerce.dive4, align 8 - %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail14_Node_iteratorIPK1ALb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail14_Node_iteratorIPK1ALb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #12 %4 = load ptr, ptr %call5, align 8 store ptr %4, ptr %aptr, align 8 %5 = load ptr, ptr %aptr, align 8 @@ -468,7 +419,7 @@ invoke.cont1: ; preds = %invoke.cont invoke.cont6: ; preds = %invoke.cont1 store i32 0, ptr %retval, align 4 - call void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %aset) #5 + call void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %aset) #12 %8 = load i32, ptr %retval, align 4 ret i32 %8 @@ -479,7 +430,7 @@ lpad: ; preds = %invoke.cont1, %invo store ptr %10, ptr %exn.slot, align 8 %11 = extractvalue { ptr, i32 } %9, 1 store i32 %11, ptr %ehselector.slot, align 4 - call void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %aset) #5 + call void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %aset) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -491,23 +442,23 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_set", ptr %this1, i32 0, i32 0 - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #12 ret void } ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #8 +declare noundef nonnull ptr @_Znwm(i64 noundef) #5 declare i32 @__gxx_personality_v0(...) ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -546,7 +497,7 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_set", ptr %this1, i32 0, i32 0 - %call = call ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + %call = call ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #12 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 %coerce.dive2 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 store ptr %call, ptr %coerce.dive2, align 8 @@ -559,73 +510,80 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail14_Node_iteratorIPK1ALb1ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: + %this.addr.i.i = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %_M_cur, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail21_Hash_node_value_baseIPK1AE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - ret ptr %call + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i.i, align 8 + %this1.i.i = load ptr, ptr %this.addr.i.i, align 8 + %call.i.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1.i.i) #12 + ret ptr %call.i.i } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt13unordered_setIPK1ASt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_h = getelementptr inbounds %"class.std::unordered_set", ptr %this1, i32 0, i32 0 - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #5 + call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %_M_h) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 %_M_single_bucket = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 5 store ptr %_M_single_bucket, ptr %_M_buckets, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 store i64 1, ptr %_M_bucket_count, align 8 %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_before_begin) #5 + call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %_M_before_begin) #12 %_M_element_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 store i64 0, ptr %_M_element_count, align 8 %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - call void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, float noundef 1.000000e+00) #5 + call void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, float noundef 1.000000e+00) #12 %_M_single_bucket2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 5 store ptr null, ptr %_M_single_bucket2, align 8 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -636,7 +594,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %this, float noundef %__z) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policyC2Ef(ptr noundef nonnull align 8 dereferenceable(16) %this, float noundef %__z) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__z.addr = alloca float, align 4 @@ -652,79 +610,45 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_9_IdentityELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ENS_9_IdentityELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaINSt8__detail10_Hash_nodeIPK1ALb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaINSt8__detail10_Hash_nodeIPK1ALb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 ret void } @@ -743,24 +667,24 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) #5 + call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) #12 invoke void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 ret void terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - call void @__clang_call_terminate(ptr %1) #16 + call void @__clang_call_terminate(ptr %1) #14 unreachable } @@ -795,7 +719,7 @@ terminate.lpad: ; preds = %invoke.cont, %entry %2 = landingpad { ptr, i32 } catch ptr null %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #16 + call void @__clang_call_terminate(ptr %3) #14 unreachable } @@ -814,9 +738,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #9 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #16 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #12 + call void @_ZSt9terminatev() #14 unreachable } @@ -825,12 +749,12 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + call void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #12 ret void } @@ -854,7 +778,7 @@ while.body: ; preds = %while.cond %1 = load ptr, ptr %__n.addr, align 8 store ptr %1, ptr %__tmp, align 8 %2 = load ptr, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #5 + %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #12 store ptr %call, ptr %__n.addr, align 8 %3 = load ptr, ptr %__tmp, align 8 call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE18_M_deallocate_nodeEPS5_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %3) @@ -877,7 +801,7 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { @@ -893,6 +817,11 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE18_M_deallocate_nodeEPS5_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__n) #0 comdat align 2 { entry: + %this.addr.i3 = alloca ptr, align 8 + %__p.addr.i4 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -900,23 +829,20 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %0 = load ptr, ptr %__n.addr, align 8 - %call2 = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - call void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE7destroyIS4_EEvRS6_PT_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %call2) #5 - %1 = load ptr, ptr %__n.addr, align 8 - call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE22_M_deallocate_node_ptrEPS5_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE7destroyIS4_EEvRS6_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE7destroyIS5_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 + %add.ptr = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1.i) #12 + store ptr %call, ptr %__a.addr.i, align 8 + store ptr %call.i, ptr %__p.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load ptr, ptr %__p.addr.i, align 8 + store ptr %1, ptr %this.addr.i3, align 8 + store ptr %2, ptr %__p.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i3, align 8 + %3 = load ptr, ptr %__p.addr.i4, align 8 + %4 = load ptr, ptr %__n.addr, align 8 + call void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE22_M_deallocate_node_ptrEPS5_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %4) ret void } @@ -930,20 +856,12 @@ entry: ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 - ret ptr %call -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE22_M_deallocate_node_ptrEPS5_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 %__ptr = alloca ptr, align 8 @@ -951,24 +869,18 @@ entry: store ptr %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeIPK1ALb0EEEE10pointer_toERS5_(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeIPK1ALb0EEES5_Lb0EE10pointer_toERS5_(ptr noundef nonnull align 8 dereferenceable(16) %0) #12 store ptr %call, ptr %__ptr, align 8 %1 = load ptr, ptr %__n.addr, align 8 %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %2 = load ptr, ptr %__ptr, align 8 - call void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE10deallocateERS6_PS5_m(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef %2, i64 noundef 1) - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE7destroyIS5_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 + store ptr %call2, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) ret void } @@ -987,7 +899,7 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %call = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #12 ret ptr %call } @@ -1002,7 +914,7 @@ entry: } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPNSt8__detail10_Hash_nodeIPK1ALb0EEEE10pointer_toERS5_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPNSt8__detail10_Hash_nodeIPK1ALb0EEES5_Lb0EE10pointer_toERS5_(ptr noundef nonnull align 8 dereferenceable(16) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -1010,39 +922,23 @@ entry: ret ptr %0 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE10deallocateERS6_PS5_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE10deallocateEPS6_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE10deallocateEPS6_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE10deallocateEPS5_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #11 +declare void @_ZdlPv(ptr noundef) #8 ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_deallocate_bucketsEPPNS4_15_Hash_node_baseEm(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #0 comdat align 2 { @@ -1085,14 +981,22 @@ entry: ret i1 %cmp } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__bkts, i64 noundef %__bkt_count) #9 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i8 = alloca ptr, align 8 + %this.addr.i6 = alloca ptr, align 8 + %this.addr.i4 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__bkts.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 %__ptr = alloca ptr, align 8 - %__alloc = alloca %"class.std::allocator.4", align 1 + %__alloc = alloca %"class.std::allocator.2", align 1 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 store ptr %this, ptr %this.addr, align 8 @@ -1100,27 +1004,41 @@ entry: store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__bkts.addr, align 8 - %call = call noundef ptr @_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef ptr @_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %0) #12 store ptr %call, ptr %__ptr, align 8 %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeIPK1ALb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef nonnull align 1 dereferenceable(1) %call2) #5 + store ptr %__alloc, ptr %this.addr.i, align 8 + store ptr %call2, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i8, align 8 + %this1.i9 = load ptr, ptr %this.addr.i8, align 8 %1 = load ptr, ptr %__ptr, align 8 %2 = load i64, ptr %__bkt_count.addr, align 8 - invoke void @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef %1, i64 noundef %2) - to label %invoke.cont unwind label %lpad + store ptr %__alloc, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 %2, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) + br label %invoke.cont invoke.cont: ; preds = %entry - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + store ptr %__alloc, ptr %this.addr.i4, align 8 + %this1.i5 = load ptr, ptr %this.addr.i4, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i5) #12 ret void -lpad: ; preds = %entry - %3 = landingpad { ptr, i32 } +lpad: ; No predecessors! + %6 = landingpad { ptr, i32 } cleanup - %4 = extractvalue { ptr, i32 } %3, 0 - store ptr %4, ptr %exn.slot, align 8 - %5 = extractvalue { ptr, i32 } %3, 1 - store i32 %5, ptr %ehselector.slot, align 4 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + %7 = extractvalue { ptr, i32 } %6, 0 + store ptr %7, ptr %exn.slot, align 8 + %8 = extractvalue { ptr, i32 } %6, 1 + store i32 %8, ptr %ehselector.slot, align 4 + store ptr %__alloc, ptr %this.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i6, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i7) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -1132,7 +1050,7 @@ eh.resume: ; preds = %lpad } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt14pointer_traitsIPPNSt8__detail15_Hash_node_baseEE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %__r) #2 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt19__ptr_traits_ptr_toIPPNSt8__detail15_Hash_node_baseES2_Lb0EE10pointer_toERS2_(ptr noundef nonnull align 8 dereferenceable(8) %__r) #2 comdat align 2 { entry: %__r.addr = alloca ptr, align 8 store ptr %__r, ptr %__r.addr, align 8 @@ -1140,70 +1058,23 @@ entry: ret ptr %0 } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeIPK1ALb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #15 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1212,27 +1083,20 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail21_Hashtable_ebo_helperILi0ESaINS_10_Hash_nodeIPK1ALb0EEEELb1EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #12 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1258,7 +1122,7 @@ entry: call void @_ZNSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEC2ERNS_16_Hashtable_allocIS6_EE(ptr noundef nonnull align 8 dereferenceable(8) %__node_gen, ptr noundef nonnull align 1 dereferenceable(1) %0) %1 = load ptr, ptr %__h, align 8 %2 = load ptr, ptr %__v.addr, align 8 - %call2 = call { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_insertIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_St17integral_constantIbLb1EEm(ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %__node_gen, i64 noundef 1) + %call2 = call { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_insertIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_St17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %__node_gen) %3 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 0 %4 = extractvalue { ptr, i8 } %call2, 0 store ptr %4, ptr %3, align 8 @@ -1279,7 +1143,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEC2ERNS_16_Hashtable_allocIS6_EE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 1 dereferenceable(1) %__h) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEC2ERNS_16_Hashtable_allocIS6_EE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 1 dereferenceable(1) %__h) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__h.addr = alloca ptr, align 8 @@ -1293,164 +1157,355 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_insertIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_St17integral_constantIbLb1EEm(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(8) %__v, ptr noundef nonnull align 8 dereferenceable(8) %__node_gen, i64 noundef %__n_elt) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_insertIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_St17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(8) %__arg, ptr noundef nonnull align 8 dereferenceable(8) %__node_gen) #0 comdat align 2 { entry: %retval = alloca %"struct.std::pair", align 8 %0 = alloca %"struct.std::integral_constant", align 1 %this.addr = alloca ptr, align 8 - %__v.addr = alloca ptr, align 8 + %__arg.addr = alloca ptr, align 8 %__node_gen.addr = alloca ptr, align 8 - %__n_elt.addr = alloca i64, align 8 - %__k = alloca ptr, align 8 - %__code = alloca i64, align 8 - %__bkt = alloca i64, align 8 - %__node = alloca ptr, align 8 - %ref.tmp = alloca %"struct.std::__detail::_Node_iterator", align 8 - %ref.tmp6 = alloca i8, align 1 - %__node7 = alloca %"struct.std::_Hashtable, std::__detail::_Identity, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", align 8 - %__pos = alloca %"struct.std::__detail::_Node_iterator", align 8 - %exn.slot = alloca ptr, align 8 - %ehselector.slot = alloca i32, align 4 - %ref.tmp12 = alloca i8, align 1 + %ref.tmp = alloca %"struct.std::__detail::_ConvertToValueType", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %__v, ptr %__v.addr, align 8 + store ptr %__arg, ptr %__arg.addr, align 8 store ptr %__node_gen, ptr %__node_gen.addr, align 8 - store i64 %__n_elt, ptr %__n_elt.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - %1 = load ptr, ptr %__v.addr, align 8 - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef nonnull align 8 dereferenceable(8) %1) - store ptr %call2, ptr %__k, align 8 - %2 = load ptr, ptr %__k, align 8 - %call3 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %2) - store i64 %call3, ptr %__code, align 8 - %3 = load ptr, ptr %__k, align 8 - %4 = load i64, ptr %__code, align 8 - %call4 = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKS2_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(8) %3, i64 noundef %4) - store i64 %call4, ptr %__bkt, align 8 - %5 = load i64, ptr %__bkt, align 8 - %6 = load ptr, ptr %__k, align 8 - %7 = load i64, ptr %__code, align 8 - %call5 = call noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_M_find_nodeEmRKS2_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %5, ptr noundef nonnull align 8 dereferenceable(8) %6, i64 noundef %7) - store ptr %call5, ptr %__node, align 8 - %8 = load ptr, ptr %__node, align 8 - %tobool = icmp ne ptr %8, null - br i1 %tobool, label %if.then, label %if.end - -if.then: ; preds = %entry - %9 = load ptr, ptr %__node, align 8 - call void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %9) #5 - store i8 0, ptr %ref.tmp6, align 1 - call void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) - br label %return - -if.end: ; preds = %entry - %10 = load ptr, ptr %__node_gen.addr, align 8 - %11 = load ptr, ptr %__v.addr, align 8 - %call8 = call noundef ptr @_ZNKSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEclIRKS4_EEPS5_OT_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeC2EPNS4_10_Hash_nodeIS2_Lb0EEEPNS4_16_Hashtable_allocISaISI_EEE(ptr noundef nonnull align 8 dereferenceable(16) %__node7, ptr noundef %call8, ptr noundef %this1) - %12 = load ptr, ptr %__k, align 8 - %13 = load i64, ptr %__bkt, align 8 - %14 = load i64, ptr %__code, align 8 - %_M_node = getelementptr inbounds %"struct.std::_Hashtable, std::__detail::_Identity, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node7, i32 0, i32 1 - %15 = load ptr, ptr %_M_node, align 8 - %16 = load i64, ptr %__n_elt.addr, align 8 - %call9 = invoke ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_insert_unique_nodeERKS2_mmPNS4_10_Hash_nodeIS2_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(8) %12, i64 noundef %13, i64 noundef %14, ptr noundef %15, i64 noundef %16) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %if.end - %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %__pos, i32 0, i32 0 - %coerce.dive10 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 - store ptr %call9, ptr %coerce.dive10, align 8 - %_M_node11 = getelementptr inbounds %"struct.std::_Hashtable, std::__detail::_Identity, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node7, i32 0, i32 1 - store ptr null, ptr %_M_node11, align 8 - store i8 1, ptr %ref.tmp12, align 1 - invoke void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IRS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__pos, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp12) - to label %invoke.cont13 unwind label %lpad - -invoke.cont13: ; preds = %invoke.cont - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node7) #5 - br label %return - -lpad: ; preds = %invoke.cont, %if.end - %17 = landingpad { ptr, i32 } - cleanup - %18 = extractvalue { ptr, i32 } %17, 0 - store ptr %18, ptr %exn.slot, align 8 - %19 = extractvalue { ptr, i32 } %17, 1 - store i32 %19, ptr %ehselector.slot, align 4 - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node7) #5 - br label %eh.resume - -return: ; preds = %invoke.cont13, %if.then - %20 = load { ptr, i8 }, ptr %retval, align 8 - ret { ptr, i8 } %20 - -eh.resume: ; preds = %lpad - %exn = load ptr, ptr %exn.slot, align 8 - %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn, 0 - %lpad.val14 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val14 + %1 = load ptr, ptr %__arg.addr, align 8 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail19_ConvertToValueTypeINS_9_IdentityEPK1AEclIRKS4_EEOT_SA_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %1) #12 + %2 = load ptr, ptr %__node_gen.addr, align 8 + %call2 = call { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE20_M_insert_unique_auxIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(8) %call, ptr noundef nonnull align 8 dereferenceable(8) %2) + %3 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 0 + %4 = extractvalue { ptr, i8 } %call2, 0 + store ptr %4, ptr %3, align 8 + %5 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 1 + %6 = extractvalue { ptr, i8 } %call2, 1 + store i8 %6, ptr %5, align 8 + %7 = load { ptr, i8 }, ptr %retval, align 8 + ret { ptr, i8 } %7 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +define linkonce_odr dso_local { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE20_M_insert_unique_auxIRKS2_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_RKT0_(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(8) %__arg, ptr noundef nonnull align 8 dereferenceable(8) %__node_gen) #0 comdat align 2 { entry: + %retval = alloca %"struct.std::pair", align 8 %this.addr = alloca ptr, align 8 + %__arg.addr = alloca ptr, align 8 + %__node_gen.addr = alloca ptr, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Identity", align 1 store ptr %this, ptr %this.addr, align 8 + store ptr %__arg, ptr %__arg.addr, align 8 + store ptr %__node_gen, ptr %__node_gen.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_9_IdentityELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - ret ptr %call + %0 = load ptr, ptr %__arg.addr, align 8 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %0) #12 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE14_S_forward_keyERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %call) + %1 = load ptr, ptr %__arg.addr, align 8 + %2 = load ptr, ptr %__node_gen.addr, align 8 + %call3 = call { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE16_M_insert_uniqueIRKS2_SI_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_OT0_RKT1_(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(8) %call2, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %2) + %3 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 0 + %4 = extractvalue { ptr, i8 } %call3, 0 + store ptr %4, ptr %3, align 8 + %5 = getelementptr inbounds { ptr, i8 }, ptr %retval, i32 0, i32 1 + %6 = extractvalue { ptr, i8 } %call3, 1 + store i8 %6, ptr %5, align 8 + %7 = load { ptr, i8 }, ptr %retval, align 8 + ret { ptr, i8 } %7 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail19_ConvertToValueTypeINS_9_IdentityEPK1AEclIRKS4_EEOT_SA_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 + %0 = load ptr, ptr %__k.addr, align 8 ret ptr %0 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k) #0 comdat align 2 { +define linkonce_odr dso_local { ptr, i8 } @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE16_M_insert_uniqueIRKS2_SI_NS4_10_AllocNodeISaINS4_10_Hash_nodeIS2_Lb0EEEEEEEESt4pairINS4_14_Node_iteratorIS2_Lb1ELb0EEEbEOT_OT0_RKT1_(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k, ptr noundef nonnull align 8 dereferenceable(8) %__v, ptr noundef nonnull align 8 dereferenceable(8) %__node_gen) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %retval = alloca %"struct.std::pair", align 8 %this.addr = alloca ptr, align 8 %__k.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__k, ptr %__k.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %__v.addr = alloca ptr, align 8 + %__node_gen.addr = alloca ptr, align 8 + %__size = alloca i64, align 8 + %__it = alloca ptr, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Node_iterator", align 8 + %ref.tmp6 = alloca i8, align 1 + %__code = alloca i64, align 8 + %__bkt = alloca i64, align 8 + %__node = alloca ptr, align 8 + %ref.tmp17 = alloca %"struct.std::__detail::_Node_iterator", align 8 + %ref.tmp18 = alloca i8, align 1 + %__node21 = alloca %"struct.std::_Hashtable, std::__detail::_Identity, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", align 8 + %__pos = alloca %"struct.std::__detail::_Node_iterator", align 8 + %exn.slot = alloca ptr, align 8 + %ehselector.slot = alloca i32, align 4 + %ref.tmp26 = alloca i8, align 1 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + store ptr %__v, ptr %__v.addr, align 8 + store ptr %__node_gen, ptr %__node_gen.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) #12 + store i64 %call, ptr %__size, align 8 + %0 = load i64, ptr %__size, align 8 + %call2 = call noundef i64 @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22__small_size_thresholdEv() #12 + %cmp = icmp ule i64 %0, %call2 + br i1 %cmp, label %if.then, label %if.end8 + +if.then: ; preds = %entry + %call3 = call noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) + store ptr %call3, ptr %__it, align 8 + br label %for.cond + +for.cond: ; preds = %for.inc, %if.then + %1 = load ptr, ptr %__it, align 8 + %tobool = icmp ne ptr %1, null + br i1 %tobool, label %for.body, label %for.end + +for.body: ; preds = %for.cond + %2 = load ptr, ptr %__k.addr, align 8 + %3 = load ptr, ptr %__it, align 8 + %add.ptr = getelementptr inbounds i8, ptr %3, i64 8 + %call4 = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE16_M_key_equals_trIS3_EEbRKT_RKNS_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %add.ptr) + br i1 %call4, label %if.then5, label %if.end + +if.then5: ; preds = %for.body + %4 = load ptr, ptr %__it, align 8 + call void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef %4) #12 + store i8 0, ptr %ref.tmp6, align 1 + call void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp6) + br label %return + +if.end: ; preds = %for.body + br label %for.inc + +for.inc: ; preds = %if.end + %5 = load ptr, ptr %__it, align 8 + %call7 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %5) #12 + store ptr %call7, ptr %__it, align 8 + br label %for.cond, !llvm.loop !8 + +for.end: ; preds = %for.cond + br label %if.end8 + +if.end8: ; preds = %for.end, %entry + %6 = load ptr, ptr %__k.addr, align 8 + %call9 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_hash_code_trIS3_EEmRKT_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %6) + store i64 %call9, ptr %__code, align 8 + %7 = load i64, ptr %__code, align 8 + %call10 = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %7) + store i64 %call10, ptr %__bkt, align 8 + %8 = load i64, ptr %__size, align 8 + %call11 = call noundef i64 @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22__small_size_thresholdEv() #12 + %cmp12 = icmp ugt i64 %8, %call11 + br i1 %cmp12, label %if.then13, label %if.end20 + +if.then13: ; preds = %if.end8 + %9 = load i64, ptr %__bkt, align 8 + %10 = load ptr, ptr %__k.addr, align 8 + %11 = load i64, ptr %__code, align 8 + %call14 = call noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIS2_EEPNS4_10_Hash_nodeIS2_Lb0EEEmRKT_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %9, ptr noundef nonnull align 8 dereferenceable(8) %10, i64 noundef %11) + store ptr %call14, ptr %__node, align 8 + %12 = load ptr, ptr %__node, align 8 + %tobool15 = icmp ne ptr %12, null + br i1 %tobool15, label %if.then16, label %if.end19 + +if.then16: ; preds = %if.then13 + %13 = load ptr, ptr %__node, align 8 + call void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp17, ptr noundef %13) #12 + store i8 0, ptr %ref.tmp18, align 1 + call void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp17, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18) + br label %return + +if.end19: ; preds = %if.then13 + br label %if.end20 + +if.end20: ; preds = %if.end19, %if.end8 + %14 = load ptr, ptr %__k.addr, align 8 + %15 = load ptr, ptr %__v.addr, align 8 + %16 = load ptr, ptr %__node_gen.addr, align 8 + %call22 = call noundef ptr @_ZNSt8__detail12_NodeBuilderINS_9_IdentityEE8_S_buildIRKPK1AS8_NS_10_AllocNodeISaINS_10_Hash_nodeIS6_Lb0EEEEEEEENT1_10__node_ptrEOT_OT0_RKSE_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) + call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeC2EPNS4_10_Hash_nodeIS2_Lb0EEEPNS4_16_Hashtable_allocISaISI_EEE(ptr noundef nonnull align 8 dereferenceable(16) %__node21, ptr noundef %call22, ptr noundef %this1) + %17 = load i64, ptr %__bkt, align 8 + %18 = load i64, ptr %__code, align 8 + %_M_node = getelementptr inbounds %"struct.std::_Hashtable, std::__detail::_Identity, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node21, i32 0, i32 1 + %19 = load ptr, ptr %_M_node, align 8 + %call23 = invoke ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_insert_unique_nodeEmmPNS4_10_Hash_nodeIS2_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %17, i64 noundef %18, ptr noundef %19, i64 noundef 1) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %if.end20 + %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %__pos, i32 0, i32 0 + %coerce.dive24 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 + store ptr %call23, ptr %coerce.dive24, align 8 + %_M_node25 = getelementptr inbounds %"struct.std::_Hashtable, std::__detail::_Identity, std::equal_to, std::hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits>::_Scoped_node", ptr %__node21, i32 0, i32 1 + store ptr null, ptr %_M_node25, align 8 + store i8 1, ptr %ref.tmp26, align 1 + invoke void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IRS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %retval, ptr noundef nonnull align 8 dereferenceable(8) %__pos, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp26) + to label %invoke.cont27 unwind label %lpad + +invoke.cont27: ; preds = %invoke.cont + call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node21) #12 + br label %return + +lpad: ; preds = %invoke.cont, %if.end20 + %20 = landingpad { ptr, i32 } + cleanup + %21 = extractvalue { ptr, i32 } %20, 0 + store ptr %21, ptr %exn.slot, align 8 + %22 = extractvalue { ptr, i32 } %20, 1 + store i32 %22, ptr %ehselector.slot, align 4 + call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__node21) #12 + br label %eh.resume + +return: ; preds = %invoke.cont27, %if.then16, %if.then5 + %23 = load { ptr, i8 }, ptr %retval, align 8 + ret { ptr, i8 } %23 + +eh.resume: ; preds = %lpad + %exn = load ptr, ptr %exn.slot, align 8 + %sel = load i32, ptr %ehselector.slot, align 4 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn, 0 + %lpad.val28 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val28 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE14_S_forward_keyERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %__k) #2 comdat align 2 { +entry: + %__k.addr = alloca ptr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %0 = load ptr, ptr %__k.addr, align 8 + ret ptr %0 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__x.addr, align 8 + ret ptr %0 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_element_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 + %0 = load i64, ptr %_M_element_count, align 8 + ret i64 %0 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22__small_size_thresholdEv() #2 comdat align 2 { +entry: + %call = call noundef i64 @_ZNSt8__detail22_Hashtable_hash_traitsISt4hashIPK1AEE22__small_size_thresholdEv() #12 + ret i64 %call +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE16_M_key_equals_trIS3_EEbRKT_RKNS_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k, ptr noundef nonnull align 8 dereferenceable(8) %__n) #0 comdat align 2 { +entry: + %this.addr.i5 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + %__n.addr = alloca ptr, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Identity", align 1 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + store ptr %__n, ptr %__n.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %0 = load ptr, ptr %__k.addr, align 8 + %1 = load ptr, ptr %__n.addr, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i5, align 8 + %this1.i6 = load ptr, ptr %this.addr.i5, align 8 + %call.i7 = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1.i6) #12 + %call3 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %call.i7) #12 + %call4 = call noundef zeroext i1 @_ZNKSt8equal_toIPK1AEclERKS2_S5_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %call3) + ret i1 %call4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__p.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__p, ptr %__p.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__p.addr, align 8 + call void @_ZNSt8__detail19_Node_iterator_baseIPK1ALb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %0) #12 + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__x.addr, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %first, ptr align 8 %0, i64 8, i1 false) + %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__y.addr, align 8 + %2 = load i8, ptr %1, align 1 + %tobool = trunc i8 %2 to i1 + %frombool = zext i1 %tobool to i8 + store i8 %frombool, ptr %second, align 8 + ret void +} + +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_hash_code_trIS3_EEmRKT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k) #0 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %0 = load ptr, ptr %__k.addr, align 8 %1 = load ptr, ptr %0, align 8 - %call2 = call noundef i64 @_ZNKSt4hashIPK1AEclES2_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %1) #5 + %call2 = call noundef i64 @_ZNKSt4hashIPK1AEclES2_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %1) #12 ret i64 %call2 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKS2_m(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k, i64 noundef %__c) #0 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__c) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 %__c.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__k, ptr %__k.addr, align 8 store i64 %__c, ptr %__c.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__k.addr, align 8 - %1 = load i64, ptr %__c.addr, align 8 + %0 = load i64, ptr %__c.addr, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 - %2 = load i64, ptr %_M_bucket_count, align 8 - %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKS3_mm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %0, i64 noundef %1, i64 noundef %2) + %1 = load i64, ptr %_M_bucket_count, align 8 + %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm(ptr noundef nonnull align 1 dereferenceable(1) %this1, i64 noundef %0, i64 noundef %1) ret i64 %call } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_M_find_nodeEmRKS2_m(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef nonnull align 8 dereferenceable(8) %__key, i64 noundef %__c) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIS2_EEPNS4_10_Hash_nodeIS2_Lb0EEEmRKT_m(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef nonnull align 8 dereferenceable(8) %__key, i64 noundef %__c) #0 comdat align 2 { entry: %retval = alloca ptr, align 8 %this.addr = alloca ptr, align 8 @@ -1466,7 +1521,7 @@ entry: %0 = load i64, ptr %__bkt.addr, align 8 %1 = load ptr, ptr %__key.addr, align 8 %2 = load i64, ptr %__c.addr, align 8 - %call = call noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE19_M_find_before_nodeEmRKS2_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(8) %1, i64 noundef %2) + %call = call noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_find_before_node_trIS2_EEPNS4_15_Hash_node_baseEmRKT_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(8) %1, i64 noundef %2) store ptr %call, ptr %__before_n, align 8 %3 = load ptr, ptr %__before_n, align 8 %tobool = icmp ne ptr %3, null @@ -1488,58 +1543,23 @@ return: ; preds = %if.end, %if.then ret ptr %6 } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZNSt8__detail19_Node_iterator_baseIPK1ALb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this1, ptr noundef %0) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %first = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__x.addr, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr align 8 %first, ptr align 8 %0, i64 8, i1 false) - %second = getelementptr inbounds %"struct.std::pair", ptr %this1, i32 0, i32 1 - %1 = load ptr, ptr %__y.addr, align 8 - %2 = load i8, ptr %1, align 1 - %tobool = trunc i8 %2 to i1 - %frombool = zext i1 %tobool to i8 - store i8 %frombool, ptr %second, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEclIRKS4_EEPS5_OT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__arg) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt8__detail12_NodeBuilderINS_9_IdentityEE8_S_buildIRKPK1AS8_NS_10_AllocNodeISaINS_10_Hash_nodeIS6_Lb0EEEEEEEENT1_10__node_ptrEOT_OT0_RKSE_(ptr noundef nonnull align 8 dereferenceable(8) %__k, ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %__node_gen) #0 comdat align 2 { entry: - %this.addr = alloca ptr, align 8 - %__arg.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__arg, ptr %__arg.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_h = getelementptr inbounds %"struct.std::__detail::_AllocNode", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %_M_h, align 8 - %1 = load ptr, ptr %__arg.addr, align 8 - %call = call noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE16_M_allocate_nodeIJRKS4_EEEPS5_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) + %__k.addr = alloca ptr, align 8 + %.addr = alloca ptr, align 8 + %__node_gen.addr = alloca ptr, align 8 + store ptr %__k, ptr %__k.addr, align 8 + store ptr %0, ptr %.addr, align 8 + store ptr %__node_gen, ptr %__node_gen.addr, align 8 + %1 = load ptr, ptr %__node_gen.addr, align 8 + %2 = load ptr, ptr %__k.addr, align 8 + %call = call noundef ptr @_ZNKSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEclIJRKS4_EEEPS5_DpOT_(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %2) ret ptr %call } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeC2EPNS4_10_Hash_nodeIS2_Lb0EEEPNS4_16_Hashtable_allocISaISI_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__n, ptr noundef %__h) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeC2EPNS4_10_Hash_nodeIS2_Lb0EEEPNS4_16_Hashtable_allocISaISI_EEE(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %__n, ptr noundef %__h) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -1558,79 +1578,111 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_insert_unique_nodeERKS2_mmPNS4_10_Hash_nodeIS2_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k, i64 noundef %__bkt, i64 noundef %__code, ptr noundef %__node, i64 noundef %__n_elt) #0 comdat align 2 { +define linkonce_odr dso_local ptr @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_insert_unique_nodeEmmPNS4_10_Hash_nodeIS2_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, i64 noundef %__code, ptr noundef %__node, i64 noundef %__n_elt) #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %retval = alloca %"struct.std::__detail::_Node_iterator", align 8 %this.addr = alloca ptr, align 8 - %__k.addr = alloca ptr, align 8 %__bkt.addr = alloca i64, align 8 %__code.addr = alloca i64, align 8 %__node.addr = alloca ptr, align 8 %__n_elt.addr = alloca i64, align 8 - %__saved_state = alloca ptr, align 8 - %ref.tmp = alloca i64, align 8 - %__do_rehash = alloca %"struct.std::pair.7", align 8 + %__rehash_guard = alloca %"struct.std::__detail::_RehashStateGuard", align 8 + %__do_rehash = alloca %"struct.std::pair.5", align 8 + %exn.slot = alloca ptr, align 8 + %ehselector.slot = alloca i32, align 4 + %agg.tmp = alloca %"struct.std::integral_constant", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %__k, ptr %__k.addr, align 8 store i64 %__bkt, ptr %__bkt.addr, align 8 store i64 %__code, ptr %__code.addr, align 8 store ptr %__node, ptr %__node.addr, align 8 store i64 %__n_elt, ptr %__n_elt.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - %call = call noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy) - store i64 %call, ptr %ref.tmp, align 8 - store ptr %ref.tmp, ptr %__saved_state, align 8 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard, ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy) %_M_rehash_policy2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 %0 = load i64, ptr %_M_bucket_count, align 8 %_M_element_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 %1 = load i64, ptr %_M_element_count, align 8 %2 = load i64, ptr %__n_elt.addr, align 8 - %call3 = call { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy2, i64 noundef %0, i64 noundef %1, i64 noundef %2) + %call = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy2, i64 noundef %0, i64 noundef %1, i64 noundef %2) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %entry %3 = getelementptr inbounds { i8, i64 }, ptr %__do_rehash, i32 0, i32 0 - %4 = extractvalue { i8, i64 } %call3, 0 + %4 = extractvalue { i8, i64 } %call, 0 store i8 %4, ptr %3, align 8 %5 = getelementptr inbounds { i8, i64 }, ptr %__do_rehash, i32 0, i32 1 - %6 = extractvalue { i8, i64 } %call3, 1 + %6 = extractvalue { i8, i64 } %call, 1 store i64 %6, ptr %5, align 8 - %first = getelementptr inbounds %"struct.std::pair.7", ptr %__do_rehash, i32 0, i32 0 + %first = getelementptr inbounds %"struct.std::pair.5", ptr %__do_rehash, i32 0, i32 0 %7 = load i8, ptr %first, align 8 %tobool = trunc i8 %7 to i1 br i1 %tobool, label %if.then, label %if.end -if.then: ; preds = %entry - %second = getelementptr inbounds %"struct.std::pair.7", ptr %__do_rehash, i32 0, i32 1 +if.then: ; preds = %invoke.cont + %second = getelementptr inbounds %"struct.std::pair.5", ptr %__do_rehash, i32 0, i32 1 %8 = load i64, ptr %second, align 8 - %9 = load ptr, ptr %__saved_state, align 8 - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmRKm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %8, ptr noundef nonnull align 8 dereferenceable(8) %9) - %10 = load ptr, ptr %__k.addr, align 8 - %11 = load i64, ptr %__code.addr, align 8 - %call4 = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKS2_m(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(8) %10, i64 noundef %11) - store i64 %call4, ptr %__bkt.addr, align 8 + invoke void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %8) + to label %invoke.cont3 unwind label %lpad + +invoke.cont3: ; preds = %if.then + %9 = load i64, ptr %__code.addr, align 8 + %call5 = invoke noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEm(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %9) + to label %invoke.cont4 unwind label %lpad + +invoke.cont4: ; preds = %invoke.cont3 + store i64 %call5, ptr %__bkt.addr, align 8 br label %if.end -if.end: ; preds = %if.then, %entry - %12 = load ptr, ptr %__node.addr, align 8 - %13 = load i64, ptr %__code.addr, align 8 - call void @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %12, i64 noundef %13) - %14 = load i64, ptr %__bkt.addr, align 8 - %15 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_insert_bucket_beginEmPNS4_10_Hash_nodeIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %14, ptr noundef %15) - %_M_element_count5 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 - %16 = load i64, ptr %_M_element_count5, align 8 - %inc = add i64 %16, 1 - store i64 %inc, ptr %_M_element_count5, align 8 - %17 = load ptr, ptr %__node.addr, align 8 - call void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %17) #5 +lpad: ; preds = %invoke.cont6, %if.end, %invoke.cont3, %if.then, %entry + %10 = landingpad { ptr, i32 } + cleanup + %11 = extractvalue { ptr, i32 } %10, 0 + store ptr %11, ptr %exn.slot, align 8 + %12 = extractvalue { ptr, i32 } %10, 1 + store i32 %12, ptr %ehselector.slot, align 4 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard) #12 + br label %eh.resume + +if.end: ; preds = %invoke.cont4, %invoke.cont + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %__rehash_guard, i32 0, i32 0 + store ptr null, ptr %_M_guarded_obj, align 8 + %13 = load ptr, ptr %__node.addr, align 8 + %add.ptr = getelementptr inbounds i8, ptr %13, i64 8 + %14 = load i64, ptr %__code.addr, align 8 + invoke void @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr, i64 noundef %14) + to label %invoke.cont6 unwind label %lpad + +invoke.cont6: ; preds = %if.end + %15 = load i64, ptr %__bkt.addr, align 8 + %16 = load ptr, ptr %__node.addr, align 8 + invoke void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_insert_bucket_beginEmPNS4_10_Hash_nodeIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %15, ptr noundef %16) + to label %invoke.cont7 unwind label %lpad + +invoke.cont7: ; preds = %invoke.cont6 + %_M_element_count8 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 3 + %17 = load i64, ptr %_M_element_count8, align 8 + %inc = add i64 %17, 1 + store i64 %inc, ptr %_M_element_count8, align 8 + %18 = load ptr, ptr %__node.addr, align 8 + call void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %18) #12 + call void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %__rehash_guard) #12 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 - %coerce.dive6 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 - %18 = load ptr, ptr %coerce.dive6, align 8 - ret ptr %18 + %coerce.dive9 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 + %19 = load ptr, ptr %coerce.dive9, align 8 + ret ptr %19 + +eh.resume: ; preds = %lpad + %exn = load ptr, ptr %exn.slot, align 8 + %sel = load i32, ptr %ehselector.slot, align 4 + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn, 0 + %lpad.val10 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 + resume { ptr, i32 } %lpad.val10 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IRS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt4pairINSt8__detail14_Node_iteratorIPK1ALb1ELb0EEEbEC2IRS5_bLb1EEEOT_OT0_(ptr noundef nonnull align 8 dereferenceable(9) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 1 dereferenceable(1) %__y) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 @@ -1652,7 +1704,7 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1680,44 +1732,46 @@ terminate.lpad: ; preds = %if.then %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #16 + call void @__clang_call_terminate(ptr %4) #14 unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ENS_9_IdentityELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNSt8__detail22_Hashtable_hash_traitsISt4hashIPK1AEE22__small_size_thresholdEv() #2 comdat align 2 { entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret ptr %this1 + ret i64 0 } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) ret ptr %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt4hashIPK1AEclES2_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8equal_toIPK1AEclERKS2_S5_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 + %__x.addr = alloca ptr, align 8 + %__y.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 + store ptr %__x, ptr %__x.addr, align 8 + store ptr %__y, ptr %__y.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = ptrtoint ptr %0 to i64 - ret i64 %1 + %0 = load ptr, ptr %__x.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %2 = load ptr, ptr %__y.addr, align 8 + %3 = load ptr, ptr %2, align 8 + %cmp = icmp eq ptr %1, %3 + ret i1 %cmp } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1725,35 +1779,92 @@ entry: ret ptr %this1 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKS3_mm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %0, i64 noundef %__c, i64 noundef %__bkt_count) #0 comdat align 2 { +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - %__c.addr = alloca i64, align 8 - %__bkt_count.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - store i64 %__c, ptr %__c.addr, align 8 - store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) - %1 = load i64, ptr %__c.addr, align 8 - %2 = load i64, ptr %__bkt_count.addr, align 8 - %call2 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef %1, i64 noundef %2) #5 - ret i64 %call2 + %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #12 + ret ptr %call +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_buffer", ptr %this1, i32 0, i32 0 + ret ptr %_M_storage +} + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail19_Node_iterator_baseIPK1ALb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__p.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__p, ptr %__p.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__p.addr, align 8 + store ptr %0, ptr %_M_cur, align 8 + ret void } +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10 + ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) ret ptr %call } +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt4hashIPK1AEclES2_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__p.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__p, ptr %__p.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load ptr, ptr %__p.addr, align 8 + %1 = ptrtoint ptr %0 to i64 + ret i64 %1 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi1ESt4hashIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + ret ptr %this1 +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEmm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__c, i64 noundef %__bkt_count) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__c.addr = alloca i64, align 8 + %__bkt_count.addr = alloca i64, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Mod_range_hashing", align 1 + store ptr %this, ptr %this.addr, align 8 + store i64 %__c, ptr %__c.addr, align 8 + store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %0 = load i64, ptr %__c.addr, align 8 + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, i64 noundef %0, i64 noundef %1) #12 + ret i64 %call +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__num, i64 noundef %__den) #2 comdat align 2 { entry: @@ -1770,17 +1881,8 @@ entry: ret i64 %rem } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi2ENS_18_Mod_range_hashingELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret ptr %this1 -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE19_M_find_before_nodeEmRKS2_m(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef nonnull align 8 dereferenceable(8) %__k, i64 noundef %__code) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_find_before_node_trIS2_EEPNS4_15_Hash_node_baseEmRKT_m(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef nonnull align 8 dereferenceable(8) %__k, i64 noundef %__code) #0 comdat align 2 { entry: %retval = alloca ptr, align 8 %this.addr = alloca ptr, align 8 @@ -1819,7 +1921,8 @@ for.cond: ; preds = %for.inc, %if.end %6 = load ptr, ptr %__k.addr, align 8 %7 = load i64, ptr %__code.addr, align 8 %8 = load ptr, ptr %__p, align 8 - %call = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_equalsERKS3_mPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %6, i64 noundef %7, ptr noundef %8) + %add.ptr = getelementptr inbounds i8, ptr %8, i64 8 + %call = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE12_M_equals_trIS3_EEbRKT_mRKNS_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %6, i64 noundef %7, ptr noundef nonnull align 8 dereferenceable(8) %add.ptr) br i1 %call, label %if.then2, label %if.end3 if.then2: ; preds = %for.cond @@ -1832,31 +1935,32 @@ if.end3: ; preds = %for.cond %_M_nxt4 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %10, i32 0, i32 0 %11 = load ptr, ptr %_M_nxt4, align 8 %tobool5 = icmp ne ptr %11, null - br i1 %tobool5, label %lor.lhs.false, label %if.then8 + br i1 %tobool5, label %lor.lhs.false, label %if.then9 lor.lhs.false: ; preds = %if.end3 %12 = load ptr, ptr %__p, align 8 - %call6 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #5 - %call7 = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEPNS4_10_Hash_nodeIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef %call6) #5 + %call6 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #12 + %add.ptr7 = getelementptr inbounds i8, ptr %call6, i64 8 + %call8 = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKNS4_16_Hash_node_valueIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(8) %add.ptr7) #12 %13 = load i64, ptr %__bkt.addr, align 8 - %cmp = icmp ne i64 %call7, %13 - br i1 %cmp, label %if.then8, label %if.end9 + %cmp = icmp ne i64 %call8, %13 + br i1 %cmp, label %if.then9, label %if.end10 -if.then8: ; preds = %lor.lhs.false, %if.end3 +if.then9: ; preds = %lor.lhs.false, %if.end3 br label %for.end -if.end9: ; preds = %lor.lhs.false +if.end10: ; preds = %lor.lhs.false %14 = load ptr, ptr %__p, align 8 store ptr %14, ptr %__prev_p, align 8 br label %for.inc -for.inc: ; preds = %if.end9 +for.inc: ; preds = %if.end10 %15 = load ptr, ptr %__p, align 8 - %call10 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #5 - store ptr %call10, ptr %__p, align 8 - br label %for.cond, !llvm.loop !8 + %call11 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #12 + store ptr %call11, ptr %__p, align 8 + br label %for.cond, !llvm.loop !9 -for.end: ; preds = %if.then8 +for.end: ; preds = %if.then9 store ptr null, ptr %retval, align 8 br label %return @@ -1866,7 +1970,7 @@ return: ; preds = %for.end, %if.then2, } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_equalsERKS3_mPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k, i64 noundef %__c, ptr noundef %__n) #0 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE12_M_equals_trIS3_EEbRKT_mRKNS_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k, i64 noundef %__c, ptr noundef nonnull align 8 dereferenceable(8) %__n) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__k.addr = alloca ptr, align 8 @@ -1879,26 +1983,22 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %0 = load i64, ptr %__c.addr, align 8 %1 = load ptr, ptr %__n.addr, align 8 - %call = call noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS3_Lb0EEEE9_S_equalsEmRKSG_(i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(16) %1) + %call = call noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) %1) br i1 %call, label %land.rhs, label %land.end land.rhs: ; preds = %entry - %call2 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %2 = load ptr, ptr %__k.addr, align 8 - %call3 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) %3 = load ptr, ptr %__n.addr, align 8 - %call4 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail21_Hash_node_value_baseIPK1AE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #5 - %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRPK1AEEOT_S7_(ptr noundef nonnull align 1 dereferenceable(1) %call3, ptr noundef nonnull align 8 dereferenceable(8) %call4) - %call6 = call noundef zeroext i1 @_ZNKSt8equal_toIPK1AEclERKS2_S5_(ptr noundef nonnull align 1 dereferenceable(1) %call2, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %call5) + %call2 = call noundef zeroext i1 @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE16_M_key_equals_trIS3_EEbRKT_RKNS_16_Hash_node_valueIS3_Lb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %3) br label %land.end land.end: ; preds = %land.rhs, %entry - %4 = phi i1 [ false, %entry ], [ %call6, %land.rhs ] + %4 = phi i1 [ false, %entry ], [ %call2, %land.rhs ] ret i1 %4 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEPNS4_10_Hash_nodeIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef %__n) #2 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKNS4_16_Hash_node_valueIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef nonnull align 8 dereferenceable(8) %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__n.addr = alloca ptr, align 8 @@ -1908,12 +2008,12 @@ entry: %0 = load ptr, ptr %__n.addr, align 8 %_M_bucket_count = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 1 %1 = load i64, ptr %_M_bucket_count, align 8 - %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %0, i64 noundef %1) #5 + %call = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %0, i64 noundef %1) #12 ret i64 %call } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE16_Equal_hash_codeINS_10_Hash_nodeIS3_Lb0EEEE9_S_equalsEmRKSG_(i64 noundef %0, ptr noundef nonnull align 8 dereferenceable(16) %1) #2 comdat align 2 { +define linkonce_odr dso_local noundef zeroext i1 @_ZNSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE9_S_equalsEmRKNS_21_Hash_node_code_cacheILb0EEE(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) %1) #2 comdat align 2 { entry: %.addr = alloca i64, align 8 %.addr1 = alloca ptr, align 8 @@ -1922,263 +2022,130 @@ entry: ret i1 true } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hashtable_baseIPK1AS3_NS_9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb1ELb1EEEE5_M_eqEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef zeroext i1 @_ZNKSt8equal_toIPK1AEclERKS2_S5_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x, ptr noundef nonnull align 8 dereferenceable(8) %__y) #2 comdat align 2 { +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__n, i64 noundef %__bkt_count) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i6 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - %__y.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - store ptr %__y, ptr %__y.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - %1 = load ptr, ptr %0, align 8 - %2 = load ptr, ptr %__y.addr, align 8 - %3 = load ptr, ptr %2, align 8 - %cmp = icmp eq ptr %1, %3 - ret i1 %cmp -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRPK1AEEOT_S7_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__x.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__x, ptr %__x.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__x.addr, align 8 - ret ptr %0 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail21_Hash_node_value_baseIPK1AE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail21_Hashtable_ebo_helperILi0ESt8equal_toIPK1AELb1EE7_M_cgetEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret ptr %this1 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__bkt_count) #2 comdat align 2 personality ptr @__gxx_personality_v0 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 + %__n.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 + %ref.tmp = alloca %"struct.std::__detail::_Mod_range_hashing", align 1 + %ref.tmp2 = alloca %"struct.std::__detail::_Identity", align 1 store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 + store ptr %__n, ptr %__n.addr, align 8 store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %0 = load ptr, ptr %__n.addr, align 8 + store ptr %0, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i6, align 8 + %call.i8 = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1.i7) #12 + %call3 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2, ptr noundef nonnull align 8 dereferenceable(8) %call.i8) #12 + %call4 = invoke noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %call3) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %call3 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE5_M_h1Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont2 unwind label %terminate.lpad - -invoke.cont2: ; preds = %invoke.cont - %call5 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE10_M_extractEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont4 unwind label %terminate.lpad - -invoke.cont4: ; preds = %invoke.cont2 - %0 = load ptr, ptr %__p.addr, align 8 - %call6 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail21_Hash_node_value_baseIPK1AE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #5 - %call7 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail9_IdentityclIRKPK1AEEOT_S8_(ptr noundef nonnull align 1 dereferenceable(1) %call5, ptr noundef nonnull align 8 dereferenceable(8) %call6) - %1 = load ptr, ptr %call7, align 8 - %call8 = call noundef i64 @_ZNKSt4hashIPK1AEclES2_(ptr noundef nonnull align 1 dereferenceable(1) %call3, ptr noundef %1) #5 - %2 = load i64, ptr %__bkt_count.addr, align 8 - %call9 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef %call8, i64 noundef %2) #5 - ret i64 %call9 + %1 = load i64, ptr %__bkt_count.addr, align 8 + %call5 = call noundef i64 @_ZNKSt8__detail18_Mod_range_hashingclEmm(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, i64 noundef %call4, i64 noundef %1) #12 + ret i64 %call5 -terminate.lpad: ; preds = %invoke.cont2, %invoke.cont, %entry - %3 = landingpad { ptr, i32 } +terminate.lpad: ; preds = %entry + %2 = landingpad { ptr, i32 } catch ptr null - %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #16 + %3 = extractvalue { ptr, i32 } %2, 0 + call void @__clang_call_terminate(ptr %3) #14 unreachable } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt8__detail21_Hash_node_value_baseIPK1AE4_M_vEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 - ret ptr %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__k) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 + %__k.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 + store ptr %__k, ptr %__k.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %_M_storage) #5 - ret ptr %call + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE7_M_hashEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) + %0 = load ptr, ptr %__k.addr, align 8 + %1 = load ptr, ptr %0, align 8 + %call2 = call noundef i64 @_ZNKSt4hashIPK1AEclES2_(ptr noundef nonnull align 1 dereferenceable(1) %call, ptr noundef %1) #12 + ret i64 %call2 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNKSt8__detail10_AllocNodeISaINS_10_Hash_nodeIPK1ALb0EEEEEclIJRKS4_EEEPS5_DpOT_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: %this.addr = alloca ptr, align 8 + %__args.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 + store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 + %_M_h = getelementptr inbounds %"struct.std::__detail::_AllocNode", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_h, align 8 + %1 = load ptr, ptr %__args.addr, align 8 + %call = call noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE16_M_allocate_nodeIJRKS4_EEEPS5_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNK9__gnu_cxx16__aligned_bufferIPK1AE7_M_addrEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_storage = getelementptr inbounds %"struct.__gnu_cxx::__aligned_buffer", ptr %this1, i32 0, i32 0 - ret ptr %_M_storage -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail19_Node_iterator_baseIPK1ALb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %__p) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_cur = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__p.addr, align 8 - store ptr %0, ptr %_M_cur, align 8 - ret void -} - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #12 - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE16_M_allocate_nodeIJRKS4_EEEPS5_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 personality ptr @__gxx_personality_v0 { -entry: +define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE16_M_allocate_nodeIJRKS4_EEEPS5_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { +entry: + %this.addr.i7 = alloca ptr, align 8 + %__p.addr.i8 = alloca ptr, align 8 + %__args.addr.i9 = alloca ptr, align 8 + %__a.addr.i6 = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 + %__alloc = alloca ptr, align 8 %__nptr = alloca ptr, align 8 %__n = alloca ptr, align 8 - %exn.slot = alloca ptr, align 8 - %ehselector.slot = alloca i32, align 4 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - %call2 = call noundef ptr @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE8allocateERS6_m(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef 1) - store ptr %call2, ptr %__nptr, align 8 - %0 = load ptr, ptr %__nptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeIPK1ALb0EEEEPT_S7_(ptr noundef %0) #5 + store ptr %call, ptr %__alloc, align 8 + %0 = load ptr, ptr %__alloc, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + store i64 1, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i5 = call noundef ptr @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + store ptr %call.i5, ptr %__nptr, align 8 + %3 = load ptr, ptr %__nptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressINSt8__detail10_Hash_nodeIPK1ALb0EEEEPT_S7_(ptr noundef %3) #12 store ptr %call3, ptr %__n, align 8 - %1 = load ptr, ptr %__n, align 8 - call void @_ZNSt8__detail10_Hash_nodeIPK1ALb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1) #5 - %call4 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - %2 = load ptr, ptr %__n, align 8 - %call5 = call noundef ptr @_ZNSt8__detail21_Hash_node_value_baseIPK1AE9_M_valptrEv(ptr noundef nonnull align 8 dereferenceable(16) %2) #5 - %3 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE9constructIS4_JRKS4_EEEvRS6_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %call4, ptr noundef %call5, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 %4 = load ptr, ptr %__n, align 8 - ret ptr %4 - -lpad: ; preds = %entry - %5 = landingpad { ptr, i32 } - catch ptr null - %6 = extractvalue { ptr, i32 } %5, 0 - store ptr %6, ptr %exn.slot, align 8 - %7 = extractvalue { ptr, i32 } %5, 1 - store i32 %7, ptr %ehselector.slot, align 4 - br label %catch - -catch: ; preds = %lpad - %exn = load ptr, ptr %exn.slot, align 8 - %8 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %call8 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - to label %invoke.cont7 unwind label %lpad6 - -invoke.cont7: ; preds = %catch - %9 = load ptr, ptr %__nptr, align 8 - invoke void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE10deallocateERS6_PS5_m(ptr noundef nonnull align 1 dereferenceable(1) %call8, ptr noundef %9, i64 noundef 1) - to label %invoke.cont9 unwind label %lpad6 - -invoke.cont9: ; preds = %invoke.cont7 - invoke void @__cxa_rethrow() #17 - to label %unreachable unwind label %lpad6 - -lpad6: ; preds = %invoke.cont9, %invoke.cont7, %catch - %10 = landingpad { ptr, i32 } - cleanup - %11 = extractvalue { ptr, i32 } %10, 0 - store ptr %11, ptr %exn.slot, align 8 - %12 = extractvalue { ptr, i32 } %10, 1 - store i32 %12, ptr %ehselector.slot, align 4 - invoke void @__cxa_end_catch() - to label %invoke.cont10 unwind label %terminate.lpad - -invoke.cont10: ; preds = %lpad6 - br label %eh.resume - -try.cont: ; No predecessors! - call void @llvm.trap() - unreachable - -eh.resume: ; preds = %invoke.cont10 - %exn11 = load ptr, ptr %exn.slot, align 8 - %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn11, 0 - %lpad.val12 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val12 - -terminate.lpad: ; preds = %lpad6 - %13 = landingpad { ptr, i32 } - catch ptr null - %14 = extractvalue { ptr, i32 } %13, 0 - call void @__clang_call_terminate(ptr %14) #16 - unreachable - -unreachable: ; preds = %invoke.cont9 - unreachable -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE8allocateERS6_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call + call void @_ZNSt8__detail10_Hash_nodeIPK1ALb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #12 + %5 = load ptr, ptr %__alloc, align 8 + %6 = load ptr, ptr %__n, align 8 + %add.ptr = getelementptr inbounds i8, ptr %6, i64 8 + store ptr %add.ptr, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %call.i = call noundef ptr @_ZN9__gnu_cxx16__aligned_bufferIPK1AE6_M_ptrEv(ptr noundef nonnull align 8 dereferenceable(8) %this1.i) #12 + %7 = load ptr, ptr %__args.addr, align 8 + store ptr %5, ptr %__a.addr.i6, align 8 + store ptr %call.i, ptr %__p.addr.i, align 8 + store ptr %7, ptr %__args.addr.i, align 8 + %8 = load ptr, ptr %__a.addr.i6, align 8 + %9 = load ptr, ptr %__p.addr.i, align 8 + %10 = load ptr, ptr %__args.addr.i, align 8 + store ptr %8, ptr %this.addr.i7, align 8 + store ptr %9, ptr %__p.addr.i8, align 8 + store ptr %10, ptr %__args.addr.i9, align 8 + %this1.i10 = load ptr, ptr %this.addr.i7, align 8 + %11 = load ptr, ptr %__p.addr.i8, align 8 + %12 = load ptr, ptr %__args.addr.i9, align 8 + %13 = load ptr, ptr %12, align 8 + store ptr %13, ptr %11, align 8 + %14 = load ptr, ptr %__n, align 8 + ret ptr %14 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2190,289 +2157,82 @@ entry: ret ptr %0 } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail10_Hash_nodeIPK1ALb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail21_Hash_node_value_baseIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaINSt8__detail10_Hash_nodeIPK1ALb0EEEEE9constructIS4_JRKS4_EEEvRS6_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE9constructIS5_JRKS5_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -declare void @__cxa_rethrow() - -declare void @__cxa_end_catch() - -; Function Attrs: cold noreturn nounwind -declare void @llvm.trap() #13 - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - %.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end - -if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #17 - unreachable - -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 16 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #18 - ret ptr %call2 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret i64 576460752303423487 -} - -; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #14 - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail21_Hash_node_value_baseIPK1AEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #5 - %_M_storage = getelementptr inbounds %"struct.std::__detail::_Hash_node_value_base", ptr %this1, i32 0, i32 1 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE9constructIS5_JRKS5_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 - %0 = load i64, ptr %_M_next_resize, align 8 - ret i64 %0 -} - -declare { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef, i64 noundef) #1 - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmRKm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count, ptr noundef nonnull align 8 dereferenceable(8) %__state) #0 comdat align 2 personality ptr @__gxx_personality_v0 { -entry: - %this.addr = alloca ptr, align 8 - %__bkt_count.addr = alloca i64, align 8 - %__state.addr = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::integral_constant", align 1 - %exn.slot = alloca ptr, align 8 - %ehselector.slot = alloca i32, align 4 - store ptr %this, ptr %this.addr, align 8 - store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 - store ptr %__state, ptr %__state.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load i64, ptr %__bkt_count.addr, align 8 - invoke void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this1, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - br label %try.cont - -lpad: ; preds = %entry - %1 = landingpad { ptr, i32 } - catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - store ptr %2, ptr %exn.slot, align 8 - %3 = extractvalue { ptr, i32 } %1, 1 - store i32 %3, ptr %ehselector.slot, align 4 - br label %catch - -catch: ; preds = %lpad - %exn = load ptr, ptr %exn.slot, align 8 - %4 = call ptr @__cxa_begin_catch(ptr %exn) #5 - %_M_rehash_policy = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 4 - %5 = load ptr, ptr %__state.addr, align 8 - %6 = load i64, ptr %5, align 8 - invoke void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy, i64 noundef %6) - to label %invoke.cont3 unwind label %lpad2 - -invoke.cont3: ; preds = %catch - invoke void @__cxa_rethrow() #17 - to label %unreachable unwind label %lpad2 - -lpad2: ; preds = %invoke.cont3, %catch - %7 = landingpad { ptr, i32 } - cleanup - %8 = extractvalue { ptr, i32 } %7, 0 - store ptr %8, ptr %exn.slot, align 8 - %9 = extractvalue { ptr, i32 } %7, 1 - store i32 %9, ptr %ehselector.slot, align 4 - invoke void @__cxa_end_catch() - to label %invoke.cont4 unwind label %terminate.lpad - -invoke.cont4: ; preds = %lpad2 - br label %eh.resume - -try.cont: ; preds = %invoke.cont - ret void - -eh.resume: ; preds = %invoke.cont4 - %exn5 = load ptr, ptr %exn.slot, align 8 - %sel = load i32, ptr %ehselector.slot, align 4 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn5, 0 - %lpad.val6 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1 - resume { ptr, i32 } %lpad.val6 - -terminate.lpad: ; preds = %lpad2 - %10 = landingpad { ptr, i32 } - catch ptr null - %11 = extractvalue { ptr, i32 } %10, 0 - call void @__clang_call_terminate(ptr %11) #16 - unreachable - -unreachable: ; preds = %invoke.cont3 - unreachable -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeEPNS_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %0, i64 noundef %1) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail10_Hash_nodeIPK1ALb0EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - %.addr1 = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store ptr %0, ptr %.addr, align 8 - store i64 %1, ptr %.addr1, align 8 - %this2 = load ptr, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + call void @_ZNSt8__detail15_Hash_node_baseC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this1) #12 + %0 = getelementptr inbounds i8, ptr %this1, i64 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_insert_bucket_beginEmPNS4_10_Hash_nodeIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef %__node) #2 comdat align 2 { +; Function Attrs: mustprogress noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorINSt8__detail10_Hash_nodeIPK1ALb0EEEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 - %__bkt.addr = alloca i64, align 8 - %__node.addr = alloca ptr, align 8 + %__n.addr = alloca i64, align 8 + %.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 - store i64 %__bkt, ptr %__bkt.addr, align 8 - store ptr %__node, ptr %__node.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 + store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %_M_buckets, align 8 - %1 = load i64, ptr %__bkt.addr, align 8 - %arrayidx = getelementptr inbounds ptr, ptr %0, i64 %1 - %2 = load ptr, ptr %arrayidx, align 8 - %tobool = icmp ne ptr %2, null - br i1 %tobool, label %if.then, label %if.else + %1 = load i64, ptr %__n.addr, align 8 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 576460752303423487 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - %_M_buckets2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 - %3 = load ptr, ptr %_M_buckets2, align 8 - %4 = load i64, ptr %__bkt.addr, align 8 - %arrayidx3 = getelementptr inbounds ptr, ptr %3, i64 %4 - %5 = load ptr, ptr %arrayidx3, align 8 - %_M_nxt = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %5, i32 0, i32 0 - %6 = load ptr, ptr %_M_nxt, align 8 - %7 = load ptr, ptr %__node.addr, align 8 - %_M_nxt4 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %7, i32 0, i32 0 - store ptr %6, ptr %_M_nxt4, align 8 - %8 = load ptr, ptr %__node.addr, align 8 - %_M_buckets5 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 - %9 = load ptr, ptr %_M_buckets5, align 8 - %10 = load i64, ptr %__bkt.addr, align 8 - %arrayidx6 = getelementptr inbounds ptr, ptr %9, i64 %10 - %11 = load ptr, ptr %arrayidx6, align 8 - %_M_nxt7 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %11, i32 0, i32 0 - store ptr %8, ptr %_M_nxt7, align 8 - br label %if.end21 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 1152921504606846975 + br i1 %cmp2, label %if.then3, label %if.end -if.else: ; preds = %entry - %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt8 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin, i32 0, i32 0 - %12 = load ptr, ptr %_M_nxt8, align 8 - %13 = load ptr, ptr %__node.addr, align 8 - %_M_nxt9 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %13, i32 0, i32 0 - store ptr %12, ptr %_M_nxt9, align 8 - %14 = load ptr, ptr %__node.addr, align 8 - %_M_before_begin10 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_nxt11 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin10, i32 0, i32 0 - store ptr %14, ptr %_M_nxt11, align 8 - %15 = load ptr, ptr %__node.addr, align 8 - %_M_nxt12 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %15, i32 0, i32 0 - %16 = load ptr, ptr %_M_nxt12, align 8 - %tobool13 = icmp ne ptr %16, null - br i1 %tobool13, label %if.then14, label %if.end +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 + unreachable -if.then14: ; preds = %if.else - %17 = load ptr, ptr %__node.addr, align 8 - %_M_buckets15 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 - %18 = load ptr, ptr %_M_buckets15, align 8 - %19 = load ptr, ptr %__node.addr, align 8 - %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #5 - %call16 = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexEPNS4_10_Hash_nodeIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef %call) #5 - %arrayidx17 = getelementptr inbounds ptr, ptr %18, i64 %call16 - store ptr %17, ptr %arrayidx17, align 8 - br label %if.end +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #16 + unreachable -if.end: ; preds = %if.then14, %if.else - %_M_before_begin18 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 - %_M_buckets19 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 - %20 = load ptr, ptr %_M_buckets19, align 8 - %21 = load i64, ptr %__bkt.addr, align 8 - %arrayidx20 = getelementptr inbounds ptr, ptr %20, i64 %21 - store ptr %_M_before_begin18, ptr %arrayidx20, align 8 - br label %if.end21 +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 16 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #13 + ret ptr %call5 +} -if.end21: ; preds = %if.end, %if.then +; Function Attrs: noreturn +declare void @_ZSt28__throw_bad_array_new_lengthv() #11 + +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #11 + +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEEC2ERS1_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %__policy) unnamed_addr #9 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__policy.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__policy, ptr %__policy.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__policy.addr, align 8 + store ptr %0, ptr %_M_guarded_obj, align 8 + %_M_prev_state = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 1 + %1 = load ptr, ptr %__policy.addr, align 8 + %call = call noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %1) + store i64 %call, ptr %_M_prev_state, align 8 ret void } +declare { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef, i64 noundef) #1 + ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count) #0 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmSt17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt_count) #0 comdat align 2 { entry: %0 = alloca %"struct.std::integral_constant", align 1 %this.addr = alloca ptr, align 8 @@ -2503,11 +2263,12 @@ while.cond: ; preds = %if.end22, %entry while.body: ; preds = %while.cond %3 = load ptr, ptr %__p, align 8 - %call3 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #5 + %call3 = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #12 store ptr %call3, ptr %__next, align 8 %4 = load ptr, ptr %__p, align 8 + %add.ptr = getelementptr inbounds i8, ptr %4, i64 8 %5 = load i64, ptr %__bkt_count.addr, align 8 - %call4 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexEPKNS_10_Hash_nodeIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef %4, i64 noundef %5) #5 + %call4 = call noundef i64 @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE15_M_bucket_indexERKNS_16_Hash_node_valueIS3_Lb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this1, ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, i64 noundef %5) #12 store i64 %call4, ptr %__bkt, align 8 %6 = load ptr, ptr %__new_buckets, align 8 %7 = load i64, ptr %__bkt, align 8 @@ -2573,7 +2334,7 @@ if.else: ; preds = %while.body if.end22: ; preds = %if.else, %if.end %29 = load ptr, ptr %__next, align 8 store ptr %29, ptr %__p, align 8 - br label %while.cond, !llvm.loop !9 + br label %while.cond, !llvm.loop !10 while.end: ; preds = %while.cond call void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_deallocate_bucketsEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) @@ -2587,17 +2348,141 @@ while.end: ; preds = %while.cond } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %this, i64 noundef %__state) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNKSt8__detail15_Hash_code_baseIPK1AS3_NS_9_IdentityESt4hashIS3_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE13_M_store_codeERNS_21_Hash_node_code_cacheILb0EEEm(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 - %__state.addr = alloca i64, align 8 + %.addr = alloca ptr, align 8 + %.addr1 = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 - store i64 %__state, ptr %__state.addr, align 8 + store ptr %0, ptr %.addr, align 8 + store i64 %1, ptr %.addr1, align 8 + %this2 = load ptr, ptr %this.addr, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE22_M_insert_bucket_beginEmPNS4_10_Hash_nodeIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %__bkt, ptr noundef %__node) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__bkt.addr = alloca i64, align 8 + %__node.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store i64 %__bkt, ptr %__bkt.addr, align 8 + store ptr %__node, ptr %__node.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %0 = load i64, ptr %__state.addr, align 8 - %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 - store i64 %0, ptr %_M_next_resize, align 8 + %_M_buckets = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_buckets, align 8 + %1 = load i64, ptr %__bkt.addr, align 8 + %arrayidx = getelementptr inbounds ptr, ptr %0, i64 %1 + %2 = load ptr, ptr %arrayidx, align 8 + %tobool = icmp ne ptr %2, null + br i1 %tobool, label %if.then, label %if.else + +if.then: ; preds = %entry + %_M_buckets2 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 + %3 = load ptr, ptr %_M_buckets2, align 8 + %4 = load i64, ptr %__bkt.addr, align 8 + %arrayidx3 = getelementptr inbounds ptr, ptr %3, i64 %4 + %5 = load ptr, ptr %arrayidx3, align 8 + %_M_nxt = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %5, i32 0, i32 0 + %6 = load ptr, ptr %_M_nxt, align 8 + %7 = load ptr, ptr %__node.addr, align 8 + %_M_nxt4 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %7, i32 0, i32 0 + store ptr %6, ptr %_M_nxt4, align 8 + %8 = load ptr, ptr %__node.addr, align 8 + %_M_buckets5 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 + %9 = load ptr, ptr %_M_buckets5, align 8 + %10 = load i64, ptr %__bkt.addr, align 8 + %arrayidx6 = getelementptr inbounds ptr, ptr %9, i64 %10 + %11 = load ptr, ptr %arrayidx6, align 8 + %_M_nxt7 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %11, i32 0, i32 0 + store ptr %8, ptr %_M_nxt7, align 8 + br label %if.end21 + +if.else: ; preds = %entry + %_M_before_begin = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt8 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin, i32 0, i32 0 + %12 = load ptr, ptr %_M_nxt8, align 8 + %13 = load ptr, ptr %__node.addr, align 8 + %_M_nxt9 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %13, i32 0, i32 0 + store ptr %12, ptr %_M_nxt9, align 8 + %14 = load ptr, ptr %__node.addr, align 8 + %_M_before_begin10 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_nxt11 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %_M_before_begin10, i32 0, i32 0 + store ptr %14, ptr %_M_nxt11, align 8 + %15 = load ptr, ptr %__node.addr, align 8 + %_M_nxt12 = getelementptr inbounds %"struct.std::__detail::_Hash_node_base", ptr %15, i32 0, i32 0 + %16 = load ptr, ptr %_M_nxt12, align 8 + %tobool13 = icmp ne ptr %16, null + br i1 %tobool13, label %if.then14, label %if.end + +if.then14: ; preds = %if.else + %17 = load ptr, ptr %__node.addr, align 8 + %_M_buckets15 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 + %18 = load ptr, ptr %_M_buckets15, align 8 + %19 = load ptr, ptr %__node.addr, align 8 + %call = call noundef ptr @_ZNKSt8__detail10_Hash_nodeIPK1ALb0EE7_M_nextEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #12 + %add.ptr = getelementptr inbounds i8, ptr %call, i64 8 + %call16 = call noundef i64 @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_bucket_indexERKNS4_16_Hash_node_valueIS2_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(56) %this1, ptr noundef nonnull align 8 dereferenceable(8) %add.ptr) #12 + %arrayidx17 = getelementptr inbounds ptr, ptr %18, i64 %call16 + store ptr %17, ptr %arrayidx17, align 8 + br label %if.end + +if.end: ; preds = %if.then14, %if.else + %_M_before_begin18 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 2 + %_M_buckets19 = getelementptr inbounds %"class.std::_Hashtable", ptr %this1, i32 0, i32 0 + %20 = load ptr, ptr %_M_buckets19, align 8 + %21 = load i64, ptr %__bkt.addr, align 8 + %arrayidx20 = getelementptr inbounds ptr, ptr %20, i64 %21 + store ptr %_M_before_begin18, ptr %arrayidx20, align 8 + br label %if.end21 + +if.end21: ; preds = %if.end, %if.then + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZNSt8__detail17_RehashStateGuardINS_20_Prime_rehash_policyEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_guarded_obj = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_guarded_obj, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %entry + %_M_guarded_obj2 = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 0 + %1 = load ptr, ptr %_M_guarded_obj2, align 8 + %_M_prev_state = getelementptr inbounds %"struct.std::__detail::_RehashStateGuard", ptr %this1, i32 0, i32 1 + %2 = load i64, ptr %_M_prev_state, align 8 + invoke void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %1, i64 noundef %2) + to label %invoke.cont unwind label %terminate.lpad + +invoke.cont: ; preds = %if.then + br label %if.end + +if.end: ; preds = %invoke.cont, %entry ret void + +terminate.lpad: ; preds = %if.then + %3 = landingpad { ptr, i32 } + catch ptr null + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #14 + unreachable +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef i64 @_ZNKSt8__detail20_Prime_rehash_policy8_M_stateEv(ptr noundef nonnull align 8 dereferenceable(16) %this) #2 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 + %0 = load i64, ptr %_M_next_resize, align 8 + ret i64 %0 } ; Function Attrs: mustprogress noinline optnone uwtable @@ -2631,12 +2516,19 @@ return: ; preds = %if.end, %if.then ret ptr %2 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__bkt_count) #0 comdat align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: noinline optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE19_M_allocate_bucketsEm(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__bkt_count) #9 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 + %this.addr.i9 = alloca ptr, align 8 + %this.addr.i7 = alloca ptr, align 8 + %this.addr.i5 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__bkt_count.addr = alloca i64, align 8 - %__alloc = alloca %"class.std::allocator.4", align 1 + %__alloc = alloca %"class.std::allocator.2", align 1 %__ptr = alloca ptr, align 8 %exn.slot = alloca ptr, align 8 %ehselector.slot = alloca i32, align 4 @@ -2645,32 +2537,47 @@ entry: store i64 %__bkt_count, ptr %__bkt_count.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeIPK1ALb0EEEEE17_M_node_allocatorEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEEC2INS_10_Hash_nodeIPK1ALb0EEEEERKSaIT_E(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + store ptr %__alloc, ptr %this.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i9, align 8 + %this1.i10 = load ptr, ptr %this.addr.i9, align 8 %0 = load i64, ptr %__bkt_count.addr, align 8 - %call2 = invoke noundef ptr @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__alloc, i64 noundef %0) - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - store ptr %call2, ptr %__ptr, align 8 - %1 = load ptr, ptr %__ptr, align 8 - %call3 = call noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %1) #5 + store ptr %__alloc, ptr %__a.addr.i, align 8 + store i64 %0, ptr %__n.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + %2 = load i64, ptr %__n.addr.i, align 8 + %call.i11 = invoke noundef ptr @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %1, i64 noundef %2, ptr noundef null) + to label %_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit unwind label %lpad + +_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m.exit + store ptr %call.i11, ptr %__ptr, align 8 + %3 = load ptr, ptr %__ptr, align 8 + %call3 = call noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %3) #12 store ptr %call3, ptr %__p, align 8 - %2 = load ptr, ptr %__p, align 8 - %3 = load i64, ptr %__bkt_count.addr, align 8 - %mul = mul i64 %3, 8 - call void @llvm.memset.p0.i64(ptr align 8 %2, i8 0, i64 %mul, i1 false) %4 = load ptr, ptr %__p, align 8 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 - ret ptr %4 + %5 = load i64, ptr %__bkt_count.addr, align 8 + %mul = mul i64 %5, 8 + call void @llvm.memset.p0.i64(ptr align 8 %4, i8 0, i64 %mul, i1 false) + %6 = load ptr, ptr %__p, align 8 + store ptr %__alloc, ptr %this.addr.i5, align 8 + %this1.i6 = load ptr, ptr %this.addr.i5, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i6) #12 + ret ptr %6 lpad: ; preds = %entry - %5 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } cleanup - %6 = extractvalue { ptr, i32 } %5, 0 - store ptr %6, ptr %exn.slot, align 8 - %7 = extractvalue { ptr, i32 } %5, 1 - store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSaIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #5 + %8 = extractvalue { ptr, i32 } %7, 0 + store ptr %8, ptr %exn.slot, align 8 + %9 = extractvalue { ptr, i32 } %7, 1 + store i32 %9, ptr %ehselector.slot, align 4 + store ptr %__alloc, ptr %this.addr.i7, align 8 + %this1.i8 = load ptr, ptr %this.addr.i7, align 8 + call void @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i8) #12 br label %eh.resume eh.resume: ; preds = %lpad @@ -2681,19 +2588,6 @@ eh.resume: ; preds = %lpad resume { ptr, i32 } %lpad.val4 } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressIPNSt8__detail15_Hash_node_baseEEPT_S4_(ptr noundef %__ptr) #2 comdat { entry: @@ -2704,8 +2598,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPNSt8__detail15_Hash_node_baseEE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -2714,28 +2609,43 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #17 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #18 - ret ptr %call2 +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #16 + unreachable + +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #13 + ret ptr %call5 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt8__detail20_Prime_rehash_policy8_M_resetEm(ptr noundef nonnull align 8 dereferenceable(16) %this, i64 noundef %__state) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 + %__state.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 + store i64 %__state, ptr %__state.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 + %0 = load i64, ptr %__state.addr, align 8 + %_M_next_resize = getelementptr inbounds %"struct.std::__detail::_Prime_rehash_policy", ptr %this1, i32 0, i32 1 + store i64 %0, ptr %_M_next_resize, align 8 + ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -2746,39 +2656,30 @@ entry: store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef ptr @_ZNKSt10_HashtableIPK1AS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE8_M_beginEv(ptr noundef nonnull align 8 dereferenceable(56) %this1) - call void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %call) #5 + call void @_ZNSt8__detail14_Node_iteratorIPK1ALb1ELb0EEC2EPNS_10_Hash_nodeIS3_Lb0EEE(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef %call) #12 %coerce.dive = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %retval, i32 0, i32 0 %coerce.dive2 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %coerce.dive, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive2, align 8 ret ptr %0 } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_unordered_set_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #11 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #13 = { cold noreturn nounwind } -attributes #14 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { builtin allocsize(0) } -attributes #16 = { noreturn nounwind } -attributes #17 = { noreturn } -attributes #18 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #8 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #12 = { nounwind } +attributes #13 = { builtin allocsize(0) } +attributes #14 = { noreturn nounwind } +attributes #15 = { builtin nounwind } +attributes #16 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -2788,8 +2689,9 @@ attributes #18 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} !9 = distinct !{!9, !7} +!10 = distinct !{!10, !7} diff --git a/test_cases_bc/basic_cpp_tests/variant-gep.cpp.bc b/test_cases_bc/basic_cpp_tests/variant-gep.cpp.bc index c3207efd..7f56e029 100644 --- a/test_cases_bc/basic_cpp_tests/variant-gep.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/variant-gep.cpp.bc @@ -50,4 +50,4 @@ attributes #2 = { builtin allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/vector-1.cpp.bc b/test_cases_bc/basic_cpp_tests/vector-1.cpp.bc index 0816d57a..7d267585 100644 --- a/test_cases_bc/basic_cpp_tests/vector-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/vector-1.cpp.bc @@ -3,14 +3,15 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/v target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::vector" = type { %"struct.std::_Vector_base" } %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base>::_Vector_impl" } %"struct.std::_Vector_base>::_Vector_impl" = type { %"struct.std::_Vector_base>::_Vector_impl_data" } %"struct.std::_Vector_base>::_Vector_impl_data" = type { ptr, ptr, ptr } %class.A = type { ptr } %"class.__gnu_cxx::__normal_iterator" = type { ptr } -%"struct.std::integral_constant" = type { i8 } +%struct._Guard = type { ptr, i64, ptr } $_ZNSt6vectorI1ASaIS0_EEC2Ev = comdat any @@ -26,16 +27,10 @@ $_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev = comdat any $_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev = comdat any -$_ZNSaI1AEC2Ev = comdat any - $_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any -$_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E = comdat any - $_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any $__clang_call_terminate = comdat any @@ -50,21 +45,11 @@ $_ZNSt12_Vector_baseI1ASaIS0_EE13_M_deallocateEPS0_m = comdat any $_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m = comdat any +$_ZNSt15__new_allocatorI1AE10deallocateEPS0_m = comdat any -$_ZNSaI1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AED2Ev = comdat any - -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_ = comdat any - -$_ZNSt6vectorI1ASaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_ = comdat any - -$_ZNSt6vectorI1ASaIS0_EE3endEv = comdat any +$_ZNSt15__new_allocatorI1AED2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_ = comdat any +$_ZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_ = comdat any $_ZN1AC2ERKS_ = comdat any @@ -72,13 +57,19 @@ $_ZNKSt6vectorI1ASaIS0_EE12_M_check_lenEmPKc = comdat any $_ZN9__gnu_cxxmiIP1ASt6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS9_SC_ = comdat any +$_ZNSt6vectorI1ASaIS0_EE3endEv = comdat any + $_ZNSt6vectorI1ASaIS0_EE5beginEv = comdat any $_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm = comdat any +$_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardC2EPS0_mRS1_ = comdat any + +$_ZSt12__to_addressI1AEPT_S2_ = comdat any + $_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_ = comdat any -$_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv = comdat any +$_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardD2Ev = comdat any $_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv = comdat any @@ -90,21 +81,13 @@ $_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_ = comdat any $_ZNKSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv = comdat any +$_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv = comdat any $_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv = comdat any - -$_ZNSt6vectorI1ASaIS0_EE14_S_do_relocateEPS0_S3_S3_RS1_St17integral_constantIbLb1EE = comdat any +$_ZNSt15__new_allocatorI1AE8allocateEmPKv = comdat any $_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_ = comdat any @@ -114,16 +97,8 @@ $_ZSt12__niter_baseIP1AET_S2_ = comdat any $_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JS0_EEEvRS1_PT_DpOT0_ = comdat any - -$_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_ = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JS1_EEEvPT_DpOT0_ = comdat any - $_ZN1AC2EOS_ = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -133,16 +108,13 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_vector_1.cpp, ptr null }] +@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_append\00", align 1 ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -277,24 +249,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -309,13 +265,13 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #10 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #10 invoke void @_ZNSt6vectorI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %vec, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorI1ASaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %vec, i64 noundef 0) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorI1ASaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %vec, i64 noundef 0) #10 store ptr %call, ptr %aptr, align 8 %0 = load ptr, ptr %aptr, align 8 %1 = load ptr, ptr %ptr, align 8 @@ -327,7 +283,7 @@ invoke.cont: ; preds = %entry invoke.cont1: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #10 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -338,7 +294,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #10 br label %eh.resume eh.resume: ; preds = %lpad @@ -350,17 +306,17 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + call void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -372,9 +328,14 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i8 = alloca ptr, align 8 + %__args.addr.i9 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 - %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -393,22 +354,29 @@ if.then: ; preds = %entry %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl4, i32 0, i32 1 %2 = load ptr, ptr %_M_finish5, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl3, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl3, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i8, align 8 + store ptr %6, ptr %__args.addr.i9, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i8, align 8 + %8 = load ptr, ptr %__args.addr.i9, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #10 %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl6, i32 0, i32 1 - %4 = load ptr, ptr %_M_finish7, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %4, i32 1 + %9 = load ptr, ptr %_M_finish7, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %9, i32 1 store ptr %incdec.ptr, ptr %_M_finish7, align 8 br label %if.end if.else: ; preds = %entry - %call = call ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %agg.tmp, i32 0, i32 0 - store ptr %call, ptr %coerce.dive, align 8 - %5 = load ptr, ptr %__x.addr, align 8 - %coerce.dive8 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %agg.tmp, i32 0, i32 0 - %6 = load ptr, ptr %coerce.dive8, align 8 - call void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr %6, ptr noundef nonnull align 8 dereferenceable(8) %5) + %10 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef nonnull align 8 dereferenceable(8) %10) br label %if.end if.end: ; preds = %if.else, %if.then @@ -434,8 +402,11 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__first.addr.i = alloca ptr, align 8 + %__last.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -445,56 +416,59 @@ entry: %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 %1 = load ptr, ptr %_M_finish, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - invoke void @_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E(ptr noundef %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %call) - to label %invoke.cont unwind label %terminate.lpad - -invoke.cont: ; preds = %entry - call void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + store ptr %0, ptr %__first.addr.i, align 8 + store ptr %1, ptr %__last.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %2 = load ptr, ptr %__first.addr.i, align 8 + %3 = load ptr, ptr %__last.addr.i, align 8 + invoke void @_ZSt8_DestroyIP1AEvT_S2_(ptr noundef %2, ptr noundef %3) + to label %_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E.exit unwind label %terminate.lpad + +_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E.exit + call void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %4 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #11 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -508,15 +482,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -531,21 +496,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef nonnull align 1 dereferenceable(1) %0) #0 comdat { -entry: - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - call void @_ZSt8_DestroyIP1AEvT_S2_(ptr noundef %1, ptr noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -557,9 +507,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #12 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #10 + call void @_ZSt9terminatev() #11 unreachable } @@ -568,7 +518,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -591,14 +541,14 @@ entry: invoke.cont: ; preds = %entry %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #5 + call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #10 ret void terminate.lpad: ; preds = %entry %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #12 + call void @__clang_call_terminate(ptr %4) #11 unreachable } @@ -628,6 +578,9 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE13_M_deallocateEPS0_m(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -643,7 +596,13 @@ if.then: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load ptr, ptr %__p.addr, align 8 %2 = load i64, ptr %__n.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %1, i64 noundef %2) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 %2, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) br label %if.end if.end: ; preds = %if.then, %entry @@ -651,206 +610,164 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #12 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #9 +declare void @_ZdlPv(ptr noundef) #6 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 ret void } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr %__position.coerce, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { -entry: - %__position = alloca %"class.__gnu_cxx::__normal_iterator", align 8 +define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { +entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i22 = alloca ptr, align 8 + %__args.addr.i23 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__len = alloca i64, align 8 %__old_start = alloca ptr, align 8 %__old_finish = alloca ptr, align 8 - %__elems_before = alloca i64, align 8 + %__elems = alloca i64, align 8 %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 8 + %ref.tmp4 = alloca %"class.__gnu_cxx::__normal_iterator", align 8 %__new_start = alloca ptr, align 8 %__new_finish = alloca ptr, align 8 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %__position, i32 0, i32 0 - store ptr %__position.coerce, ptr %coerce.dive, align 8 + %__guard = alloca %struct._Guard, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE12_M_check_lenEmPKc(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef 1, ptr noundef @.str.3) store i64 %call, ptr %__len, align 8 + %0 = load i64, ptr %__len, align 8 + %cmp = icmp ule i64 %0, 0 + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + unreachable + +if.end: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - %0 = load ptr, ptr %_M_start, align 8 - store ptr %0, ptr %__old_start, align 8 + %1 = load ptr, ptr %_M_start, align 8 + store ptr %1, ptr %__old_start, align 8 %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 - %1 = load ptr, ptr %_M_finish, align 8 - store ptr %1, ptr %__old_finish, align 8 - %call3 = call ptr @_ZNSt6vectorI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive4 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %ref.tmp, i32 0, i32 0 - store ptr %call3, ptr %coerce.dive4, align 8 - %call5 = call noundef i64 @_ZN9__gnu_cxxmiIP1ASt6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS9_SC_(ptr noundef nonnull align 8 dereferenceable(8) %__position, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 - store i64 %call5, ptr %__elems_before, align 8 - %2 = load i64, ptr %__len, align 8 - %call6 = call noundef ptr @_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %2) - store ptr %call6, ptr %__new_start, align 8 - %3 = load ptr, ptr %__new_start, align 8 - store ptr %3, ptr %__new_finish, align 8 - %_M_impl7 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_finish, align 8 + store ptr %2, ptr %__old_finish, align 8 + %call3 = call ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %ref.tmp, i32 0, i32 0 + store ptr %call3, ptr %coerce.dive, align 8 + %call5 = call ptr @_ZNSt6vectorI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %coerce.dive6 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %ref.tmp4, i32 0, i32 0 + store ptr %call5, ptr %coerce.dive6, align 8 + %call7 = call noundef i64 @_ZN9__gnu_cxxmiIP1ASt6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS9_SC_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp4) #10 + store i64 %call7, ptr %__elems, align 8 + %3 = load i64, ptr %__len, align 8 + %call8 = call noundef ptr @_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %3) + store ptr %call8, ptr %__new_start, align 8 %4 = load ptr, ptr %__new_start, align 8 - %5 = load i64, ptr %__elems_before, align 8 - %add.ptr = getelementptr inbounds %class.A, ptr %4, i64 %5 - %6 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl7, ptr noundef %add.ptr, ptr noundef nonnull align 8 dereferenceable(8) %6) #5 - store ptr null, ptr %__new_finish, align 8 - %7 = load ptr, ptr %__old_start, align 8 - %call8 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %8 = load ptr, ptr %call8, align 8 - %9 = load ptr, ptr %__new_start, align 8 - %call9 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call10 = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull align 1 dereferenceable(1) %call9) #5 - store ptr %call10, ptr %__new_finish, align 8 - %10 = load ptr, ptr %__new_finish, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %10, i32 1 - store ptr %incdec.ptr, ptr %__new_finish, align 8 - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %11 = load ptr, ptr %call11, align 8 - %12 = load ptr, ptr %__old_finish, align 8 - %13 = load ptr, ptr %__new_finish, align 8 - %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call13 = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull align 1 dereferenceable(1) %call12) #5 + store ptr %4, ptr %__new_finish, align 8 + %5 = load ptr, ptr %__new_start, align 8 + %6 = load i64, ptr %__len, align 8 + %_M_impl9 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + call void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardC2EPS0_mRS1_(ptr noundef nonnull align 8 dereferenceable(24) %__guard, ptr noundef %5, i64 noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %_M_impl9) + %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %7 = load ptr, ptr %__new_start, align 8 + %8 = load i64, ptr %__elems, align 8 + %add.ptr = getelementptr inbounds %class.A, ptr %7, i64 %8 + %call11 = call noundef ptr @_ZSt12__to_addressI1AEPT_S2_(ptr noundef %add.ptr) #10 + %9 = load ptr, ptr %__args.addr, align 8 + store ptr %_M_impl10, ptr %__a.addr.i, align 8 + store ptr %call11, ptr %__p.addr.i, align 8 + store ptr %9, ptr %__args.addr.i, align 8 + %10 = load ptr, ptr %__a.addr.i, align 8 + %11 = load ptr, ptr %__p.addr.i, align 8 + %12 = load ptr, ptr %__args.addr.i, align 8 + store ptr %10, ptr %this.addr.i, align 8 + store ptr %11, ptr %__p.addr.i22, align 8 + store ptr %12, ptr %__args.addr.i23, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %13 = load ptr, ptr %__p.addr.i22, align 8 + %14 = load ptr, ptr %__args.addr.i23, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #10 + %15 = load ptr, ptr %__old_start, align 8 + %16 = load ptr, ptr %__old_finish, align 8 + %17 = load ptr, ptr %__new_start, align 8 + %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call13 = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef nonnull align 1 dereferenceable(1) %call12) #10 store ptr %call13, ptr %__new_finish, align 8 - %14 = load ptr, ptr %__old_start, align 8 + %18 = load ptr, ptr %__new_finish, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %18, i32 1 + store ptr %incdec.ptr, ptr %__new_finish, align 8 + %19 = load ptr, ptr %__old_start, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 0 + store ptr %19, ptr %_M_storage, align 8 %_M_impl14 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl14, i32 0, i32 2 - %15 = load ptr, ptr %_M_end_of_storage, align 8 - %16 = load ptr, ptr %__old_start, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %15 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %16 to i64 + %20 = load ptr, ptr %_M_end_of_storage, align 8 + %21 = load ptr, ptr %__old_start, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %20 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %21 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE13_M_deallocateEPS0_m(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %14, i64 noundef %sub.ptr.div) - %17 = load ptr, ptr %__new_start, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 1 + store i64 %sub.ptr.div, ptr %_M_len, align 8 + call void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %__guard) #10 + %22 = load ptr, ptr %__new_start, align 8 %_M_impl15 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start16 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl15, i32 0, i32 0 - store ptr %17, ptr %_M_start16, align 8 - %18 = load ptr, ptr %__new_finish, align 8 + store ptr %22, ptr %_M_start16, align 8 + %23 = load ptr, ptr %__new_finish, align 8 %_M_impl17 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish18 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl17, i32 0, i32 1 - store ptr %18, ptr %_M_finish18, align 8 - %19 = load ptr, ptr %__new_start, align 8 - %20 = load i64, ptr %__len, align 8 - %add.ptr19 = getelementptr inbounds %class.A, ptr %19, i64 %20 + store ptr %23, ptr %_M_finish18, align 8 + %24 = load ptr, ptr %__new_start, align 8 + %25 = load i64, ptr %__len, align 8 + %add.ptr19 = getelementptr inbounds %class.A, ptr %24, i64 %25 %_M_impl20 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage21 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl20, i32 0, i32 2 store ptr %add.ptr19, ptr %_M_end_of_storage21, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %retval = alloca %"class.__gnu_cxx::__normal_iterator", align 8 - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 - call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %retval, i32 0, i32 0 - %0 = load ptr, ptr %coerce.dive, align 8 - ret ptr %0 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 - ret void -} - ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -873,8 +790,8 @@ entry: store i64 %__n, ptr %__n.addr, align 8 store ptr %__s, ptr %__s.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call2 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %sub = sub i64 %call, %call2 %0 = load i64, ptr %__n.addr, align 8 %cmp = icmp ult i64 %sub, %0 @@ -886,26 +803,26 @@ if.then: ; preds = %entry unreachable if.end: ; preds = %entry - %call3 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call4 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call3 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call4 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 store i64 %call4, ptr %ref.tmp, align 8 %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %__n.addr) %2 = load i64, ptr %call5, align 8 %add = add i64 %call3, %2 store i64 %add, ptr %__len, align 8 %3 = load i64, ptr %__len, align 8 - %call6 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call6 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %cmp7 = icmp ult i64 %3, %call6 br i1 %cmp7, label %cond.true, label %lor.lhs.false lor.lhs.false: ; preds = %if.end %4 = load i64, ptr %__len, align 8 - %call8 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call8 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %cmp9 = icmp ugt i64 %4, %call8 br i1 %cmp9, label %cond.true, label %cond.false cond.true: ; preds = %lor.lhs.false, %if.end - %call10 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call10 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 br label %cond.end cond.false: ; preds = %lor.lhs.false @@ -925,10 +842,10 @@ entry: store ptr %__lhs, ptr %__lhs.addr, align 8 store ptr %__rhs, ptr %__rhs.addr, align 8 %0 = load ptr, ptr %__lhs.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #10 %1 = load ptr, ptr %call, align 8 %2 = load ptr, ptr %__rhs.addr, align 8 - %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #10 %3 = load ptr, ptr %call1, align 8 %sub.ptr.lhs.cast = ptrtoint ptr %1 to i64 %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 @@ -937,6 +854,21 @@ entry: ret i64 %sub.ptr.div } +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { +entry: + %retval = alloca %"class.__gnu_cxx::__normal_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 + call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #10 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local ptr @_ZNSt6vectorI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -946,7 +878,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #5 + call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #10 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 @@ -955,6 +887,8 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 @@ -967,17 +901,54 @@ entry: cond.true: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %1) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %2, i64 noundef %3, ptr noundef null) br label %cond.end cond.false: ; preds = %entry br label %cond.end cond.end: ; preds = %cond.false, %cond.true - %cond = phi ptr [ %call, %cond.true ], [ null, %cond.false ] + %cond = phi ptr [ %call.i, %cond.true ], [ null, %cond.false ] ret ptr %cond } +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardC2EPS0_mRS1_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__s, i64 noundef %__l, ptr noundef nonnull align 1 dereferenceable(1) %__a) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__s.addr = alloca ptr, align 8 + %__l.addr = alloca i64, align 8 + %__a.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__s, ptr %__s.addr, align 8 + store i64 %__l, ptr %__l.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__s.addr, align 8 + store ptr %0, ptr %_M_storage, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %1 = load i64, ptr %__l.addr, align 8 + store i64 %1, ptr %_M_len, align 8 + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %2 = load ptr, ptr %__a.addr, align 8 + store ptr %2, ptr %_M_alloc, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressI1AEPT_S2_(ptr noundef %__ptr) #2 comdat { +entry: + %__ptr.addr = alloca ptr, align 8 + store ptr %__ptr, ptr %__ptr.addr, align 8 + %0 = load ptr, ptr %__ptr.addr, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { entry: @@ -985,7 +956,6 @@ entry: %__last.addr = alloca ptr, align 8 %__result.addr = alloca ptr, align 8 %__alloc.addr = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::integral_constant", align 1 store ptr %__first, ptr %__first.addr, align 8 store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 @@ -994,18 +964,52 @@ entry: %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 %3 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE14_S_do_relocateEPS0_S3_S3_RS1_St17integral_constantIbLb1EE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call = call noundef ptr @_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #10 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %this1, i32 0, i32 0 - ret ptr %_M_current + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_storage, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %entry + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %1 = load ptr, ptr %_M_alloc, align 8 + %_M_storage2 = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_storage2, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %3 = load i64, ptr %_M_len, align 8 + store ptr %1, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 %3, ptr %__n.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef %5, i64 noundef %6) + br label %invoke.cont + +invoke.cont: ; preds = %if.then + br label %if.end + +if.end: ; preds = %invoke.cont, %entry + ret void + +terminate.lpad: ; No predecessors! + %7 = landingpad { ptr, i32 } + catch ptr null + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #11 + unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1014,8 +1018,8 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call2 = call noundef i64 @_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #10 ret i64 %call2 } @@ -1038,8 +1042,8 @@ entry: ret i64 %sub.ptr.div } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #10 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #7 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { @@ -1074,26 +1078,34 @@ return: ; preds = %if.end, %if.then ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 1152921504606846975, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #11 unreachable } @@ -1107,16 +1119,6 @@ entry: ret ptr %_M_impl } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1148,26 +1150,17 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 + %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %this1, i32 0, i32 0 + ret ptr %_M_current } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__i.addr = alloca ptr, align 8 @@ -1182,21 +1175,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1205,46 +1186,39 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable + +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #10 +declare void @_ZSt28__throw_bad_array_new_lengthv() #8 -; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #11 +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #8 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt6vectorI1ASaIS0_EE14_S_do_relocateEPS0_S3_S3_RS1_St17integral_constantIbLb1EE(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { -entry: - %0 = alloca %"struct.std::integral_constant", align 1 - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %__result.addr = alloca ptr, align 8 - %__alloc.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %__result, ptr %__result.addr, align 8 - store ptr %__alloc, ptr %__alloc.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - %3 = load ptr, ptr %__result.addr, align 8 - %4 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 1 dereferenceable(1) %4) #5 - ret ptr %call -} +; Function Attrs: nobuiltin allocsize(0) +declare noundef nonnull ptr @_Znwm(i64 noundef) #9 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { @@ -1258,13 +1232,13 @@ entry: store ptr %__result, ptr %__result.addr, align 8 store ptr %__alloc, ptr %__alloc.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %0) #10 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %1) #10 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %2) #10 %3 = load ptr, ptr %__alloc.addr, align 8 - %call3 = call noundef ptr @_ZSt14__relocate_a_1IP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call3 = call noundef ptr @_ZSt14__relocate_a_1IP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #10 ret ptr %call3 } @@ -1294,7 +1268,7 @@ for.body: ; preds = %for.cond %3 = load ptr, ptr %__cur, align 8 %4 = load ptr, ptr %__first.addr, align 8 %5 = load ptr, ptr %__alloc.addr, align 8 - call void @_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull align 1 dereferenceable(1) %5) #5 + call void @_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull align 1 dereferenceable(1) %5) #10 br label %for.inc for.inc: ; preds = %for.body @@ -1323,6 +1297,16 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_(ptr noalias noundef %__dest, ptr noalias noundef %__orig, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { entry: + %this.addr.i5 = alloca ptr, align 8 + %__p.addr.i6 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__args.addr.i4 = alloca ptr, align 8 + %__a.addr.i1 = alloca ptr, align 8 + %__p.addr.i2 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %__dest.addr = alloca ptr, align 8 %__orig.addr = alloca ptr, align 8 %__alloc.addr = alloca ptr, align 8 @@ -1332,60 +1316,34 @@ entry: %0 = load ptr, ptr %__alloc.addr, align 8 %1 = load ptr, ptr %__dest.addr, align 8 %2 = load ptr, ptr %__orig.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__alloc.addr, align 8 - %4 = load ptr, ptr %__orig.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 + store ptr %0, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i3, align 8 + store ptr %5, ptr %__args.addr.i4, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i3, align 8 + %7 = load ptr, ptr %__args.addr.i4, align 8 + call void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10 + %8 = load ptr, ptr %__alloc.addr, align 8 + %9 = load ptr, ptr %__orig.addr, align 8 + store ptr %8, ptr %__a.addr.i1, align 8 + store ptr %9, ptr %__p.addr.i2, align 8 + %10 = load ptr, ptr %__a.addr.i1, align 8 + %11 = load ptr, ptr %__p.addr.i2, align 8 + store ptr %10, ptr %this.addr.i5, align 8 + store ptr %11, ptr %__p.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i5, align 8 + %12 = load ptr, ptr %__p.addr.i6, align 8 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -1396,40 +1354,22 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_vector_1.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { noreturn nounwind } -attributes #13 = { noreturn } -attributes #14 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nounwind } +attributes #11 = { noreturn nounwind } +attributes #12 = { builtin nounwind } +attributes #13 = { cold noreturn } +attributes #14 = { noreturn } +attributes #15 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1439,6 +1379,6 @@ attributes #14 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/vector-2.cpp.bc b/test_cases_bc/basic_cpp_tests/vector-2.cpp.bc index a039f70f..2b7713ac 100644 --- a/test_cases_bc/basic_cpp_tests/vector-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/vector-2.cpp.bc @@ -3,13 +3,14 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/v target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::vector" = type { %"struct.std::_Vector_base" } %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base>::_Vector_impl" } %"struct.std::_Vector_base>::_Vector_impl" = type { %"struct.std::_Vector_base>::_Vector_impl_data" } %"struct.std::_Vector_base>::_Vector_impl_data" = type { ptr, ptr, ptr } %"class.__gnu_cxx::__normal_iterator" = type { ptr } -%"struct.std::integral_constant" = type { i8 } +%struct._Guard = type { ptr, i64, ptr } $_ZNSt6vectorIP1ASaIS1_EEC2Ev = comdat any @@ -25,16 +26,10 @@ $_ZNSt12_Vector_baseIP1ASaIS1_EEC2Ev = comdat any $_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implC2Ev = comdat any -$_ZNSaIP1AEC2Ev = comdat any - $_ZNSt12_Vector_baseIP1ASaIS1_EE17_Vector_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any -$_ZSt8_DestroyIPP1AS1_EvT_S3_RSaIT0_E = comdat any - $_ZNSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv = comdat any $__clang_call_terminate = comdat any @@ -49,33 +44,29 @@ $_ZNSt12_Vector_baseIP1ASaIS1_EE13_M_deallocateEPS1_m = comdat any $_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m = comdat any - -$_ZNSaIP1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AED2Ev = comdat any - -$_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_ = comdat any +$_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m = comdat any -$_ZNSt6vectorIP1ASaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_ = comdat any +$_ZNSt15__new_allocatorIP1AED2Ev = comdat any -$_ZNSt6vectorIP1ASaIS1_EE3endEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE9constructIS2_JRKS2_EEEvPT_DpOT0_ = comdat any +$_ZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_ = comdat any $_ZNKSt6vectorIP1ASaIS1_EE12_M_check_lenEmPKc = comdat any $_ZN9__gnu_cxxmiIPP1ASt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_ = comdat any +$_ZNSt6vectorIP1ASaIS1_EE3endEv = comdat any + $_ZNSt6vectorIP1ASaIS1_EE5beginEv = comdat any $_ZNSt12_Vector_baseIP1ASaIS1_EE11_M_allocateEm = comdat any +$_ZZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_EN6_GuardC2EPS1_mRS2_ = comdat any + +$_ZSt12__to_addressIP1AEPT_S3_ = comdat any + $_ZNSt6vectorIP1ASaIS1_EE11_S_relocateEPS1_S4_S4_RS2_ = comdat any -$_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv = comdat any +$_ZZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_EN6_GuardD2Ev = comdat any $_ZNKSt6vectorIP1ASaIS1_EE8max_sizeEv = comdat any @@ -87,21 +78,13 @@ $_ZNSt6vectorIP1ASaIS1_EE11_S_max_sizeERKS2_ = comdat any $_ZNKSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8max_sizeERKS2_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorIP1AE8max_sizeEv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv = comdat any +$_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv = comdat any $_ZN9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEEC2ERKS3_ = comdat any -$_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv = comdat any - -$_ZNSt6vectorIP1ASaIS1_EE14_S_do_relocateEPS1_S4_S4_RS2_St17integral_constantIbLb1EE = comdat any +$_ZNSt15__new_allocatorIP1AE8allocateEmPKv = comdat any $_ZSt12__relocate_aIPP1AS2_SaIS1_EET0_T_S5_S4_RT1_ = comdat any @@ -118,16 +101,13 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_vector_2.cpp, ptr null }] +@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_append\00", align 1 ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -262,24 +242,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -294,18 +258,18 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt6vectorIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 - %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #13 + call void @_ZNSt6vectorIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #11 + %call = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #12 to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #5 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %call) #11 store ptr %call, ptr %a, align 8 invoke void @_ZNSt6vectorIP1ASaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %vec, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont1 unwind label %lpad invoke.cont1: ; preds = %invoke.cont - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP1ASaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %vec, i64 noundef 0) #5 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP1ASaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %vec, i64 noundef 0) #11 %0 = load ptr, ptr %call2, align 8 store ptr %0, ptr %aptr, align 8 %1 = load ptr, ptr %aptr, align 8 @@ -318,7 +282,7 @@ invoke.cont1: ; preds = %invoke.cont invoke.cont3: ; preds = %invoke.cont1 store i32 0, ptr %retval, align 4 - call void @_ZNSt6vectorIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #11 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -329,7 +293,7 @@ lpad: ; preds = %invoke.cont1, %invo store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt6vectorIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #11 br label %eh.resume eh.resume: ; preds = %lpad @@ -341,22 +305,22 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt6vectorIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt12_Vector_baseIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + call void @_ZNSt12_Vector_baseIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 ret void } ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #8 +declare noundef nonnull ptr @_Znwm(i64 noundef) #5 declare i32 @__gxx_personality_v0(...) ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -368,9 +332,14 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt6vectorIP1ASaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i8 = alloca ptr, align 8 + %__args.addr.i9 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 - %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -389,22 +358,30 @@ if.then: ; preds = %entry %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl4, i32 0, i32 1 %2 = load ptr, ptr %_M_finish5, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl3, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl3, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i8, align 8 + store ptr %6, ptr %__args.addr.i9, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i8, align 8 + %8 = load ptr, ptr %__args.addr.i9, align 8 + %9 = load ptr, ptr %8, align 8 + store ptr %9, ptr %7, align 8 %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl6, i32 0, i32 1 - %4 = load ptr, ptr %_M_finish7, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %4, i32 1 + %10 = load ptr, ptr %_M_finish7, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 store ptr %incdec.ptr, ptr %_M_finish7, align 8 br label %if.end if.else: ; preds = %entry - %call = call ptr @_ZNSt6vectorIP1ASaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %agg.tmp, i32 0, i32 0 - store ptr %call, ptr %coerce.dive, align 8 - %5 = load ptr, ptr %__x.addr, align 8 - %coerce.dive8 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %agg.tmp, i32 0, i32 0 - %6 = load ptr, ptr %coerce.dive8, align 8 - call void @_ZNSt6vectorIP1ASaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr %6, ptr noundef nonnull align 8 dereferenceable(8) %5) + %11 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef nonnull align 8 dereferenceable(8) %11) br label %if.end if.end: ; preds = %if.else, %if.then @@ -428,8 +405,11 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt6vectorIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__first.addr.i = alloca ptr, align 8 + %__last.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -439,56 +419,59 @@ entry: %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 %1 = load ptr, ptr %_M_finish, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - invoke void @_ZSt8_DestroyIPP1AS1_EvT_S3_RSaIT0_E(ptr noundef %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %call) - to label %invoke.cont unwind label %terminate.lpad - -invoke.cont: ; preds = %entry - call void @_ZNSt12_Vector_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + store ptr %0, ptr %__first.addr.i, align 8 + store ptr %1, ptr %__last.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %2 = load ptr, ptr %__first.addr.i, align 8 + %3 = load ptr, ptr %__last.addr.i, align 8 + invoke void @_ZSt8_DestroyIPP1AEvT_S3_(ptr noundef %2, ptr noundef %3) + to label %_ZSt8_DestroyIPP1AS1_EvT_S3_RSaIT0_E.exit unwind label %terminate.lpad + +_ZSt8_DestroyIPP1AS1_EvT_S3_RSaIT0_E.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZSt8_DestroyIPP1AS1_EvT_S3_RSaIT0_E.exit + call void @_ZNSt12_Vector_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %4 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #14 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #13 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt12_Vector_baseIP1ASaIS1_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + call void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #11 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt12_Vector_baseIP1ASaIS1_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -502,15 +485,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -525,21 +499,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZSt8_DestroyIPP1AS1_EvT_S3_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef nonnull align 1 dereferenceable(1) %0) #0 comdat { -entry: - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - call void @_ZSt8_DestroyIPP1AEvT_S3_(ptr noundef %1, ptr noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -551,9 +510,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #9 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #14 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #6 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #11 + call void @_ZSt9terminatev() #13 unreachable } @@ -562,7 +521,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -585,14 +544,14 @@ entry: invoke.cont: ; preds = %entry %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #5 + call void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #11 ret void terminate.lpad: ; preds = %entry %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #14 + call void @__clang_call_terminate(ptr %4) #13 unreachable } @@ -622,6 +581,9 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EE13_M_deallocateEPS1_m(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -637,7 +599,13 @@ if.then: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load ptr, ptr %__p.addr, align 8 %2 = load i64, ptr %__n.addr, align 8 - call void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %1, i64 noundef %2) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 %2, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) br label %if.end if.end: ; preds = %if.then, %entry @@ -645,61 +613,38 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIP1ASaIS1_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE10deallocateERS2_PS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #11 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #14 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #10 - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} +declare void @_ZdlPv(ptr noundef) #7 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIP1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -707,143 +652,124 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIP1AE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorIP1ASaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr %__position.coerce, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: - %__position = alloca %"class.__gnu_cxx::__normal_iterator", align 8 + %this.addr.i = alloca ptr, align 8 + %__p.addr.i22 = alloca ptr, align 8 + %__args.addr.i23 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__len = alloca i64, align 8 %__old_start = alloca ptr, align 8 %__old_finish = alloca ptr, align 8 - %__elems_before = alloca i64, align 8 + %__elems = alloca i64, align 8 %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 8 + %ref.tmp4 = alloca %"class.__gnu_cxx::__normal_iterator", align 8 %__new_start = alloca ptr, align 8 %__new_finish = alloca ptr, align 8 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %__position, i32 0, i32 0 - store ptr %__position.coerce, ptr %coerce.dive, align 8 + %__guard = alloca %struct._Guard, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE12_M_check_lenEmPKc(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef 1, ptr noundef @.str.3) store i64 %call, ptr %__len, align 8 + %0 = load i64, ptr %__len, align 8 + %cmp = icmp ule i64 %0, 0 + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + unreachable + +if.end: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - %0 = load ptr, ptr %_M_start, align 8 - store ptr %0, ptr %__old_start, align 8 + %1 = load ptr, ptr %_M_start, align 8 + store ptr %1, ptr %__old_start, align 8 %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 - %1 = load ptr, ptr %_M_finish, align 8 - store ptr %1, ptr %__old_finish, align 8 - %call3 = call ptr @_ZNSt6vectorIP1ASaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive4 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %ref.tmp, i32 0, i32 0 - store ptr %call3, ptr %coerce.dive4, align 8 - %call5 = call noundef i64 @_ZN9__gnu_cxxmiIPP1ASt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_(ptr noundef nonnull align 8 dereferenceable(8) %__position, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 - store i64 %call5, ptr %__elems_before, align 8 - %2 = load i64, ptr %__len, align 8 - %call6 = call noundef ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %2) - store ptr %call6, ptr %__new_start, align 8 - %3 = load ptr, ptr %__new_start, align 8 - store ptr %3, ptr %__new_finish, align 8 - %_M_impl7 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_finish, align 8 + store ptr %2, ptr %__old_finish, align 8 + %call3 = call ptr @_ZNSt6vectorIP1ASaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %ref.tmp, i32 0, i32 0 + store ptr %call3, ptr %coerce.dive, align 8 + %call5 = call ptr @_ZNSt6vectorIP1ASaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %coerce.dive6 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %ref.tmp4, i32 0, i32 0 + store ptr %call5, ptr %coerce.dive6, align 8 + %call7 = call noundef i64 @_ZN9__gnu_cxxmiIPP1ASt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp4) #11 + store i64 %call7, ptr %__elems, align 8 + %3 = load i64, ptr %__len, align 8 + %call8 = call noundef ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %3) + store ptr %call8, ptr %__new_start, align 8 %4 = load ptr, ptr %__new_start, align 8 - %5 = load i64, ptr %__elems_before, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %4, i64 %5 - %6 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIP1AEE9constructIS1_JRKS1_EEEvRS2_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl7, ptr noundef %add.ptr, ptr noundef nonnull align 8 dereferenceable(8) %6) #5 - store ptr null, ptr %__new_finish, align 8 - %7 = load ptr, ptr %__old_start, align 8 - %call8 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %8 = load ptr, ptr %call8, align 8 - %9 = load ptr, ptr %__new_start, align 8 - %call9 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call10 = call noundef ptr @_ZNSt6vectorIP1ASaIS1_EE11_S_relocateEPS1_S4_S4_RS2_(ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull align 1 dereferenceable(1) %call9) #5 - store ptr %call10, ptr %__new_finish, align 8 - %10 = load ptr, ptr %__new_finish, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 - store ptr %incdec.ptr, ptr %__new_finish, align 8 - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %11 = load ptr, ptr %call11, align 8 - %12 = load ptr, ptr %__old_finish, align 8 - %13 = load ptr, ptr %__new_finish, align 8 - %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call13 = call noundef ptr @_ZNSt6vectorIP1ASaIS1_EE11_S_relocateEPS1_S4_S4_RS2_(ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull align 1 dereferenceable(1) %call12) #5 + store ptr %4, ptr %__new_finish, align 8 + %5 = load ptr, ptr %__new_start, align 8 + %6 = load i64, ptr %__len, align 8 + %_M_impl9 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + call void @_ZZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_EN6_GuardC2EPS1_mRS2_(ptr noundef nonnull align 8 dereferenceable(24) %__guard, ptr noundef %5, i64 noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %_M_impl9) + %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %7 = load ptr, ptr %__new_start, align 8 + %8 = load i64, ptr %__elems, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %7, i64 %8 + %call11 = call noundef ptr @_ZSt12__to_addressIP1AEPT_S3_(ptr noundef %add.ptr) #11 + %9 = load ptr, ptr %__args.addr, align 8 + store ptr %_M_impl10, ptr %__a.addr.i, align 8 + store ptr %call11, ptr %__p.addr.i, align 8 + store ptr %9, ptr %__args.addr.i, align 8 + %10 = load ptr, ptr %__a.addr.i, align 8 + %11 = load ptr, ptr %__p.addr.i, align 8 + %12 = load ptr, ptr %__args.addr.i, align 8 + store ptr %10, ptr %this.addr.i, align 8 + store ptr %11, ptr %__p.addr.i22, align 8 + store ptr %12, ptr %__args.addr.i23, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %13 = load ptr, ptr %__p.addr.i22, align 8 + %14 = load ptr, ptr %__args.addr.i23, align 8 + %15 = load ptr, ptr %14, align 8 + store ptr %15, ptr %13, align 8 + %16 = load ptr, ptr %__old_start, align 8 + %17 = load ptr, ptr %__old_finish, align 8 + %18 = load ptr, ptr %__new_start, align 8 + %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call13 = call noundef ptr @_ZNSt6vectorIP1ASaIS1_EE11_S_relocateEPS1_S4_S4_RS2_(ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef nonnull align 1 dereferenceable(1) %call12) #11 store ptr %call13, ptr %__new_finish, align 8 - %14 = load ptr, ptr %__old_start, align 8 + %19 = load ptr, ptr %__new_finish, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %19, i32 1 + store ptr %incdec.ptr, ptr %__new_finish, align 8 + %20 = load ptr, ptr %__old_start, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 0 + store ptr %20, ptr %_M_storage, align 8 %_M_impl14 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl14, i32 0, i32 2 - %15 = load ptr, ptr %_M_end_of_storage, align 8 - %16 = load ptr, ptr %__old_start, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %15 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %16 to i64 + %21 = load ptr, ptr %_M_end_of_storage, align 8 + %22 = load ptr, ptr %__old_start, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %21 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %22 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - call void @_ZNSt12_Vector_baseIP1ASaIS1_EE13_M_deallocateEPS1_m(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %14, i64 noundef %sub.ptr.div) - %17 = load ptr, ptr %__new_start, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 1 + store i64 %sub.ptr.div, ptr %_M_len, align 8 + call void @_ZZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %__guard) #11 + %23 = load ptr, ptr %__new_start, align 8 %_M_impl15 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start16 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl15, i32 0, i32 0 - store ptr %17, ptr %_M_start16, align 8 - %18 = load ptr, ptr %__new_finish, align 8 + store ptr %23, ptr %_M_start16, align 8 + %24 = load ptr, ptr %__new_finish, align 8 %_M_impl17 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish18 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl17, i32 0, i32 1 - store ptr %18, ptr %_M_finish18, align 8 - %19 = load ptr, ptr %__new_start, align 8 - %20 = load i64, ptr %__len, align 8 - %add.ptr19 = getelementptr inbounds ptr, ptr %19, i64 %20 + store ptr %24, ptr %_M_finish18, align 8 + %25 = load ptr, ptr %__new_start, align 8 + %26 = load i64, ptr %__len, align 8 + %add.ptr19 = getelementptr inbounds ptr, ptr %25, i64 %26 %_M_impl20 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage21 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl20, i32 0, i32 2 store ptr %add.ptr19, ptr %_M_end_of_storage21, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt6vectorIP1ASaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %retval = alloca %"class.__gnu_cxx::__normal_iterator", align 8 - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 - call void @_ZN9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %retval, i32 0, i32 0 - %0 = load ptr, ptr %coerce.dive, align 8 - ret ptr %0 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIP1AE9constructIS2_JRKS2_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE12_M_check_lenEmPKc(ptr noundef nonnull align 8 dereferenceable(24) %this, i64 noundef %__n, ptr noundef %__s) #0 comdat align 2 { entry: @@ -856,8 +782,8 @@ entry: store i64 %__n, ptr %__n.addr, align 8 store ptr %__s, ptr %__s.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call2 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 %sub = sub i64 %call, %call2 %0 = load i64, ptr %__n.addr, align 8 %cmp = icmp ult i64 %sub, %0 @@ -869,26 +795,26 @@ if.then: ; preds = %entry unreachable if.end: ; preds = %entry - %call3 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call4 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call3 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call4 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 store i64 %call4, ptr %ref.tmp, align 8 %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %__n.addr) %2 = load i64, ptr %call5, align 8 %add = add i64 %call3, %2 store i64 %add, ptr %__len, align 8 %3 = load i64, ptr %__len, align 8 - %call6 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call6 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 %cmp7 = icmp ult i64 %3, %call6 br i1 %cmp7, label %cond.true, label %lor.lhs.false lor.lhs.false: ; preds = %if.end %4 = load i64, ptr %__len, align 8 - %call8 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call8 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 %cmp9 = icmp ugt i64 %4, %call8 br i1 %cmp9, label %cond.true, label %cond.false cond.true: ; preds = %lor.lhs.false, %if.end - %call10 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call10 = call noundef i64 @_ZNKSt6vectorIP1ASaIS1_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 br label %cond.end cond.false: ; preds = %lor.lhs.false @@ -908,10 +834,10 @@ entry: store ptr %__lhs, ptr %__lhs.addr, align 8 store ptr %__rhs, ptr %__rhs.addr, align 8 %0 = load ptr, ptr %__lhs.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #11 %1 = load ptr, ptr %call, align 8 %2 = load ptr, ptr %__rhs.addr, align 8 - %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #11 %3 = load ptr, ptr %call1, align 8 %sub.ptr.lhs.cast = ptrtoint ptr %1 to i64 %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 @@ -920,6 +846,21 @@ entry: ret i64 %sub.ptr.div } +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt6vectorIP1ASaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { +entry: + %retval = alloca %"class.__gnu_cxx::__normal_iterator", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 + call void @_ZN9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #11 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local ptr @_ZNSt6vectorIP1ASaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -929,7 +870,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - call void @_ZN9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #5 + call void @_ZN9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #11 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 @@ -938,6 +879,8 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt12_Vector_baseIP1ASaIS1_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 @@ -950,17 +893,54 @@ entry: cond.true: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %1) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %2, i64 noundef %3, ptr noundef null) br label %cond.end cond.false: ; preds = %entry br label %cond.end cond.end: ; preds = %cond.false, %cond.true - %cond = phi ptr [ %call, %cond.true ], [ null, %cond.false ] + %cond = phi ptr [ %call.i, %cond.true ], [ null, %cond.false ] ret ptr %cond } +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_EN6_GuardC2EPS1_mRS2_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__s, i64 noundef %__l, ptr noundef nonnull align 1 dereferenceable(1) %__a) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__s.addr = alloca ptr, align 8 + %__l.addr = alloca i64, align 8 + %__a.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__s, ptr %__s.addr, align 8 + store i64 %__l, ptr %__l.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__s.addr, align 8 + store ptr %0, ptr %_M_storage, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %1 = load i64, ptr %__l.addr, align 8 + store i64 %1, ptr %_M_len, align 8 + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %2 = load ptr, ptr %__a.addr, align 8 + store ptr %2, ptr %_M_alloc, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressIP1AEPT_S3_(ptr noundef %__ptr) #2 comdat { +entry: + %__ptr.addr = alloca ptr, align 8 + store ptr %__ptr, ptr %__ptr.addr, align 8 + %0 = load ptr, ptr %__ptr.addr, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt6vectorIP1ASaIS1_EE11_S_relocateEPS1_S4_S4_RS2_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { entry: @@ -968,7 +948,6 @@ entry: %__last.addr = alloca ptr, align 8 %__result.addr = alloca ptr, align 8 %__alloc.addr = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::integral_constant", align 1 store ptr %__first, ptr %__first.addr, align 8 store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 @@ -977,18 +956,52 @@ entry: %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 %3 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZNSt6vectorIP1ASaIS1_EE14_S_do_relocateEPS1_S4_S4_RS2_St17integral_constantIbLb1EE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call = call noundef ptr @_ZSt12__relocate_aIPP1AS2_SaIS1_EET0_T_S5_S4_RT1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #11 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorIP1ASaIS1_EE17_M_realloc_appendIJRKS1_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %this1, i32 0, i32 0 - ret ptr %_M_current + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_storage, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %entry + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %1 = load ptr, ptr %_M_alloc, align 8 + %_M_storage2 = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_storage2, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %3 = load i64, ptr %_M_len, align 8 + store ptr %1, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 %3, ptr %__n.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIP1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef %5, i64 noundef %6) + br label %invoke.cont + +invoke.cont: ; preds = %if.then + br label %if.end + +if.end: ; preds = %invoke.cont, %entry + ret void + +terminate.lpad: ; No predecessors! + %7 = landingpad { ptr, i32 } + catch ptr null + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #13 + unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -997,8 +1010,8 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNSt6vectorIP1ASaIS1_EE11_S_max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseIP1ASaIS1_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call2 = call noundef i64 @_ZNSt6vectorIP1ASaIS1_EE11_S_max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %call) #11 ret i64 %call2 } @@ -1021,8 +1034,8 @@ entry: ret i64 %sub.ptr.div } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #11 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #8 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { @@ -1057,26 +1070,34 @@ return: ; preds = %if.end, %if.then ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt6vectorIP1ASaIS1_EE11_S_max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 1152921504606846975, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaIP1AEE8max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #14 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #13 unreachable } @@ -1090,16 +1111,6 @@ entry: ret ptr %_M_impl } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaIP1AEE8max_sizeERKS2_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1131,26 +1142,17 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 + %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %this1, i32 0, i32 0 + ret ptr %_M_current } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPP1ASt6vectorIS2_SaIS2_EEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__i.addr = alloca ptr, align 8 @@ -1165,21 +1167,9 @@ entry: } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIP1AEE8allocateERS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIP1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1188,43 +1178,36 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIP1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #15 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #16 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #16 - ret ptr %call2 +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #16 + unreachable + +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #12 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #11 +declare void @_ZSt28__throw_bad_array_new_lengthv() #9 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt6vectorIP1ASaIS1_EE14_S_do_relocateEPS1_S4_S4_RS2_St17integral_constantIbLb1EE(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { -entry: - %0 = alloca %"struct.std::integral_constant", align 1 - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %__result.addr = alloca ptr, align 8 - %__alloc.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %__result, ptr %__result.addr, align 8 - store ptr %__alloc, ptr %__alloc.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - %3 = load ptr, ptr %__result.addr, align 8 - %4 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZSt12__relocate_aIPP1AS2_SaIS1_EET0_T_S5_S4_RT1_(ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 1 dereferenceable(1) %4) #5 - ret ptr %call -} +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #9 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__relocate_aIPP1AS2_SaIS1_EET0_T_S5_S4_RT1_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { @@ -1238,51 +1221,51 @@ entry: store ptr %__result, ptr %__result.addr, align 8 store ptr %__alloc, ptr %__alloc.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %0) #11 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %1) #11 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPP1AET_S3_(ptr noundef %2) #11 %3 = load ptr, ptr %__alloc.addr, align 8 - %call3 = call noundef ptr @_ZSt14__relocate_a_1IP1AS1_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS3_E4typeES4_S4_S4_RSaIT0_E(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call3 = call noundef ptr @_ZSt14__relocate_a_1IP1AS1_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS3_E4typeES4_S4_S4_RSaIT0_E(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #11 ret ptr %call3 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZSt14__relocate_a_1IP1AS1_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS3_E4typeES4_S4_S4_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %0) #2 comdat { +define linkonce_odr dso_local noundef ptr @_ZSt14__relocate_a_1IP1AS1_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS3_E4typeES4_S4_S4_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 %__result.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 + %__alloc.addr = alloca ptr, align 8 %__count = alloca i64, align 8 store ptr %__first, ptr %__first.addr, align 8 store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %1 = load ptr, ptr %__last.addr, align 8 - %2 = load ptr, ptr %__first.addr, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %1 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %2 to i64 + store ptr %__alloc, ptr %__alloc.addr, align 8 + %0 = load ptr, ptr %__last.addr, align 8 + %1 = load ptr, ptr %__first.addr, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %0 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %1 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %__count, align 8 - %3 = load i64, ptr %__count, align 8 - %cmp = icmp sgt i64 %3, 0 + %2 = load i64, ptr %__count, align 8 + %cmp = icmp sgt i64 %2, 0 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - %4 = load ptr, ptr %__result.addr, align 8 - %5 = load ptr, ptr %__first.addr, align 8 - %6 = load i64, ptr %__count, align 8 - %mul = mul i64 %6, 8 - call void @llvm.memmove.p0.p0.i64(ptr align 8 %4, ptr align 8 %5, i64 %mul, i1 false) + %3 = load ptr, ptr %__result.addr, align 8 + %4 = load ptr, ptr %__first.addr, align 8 + %5 = load i64, ptr %__count, align 8 + %mul = mul i64 %5, 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) br label %if.end if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %__count, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %7, i64 %8 + %6 = load ptr, ptr %__result.addr, align 8 + %7 = load i64, ptr %__count, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 ret ptr %add.ptr } @@ -1296,32 +1279,25 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #12 - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_vector_2.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10 attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #13 = { builtin allocsize(0) } -attributes #14 = { noreturn nounwind } -attributes #15 = { noreturn } -attributes #16 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #11 = { nounwind } +attributes #12 = { builtin allocsize(0) } +attributes #13 = { noreturn nounwind } +attributes #14 = { builtin nounwind } +attributes #15 = { cold noreturn } +attributes #16 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1331,4 +1307,4 @@ attributes #16 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/vector-3.cpp.bc b/test_cases_bc/basic_cpp_tests/vector-3.cpp.bc index bec4ea83..9caada65 100644 --- a/test_cases_bc/basic_cpp_tests/vector-3.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/vector-3.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/v target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::vector" = type { %"struct.std::_Vector_base" } %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base>::_Vector_impl" } %"struct.std::_Vector_base>::_Vector_impl" = type { %"struct.std::_Vector_base>::_Vector_impl_data" } @@ -11,7 +12,7 @@ target triple = "x86_64-unknown-linux-gnu" %class.A = type { ptr } %"class.__gnu_cxx::__normal_iterator" = type { ptr } %"class.__gnu_cxx::__normal_iterator.0" = type { ptr } -%"struct.std::integral_constant" = type { i8 } +%struct._Guard = type { ptr, i64, ptr } $_ZNSt6vectorI1ASaIS0_EEC2Ev = comdat any @@ -21,7 +22,7 @@ $_ZNSt6vectorI1ASaIS0_EE9push_backERKS0_ = comdat any $_ZNSt6vectorI1ASaIS0_EE5beginEv = comdat any -$_ZN9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEC2IPS1_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISA_S9_EE7__valueES6_E6__typeEEE = comdat any +$_ZN9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEC2IPS1_vEERKNS0_IT_S6_EE = comdat any $_ZNK9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEdeEv = comdat any @@ -31,16 +32,10 @@ $_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev = comdat any $_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev = comdat any -$_ZNSaI1AEC2Ev = comdat any - $_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any -$_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E = comdat any - $_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any $__clang_call_terminate = comdat any @@ -55,21 +50,11 @@ $_ZNSt12_Vector_baseI1ASaIS0_EE13_M_deallocateEPS0_m = comdat any $_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m = comdat any - -$_ZNSaI1AED2Ev = comdat any +$_ZNSt15__new_allocatorI1AE10deallocateEPS0_m = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AED2Ev = comdat any +$_ZNSt15__new_allocatorI1AED2Ev = comdat any -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_ = comdat any - -$_ZNSt6vectorI1ASaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_ = comdat any - -$_ZNSt6vectorI1ASaIS0_EE3endEv = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_ = comdat any +$_ZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_ = comdat any $_ZN1AC2ERKS_ = comdat any @@ -77,11 +62,17 @@ $_ZNKSt6vectorI1ASaIS0_EE12_M_check_lenEmPKc = comdat any $_ZN9__gnu_cxxmiIP1ASt6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS9_SC_ = comdat any +$_ZNSt6vectorI1ASaIS0_EE3endEv = comdat any + $_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm = comdat any +$_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardC2EPS0_mRS1_ = comdat any + +$_ZSt12__to_addressI1AEPT_S2_ = comdat any + $_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_ = comdat any -$_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv = comdat any +$_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardD2Ev = comdat any $_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv = comdat any @@ -93,19 +84,13 @@ $_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_ = comdat any $_ZNKSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv = comdat any - -$_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m = comdat any +$_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv = comdat any +$_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_ = comdat any -$_ZNSt6vectorI1ASaIS0_EE14_S_do_relocateEPS0_S3_S3_RS1_St17integral_constantIbLb1EE = comdat any +$_ZNSt15__new_allocatorI1AE8allocateEmPKv = comdat any $_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_ = comdat any @@ -115,18 +100,8 @@ $_ZSt12__niter_baseIP1AET_S2_ = comdat any $_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_ = comdat any -$_ZNSt16allocator_traitsISaI1AEE9constructIS0_JS0_EEEvRS1_PT_DpOT0_ = comdat any - -$_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_ = comdat any - -$_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JS1_EEEvPT_DpOT0_ = comdat any - $_ZN1AC2EOS_ = comdat any -$_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_ = comdat any - -$_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_ = comdat any - $_ZTV1A = comdat any $_ZTS1A = comdat any @@ -136,16 +111,13 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_vector_3.cpp, ptr null }] +@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_append\00", align 1 ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -280,24 +252,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -314,17 +270,17 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #10 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #10 invoke void @_ZNSt6vectorI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %vec, ptr noundef nonnull align 8 dereferenceable(8) %a) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call = call ptr @_ZNSt6vectorI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + %call = call ptr @_ZNSt6vectorI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %vec) #10 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 - call void @_ZN9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEC2IPS1_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISA_S9_EE7__valueES6_E6__typeEEE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 - %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + call void @_ZN9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEC2IPS1_vEERKNS0_IT_S6_EE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #10 + %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #10 store ptr %call1, ptr %aptr, align 8 %0 = load ptr, ptr %aptr, align 8 %1 = load ptr, ptr %ptr, align 8 @@ -336,7 +292,7 @@ invoke.cont: ; preds = %entry invoke.cont2: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #10 %3 = load i32, ptr %retval, align 4 ret i32 %3 @@ -347,7 +303,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %5, ptr %exn.slot, align 8 %6 = extractvalue { ptr, i32 } %4, 1 store i32 %6, ptr %ehselector.slot, align 4 - call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #10 br label %eh.resume eh.resume: ; preds = %lpad @@ -359,17 +315,17 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + call void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -381,9 +337,14 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__x) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i8 = alloca ptr, align 8 + %__args.addr.i9 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__x.addr = alloca ptr, align 8 - %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__x, ptr %__x.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -402,22 +363,29 @@ if.then: ; preds = %entry %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl4, i32 0, i32 1 %2 = load ptr, ptr %_M_finish5, align 8 %3 = load ptr, ptr %__x.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl3, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl3, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i8, align 8 + store ptr %6, ptr %__args.addr.i9, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i8, align 8 + %8 = load ptr, ptr %__args.addr.i9, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #10 %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl6, i32 0, i32 1 - %4 = load ptr, ptr %_M_finish7, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %4, i32 1 + %9 = load ptr, ptr %_M_finish7, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %9, i32 1 store ptr %incdec.ptr, ptr %_M_finish7, align 8 br label %if.end if.else: ; preds = %entry - %call = call ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %agg.tmp, i32 0, i32 0 - store ptr %call, ptr %coerce.dive, align 8 - %5 = load ptr, ptr %__x.addr, align 8 - %coerce.dive8 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %agg.tmp, i32 0, i32 0 - %6 = load ptr, ptr %coerce.dive8, align 8 - call void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr %6, ptr noundef nonnull align 8 dereferenceable(8) %5) + %10 = load ptr, ptr %__x.addr, align 8 + call void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef nonnull align 8 dereferenceable(8) %10) br label %if.end if.end: ; preds = %if.else, %if.then @@ -435,14 +403,14 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #5 + call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #10 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEC2IPS1_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISA_S9_EE7__valueES6_E6__typeEEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPK1ASt6vectorIS1_SaIS1_EEEC2IPS1_vEERKNS0_IT_S6_EE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__i.addr = alloca ptr, align 8 @@ -451,7 +419,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__i.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #10 %1 = load ptr, ptr %call, align 8 store ptr %1, ptr %_M_current, align 8 ret void @@ -469,8 +437,11 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__first.addr.i = alloca ptr, align 8 + %__last.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -480,56 +451,59 @@ entry: %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 %1 = load ptr, ptr %_M_finish, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - invoke void @_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E(ptr noundef %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %call) - to label %invoke.cont unwind label %terminate.lpad - -invoke.cont: ; preds = %entry - call void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + store ptr %0, ptr %__first.addr.i, align 8 + store ptr %1, ptr %__last.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %2 = load ptr, ptr %__first.addr.i, align 8 + %3 = load ptr, ptr %__last.addr.i, align 8 + invoke void @_ZSt8_DestroyIP1AEvT_S2_(ptr noundef %2, ptr noundef %3) + to label %_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E.exit unwind label %terminate.lpad + +_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E.exit + call void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %4 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #11 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #5 + call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -543,15 +517,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -566,21 +531,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZSt8_DestroyIP1AS0_EvT_S2_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef nonnull align 1 dereferenceable(1) %0) #0 comdat { -entry: - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - call void @_ZSt8_DestroyIP1AEvT_S2_(ptr noundef %1, ptr noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -592,9 +542,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #12 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #10 + call void @_ZSt9terminatev() #11 unreachable } @@ -603,7 +553,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -626,14 +576,14 @@ entry: invoke.cont: ; preds = %entry %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #5 + call void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #10 ret void terminate.lpad: ; preds = %entry %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #12 + call void @__clang_call_terminate(ptr %4) #11 unreachable } @@ -663,6 +613,9 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE13_M_deallocateEPS0_m(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -678,7 +631,13 @@ if.then: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load ptr, ptr %__p.addr, align 8 %2 = load i64, ptr %__n.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %1, i64 noundef %2) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 %2, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) br label %if.end if.end: ; preds = %if.then, %entry @@ -686,61 +645,38 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseI1ASaIS0_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE10deallocateERS1_PS0_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #10 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE10deallocateEPS1_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #12 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #9 - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} +declare void @_ZdlPv(ptr noundef) #6 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorI1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -748,144 +684,125 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr %__position.coerce, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { -entry: - %__position = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 +define linkonce_odr dso_local void @_ZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { +entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i22 = alloca ptr, align 8 + %__args.addr.i23 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__len = alloca i64, align 8 %__old_start = alloca ptr, align 8 %__old_finish = alloca ptr, align 8 - %__elems_before = alloca i64, align 8 + %__elems = alloca i64, align 8 %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 + %ref.tmp4 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 %__new_start = alloca ptr, align 8 %__new_finish = alloca ptr, align 8 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %__position, i32 0, i32 0 - store ptr %__position.coerce, ptr %coerce.dive, align 8 + %__guard = alloca %struct._Guard, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE12_M_check_lenEmPKc(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef 1, ptr noundef @.str.3) store i64 %call, ptr %__len, align 8 + %0 = load i64, ptr %__len, align 8 + %cmp = icmp ule i64 %0, 0 + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + unreachable + +if.end: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - %0 = load ptr, ptr %_M_start, align 8 - store ptr %0, ptr %__old_start, align 8 + %1 = load ptr, ptr %_M_start, align 8 + store ptr %1, ptr %__old_start, align 8 %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 - %1 = load ptr, ptr %_M_finish, align 8 - store ptr %1, ptr %__old_finish, align 8 - %call3 = call ptr @_ZNSt6vectorI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive4 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp, i32 0, i32 0 - store ptr %call3, ptr %coerce.dive4, align 8 - %call5 = call noundef i64 @_ZN9__gnu_cxxmiIP1ASt6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS9_SC_(ptr noundef nonnull align 8 dereferenceable(8) %__position, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 - store i64 %call5, ptr %__elems_before, align 8 - %2 = load i64, ptr %__len, align 8 - %call6 = call noundef ptr @_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %2) - store ptr %call6, ptr %__new_start, align 8 - %3 = load ptr, ptr %__new_start, align 8 - store ptr %3, ptr %__new_finish, align 8 - %_M_impl7 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_finish, align 8 + store ptr %2, ptr %__old_finish, align 8 + %call3 = call ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp, i32 0, i32 0 + store ptr %call3, ptr %coerce.dive, align 8 + %call5 = call ptr @_ZNSt6vectorI1ASaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %coerce.dive6 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp4, i32 0, i32 0 + store ptr %call5, ptr %coerce.dive6, align 8 + %call7 = call noundef i64 @_ZN9__gnu_cxxmiIP1ASt6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS9_SC_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp4) #10 + store i64 %call7, ptr %__elems, align 8 + %3 = load i64, ptr %__len, align 8 + %call8 = call noundef ptr @_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %3) + store ptr %call8, ptr %__new_start, align 8 %4 = load ptr, ptr %__new_start, align 8 - %5 = load i64, ptr %__elems_before, align 8 - %add.ptr = getelementptr inbounds %class.A, ptr %4, i64 %5 - %6 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JRKS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl7, ptr noundef %add.ptr, ptr noundef nonnull align 8 dereferenceable(8) %6) #5 - store ptr null, ptr %__new_finish, align 8 - %7 = load ptr, ptr %__old_start, align 8 - %call8 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %8 = load ptr, ptr %call8, align 8 - %9 = load ptr, ptr %__new_start, align 8 - %call9 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call10 = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull align 1 dereferenceable(1) %call9) #5 - store ptr %call10, ptr %__new_finish, align 8 - %10 = load ptr, ptr %__new_finish, align 8 - %incdec.ptr = getelementptr inbounds %class.A, ptr %10, i32 1 - store ptr %incdec.ptr, ptr %__new_finish, align 8 - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %11 = load ptr, ptr %call11, align 8 - %12 = load ptr, ptr %__old_finish, align 8 - %13 = load ptr, ptr %__new_finish, align 8 - %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call13 = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull align 1 dereferenceable(1) %call12) #5 + store ptr %4, ptr %__new_finish, align 8 + %5 = load ptr, ptr %__new_start, align 8 + %6 = load i64, ptr %__len, align 8 + %_M_impl9 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + call void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardC2EPS0_mRS1_(ptr noundef nonnull align 8 dereferenceable(24) %__guard, ptr noundef %5, i64 noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %_M_impl9) + %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %7 = load ptr, ptr %__new_start, align 8 + %8 = load i64, ptr %__elems, align 8 + %add.ptr = getelementptr inbounds %class.A, ptr %7, i64 %8 + %call11 = call noundef ptr @_ZSt12__to_addressI1AEPT_S2_(ptr noundef %add.ptr) #10 + %9 = load ptr, ptr %__args.addr, align 8 + store ptr %_M_impl10, ptr %__a.addr.i, align 8 + store ptr %call11, ptr %__p.addr.i, align 8 + store ptr %9, ptr %__args.addr.i, align 8 + %10 = load ptr, ptr %__a.addr.i, align 8 + %11 = load ptr, ptr %__p.addr.i, align 8 + %12 = load ptr, ptr %__args.addr.i, align 8 + store ptr %10, ptr %this.addr.i, align 8 + store ptr %11, ptr %__p.addr.i22, align 8 + store ptr %12, ptr %__args.addr.i23, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %13 = load ptr, ptr %__p.addr.i22, align 8 + %14 = load ptr, ptr %__args.addr.i23, align 8 + call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #10 + %15 = load ptr, ptr %__old_start, align 8 + %16 = load ptr, ptr %__old_finish, align 8 + %17 = load ptr, ptr %__new_start, align 8 + %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call13 = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef nonnull align 1 dereferenceable(1) %call12) #10 store ptr %call13, ptr %__new_finish, align 8 - %14 = load ptr, ptr %__old_start, align 8 + %18 = load ptr, ptr %__new_finish, align 8 + %incdec.ptr = getelementptr inbounds %class.A, ptr %18, i32 1 + store ptr %incdec.ptr, ptr %__new_finish, align 8 + %19 = load ptr, ptr %__old_start, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 0 + store ptr %19, ptr %_M_storage, align 8 %_M_impl14 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl14, i32 0, i32 2 - %15 = load ptr, ptr %_M_end_of_storage, align 8 - %16 = load ptr, ptr %__old_start, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %15 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %16 to i64 + %20 = load ptr, ptr %_M_end_of_storage, align 8 + %21 = load ptr, ptr %__old_start, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %20 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %21 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - call void @_ZNSt12_Vector_baseI1ASaIS0_EE13_M_deallocateEPS0_m(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %14, i64 noundef %sub.ptr.div) - %17 = load ptr, ptr %__new_start, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 1 + store i64 %sub.ptr.div, ptr %_M_len, align 8 + call void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %__guard) #10 + %22 = load ptr, ptr %__new_start, align 8 %_M_impl15 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start16 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl15, i32 0, i32 0 - store ptr %17, ptr %_M_start16, align 8 - %18 = load ptr, ptr %__new_finish, align 8 + store ptr %22, ptr %_M_start16, align 8 + %23 = load ptr, ptr %__new_finish, align 8 %_M_impl17 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish18 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl17, i32 0, i32 1 - store ptr %18, ptr %_M_finish18, align 8 - %19 = load ptr, ptr %__new_start, align 8 - %20 = load i64, ptr %__len, align 8 - %add.ptr19 = getelementptr inbounds %class.A, ptr %19, i64 %20 + store ptr %23, ptr %_M_finish18, align 8 + %24 = load ptr, ptr %__new_start, align 8 + %25 = load i64, ptr %__len, align 8 + %add.ptr19 = getelementptr inbounds %class.A, ptr %24, i64 %25 %_M_impl20 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage21 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl20, i32 0, i32 2 store ptr %add.ptr19, ptr %_M_end_of_storage21, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %retval = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 - call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %retval, i32 0, i32 0 - %0 = load ptr, ptr %coerce.dive, align 8 - ret ptr %0 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JRKS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 - ret void -} - ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -908,8 +825,8 @@ entry: store i64 %__n, ptr %__n.addr, align 8 store ptr %__s, ptr %__s.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call2 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %sub = sub i64 %call, %call2 %0 = load i64, ptr %__n.addr, align 8 %cmp = icmp ult i64 %sub, %0 @@ -921,26 +838,26 @@ if.then: ; preds = %entry unreachable if.end: ; preds = %entry - %call3 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call4 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call3 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call4 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 store i64 %call4, ptr %ref.tmp, align 8 %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %__n.addr) %2 = load i64, ptr %call5, align 8 %add = add i64 %call3, %2 store i64 %add, ptr %__len, align 8 %3 = load i64, ptr %__len, align 8 - %call6 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call6 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %cmp7 = icmp ult i64 %3, %call6 br i1 %cmp7, label %cond.true, label %lor.lhs.false lor.lhs.false: ; preds = %if.end %4 = load i64, ptr %__len, align 8 - %call8 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call8 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 %cmp9 = icmp ugt i64 %4, %call8 br i1 %cmp9, label %cond.true, label %cond.false cond.true: ; preds = %lor.lhs.false, %if.end - %call10 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call10 = call noundef i64 @_ZNKSt6vectorI1ASaIS0_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 br label %cond.end cond.false: ; preds = %lor.lhs.false @@ -960,10 +877,10 @@ entry: store ptr %__lhs, ptr %__lhs.addr, align 8 store ptr %__rhs, ptr %__rhs.addr, align 8 %0 = load ptr, ptr %__lhs.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #10 %1 = load ptr, ptr %call, align 8 %2 = load ptr, ptr %__rhs.addr, align 8 - %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #10 %3 = load ptr, ptr %call1, align 8 %sub.ptr.lhs.cast = ptrtoint ptr %1 to i64 %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 @@ -972,9 +889,26 @@ entry: ret i64 %sub.ptr.div } +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt6vectorI1ASaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { +entry: + %retval = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 + call void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #10 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt12_Vector_baseI1ASaIS0_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 @@ -987,17 +921,54 @@ entry: cond.true: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %1) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %2, i64 noundef %3, ptr noundef null) br label %cond.end cond.false: ; preds = %entry br label %cond.end cond.end: ; preds = %cond.false, %cond.true - %cond = phi ptr [ %call, %cond.true ], [ null, %cond.false ] + %cond = phi ptr [ %call.i, %cond.true ], [ null, %cond.false ] ret ptr %cond } +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardC2EPS0_mRS1_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__s, i64 noundef %__l, ptr noundef nonnull align 1 dereferenceable(1) %__a) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__s.addr = alloca ptr, align 8 + %__l.addr = alloca i64, align 8 + %__a.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__s, ptr %__s.addr, align 8 + store i64 %__l, ptr %__l.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__s.addr, align 8 + store ptr %0, ptr %_M_storage, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %1 = load i64, ptr %__l.addr, align 8 + store i64 %1, ptr %_M_len, align 8 + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %2 = load ptr, ptr %__a.addr, align 8 + store ptr %2, ptr %_M_alloc, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressI1AEPT_S2_(ptr noundef %__ptr) #2 comdat { +entry: + %__ptr.addr = alloca ptr, align 8 + store ptr %__ptr, ptr %__ptr.addr, align 8 + %0 = load ptr, ptr %__ptr.addr, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt6vectorI1ASaIS0_EE11_S_relocateEPS0_S3_S3_RS1_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { entry: @@ -1005,7 +976,6 @@ entry: %__last.addr = alloca ptr, align 8 %__result.addr = alloca ptr, align 8 %__alloc.addr = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::integral_constant", align 1 store ptr %__first, ptr %__first.addr, align 8 store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 @@ -1014,18 +984,52 @@ entry: %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 %3 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZNSt6vectorI1ASaIS0_EE14_S_do_relocateEPS0_S3_S3_RS1_St17integral_constantIbLb1EE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call = call noundef ptr @_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #10 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorI1ASaIS0_EE17_M_realloc_appendIJRKS0_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 - ret ptr %_M_current + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_storage, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %entry + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %1 = load ptr, ptr %_M_alloc, align 8 + %_M_storage2 = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_storage2, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %3 = load i64, ptr %_M_len, align 8 + store ptr %1, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 %3, ptr %__n.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorI1AE10deallocateEPS0_m(ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef %5, i64 noundef %6) + br label %invoke.cont + +invoke.cont: ; preds = %if.then + br label %if.end + +if.end: ; preds = %invoke.cont, %entry + ret void + +terminate.lpad: ; No predecessors! + %7 = landingpad { ptr, i32 } + catch ptr null + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #11 + unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1034,8 +1038,8 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseI1ASaIS0_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #10 + %call2 = call noundef i64 @_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %call) #10 ret i64 %call2 } @@ -1058,8 +1062,8 @@ entry: ret i64 %sub.ptr.div } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #10 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #7 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { @@ -1094,26 +1098,34 @@ return: ; preds = %if.end, %if.then ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt6vectorI1ASaIS0_EE11_S_max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 1152921504606846975, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #12 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #11 unreachable } @@ -1127,16 +1139,6 @@ entry: ret ptr %_M_impl } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaI1AEE8max_sizeERKS1_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1168,40 +1170,34 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call + %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 + ret ptr %_M_current } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 + %__i.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 + store ptr %__i, ptr %__i.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaI1AEE8allocateERS1_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call + %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__i.addr, align 8 + %1 = load ptr, ptr %0, align 8 + store ptr %1, ptr %_M_current, align 8 + ret void } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorI1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1210,46 +1206,39 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorI1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #13 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #14 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #14 - ret ptr %call2 +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #14 + unreachable + +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #10 +declare void @_ZSt28__throw_bad_array_new_lengthv() #8 -; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #11 +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #8 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt6vectorI1ASaIS0_EE14_S_do_relocateEPS0_S3_S3_RS1_St17integral_constantIbLb1EE(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { -entry: - %0 = alloca %"struct.std::integral_constant", align 1 - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %__result.addr = alloca ptr, align 8 - %__alloc.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %__result, ptr %__result.addr, align 8 - store ptr %__alloc, ptr %__alloc.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - %3 = load ptr, ptr %__result.addr, align 8 - %4 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 1 dereferenceable(1) %4) #5 - ret ptr %call -} +; Function Attrs: nobuiltin allocsize(0) +declare noundef nonnull ptr @_Znwm(i64 noundef) #9 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__relocate_aIP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { @@ -1263,13 +1252,13 @@ entry: store ptr %__result, ptr %__result.addr, align 8 store ptr %__alloc, ptr %__alloc.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %0) #10 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %1) #10 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIP1AET_S2_(ptr noundef %2) #10 %3 = load ptr, ptr %__alloc.addr, align 8 - %call3 = call noundef ptr @_ZSt14__relocate_a_1IP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call3 = call noundef ptr @_ZSt14__relocate_a_1IP1AS1_SaIS0_EET0_T_S4_S3_RT1_(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #10 ret ptr %call3 } @@ -1299,7 +1288,7 @@ for.body: ; preds = %for.cond %3 = load ptr, ptr %__cur, align 8 %4 = load ptr, ptr %__first.addr, align 8 %5 = load ptr, ptr %__alloc.addr, align 8 - call void @_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull align 1 dereferenceable(1) %5) #5 + call void @_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull align 1 dereferenceable(1) %5) #10 br label %for.inc for.inc: ; preds = %for.body @@ -1328,6 +1317,16 @@ entry: ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local void @_ZSt19__relocate_object_aI1AS0_SaIS0_EEvPT_PT0_RT1_(ptr noalias noundef %__dest, ptr noalias noundef %__orig, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { entry: + %this.addr.i5 = alloca ptr, align 8 + %__p.addr.i6 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__p.addr.i3 = alloca ptr, align 8 + %__args.addr.i4 = alloca ptr, align 8 + %__a.addr.i1 = alloca ptr, align 8 + %__p.addr.i2 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %__dest.addr = alloca ptr, align 8 %__orig.addr = alloca ptr, align 8 %__alloc.addr = alloca ptr, align 8 @@ -1337,60 +1336,34 @@ entry: %0 = load ptr, ptr %__alloc.addr, align 8 %1 = load ptr, ptr %__dest.addr, align 8 %2 = load ptr, ptr %__orig.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - %3 = load ptr, ptr %__alloc.addr, align 8 - %4 = load ptr, ptr %__orig.addr, align 8 - call void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE9constructIS0_JS0_EEEvRS1_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaI1AEE7destroyIS0_EEvRS1_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #5 - ret void -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE9constructIS1_JS1_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - call void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #5 + store ptr %0, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store ptr %2, ptr %__args.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load ptr, ptr %__args.addr.i, align 8 + store ptr %3, ptr %this.addr.i, align 8 + store ptr %4, ptr %__p.addr.i3, align 8 + store ptr %5, ptr %__args.addr.i4, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %6 = load ptr, ptr %__p.addr.i3, align 8 + %7 = load ptr, ptr %__args.addr.i4, align 8 + call void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10 + %8 = load ptr, ptr %__alloc.addr, align 8 + %9 = load ptr, ptr %__orig.addr, align 8 + store ptr %8, ptr %__a.addr.i1, align 8 + store ptr %9, ptr %__p.addr.i2, align 8 + %10 = load ptr, ptr %__a.addr.i1, align 8 + %11 = load ptr, ptr %__p.addr.i2, align 8 + store ptr %10, ptr %this.addr.i5, align 8 + store ptr %11, ptr %__p.addr.i6, align 8 + %this1.i7 = load ptr, ptr %this.addr.i5, align 8 + %12 = load ptr, ptr %__p.addr.i6, align 8 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %.addr = alloca ptr, align 8 @@ -1401,55 +1374,22 @@ entry: ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorI1AE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIP1ASt6vectorIS1_SaIS1_EEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__i.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__i, ptr %__i.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__i.addr, align 8 - %1 = load ptr, ptr %0, align 8 - store ptr %1, ptr %_M_current, align 8 - ret void -} - -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_vector_3.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { noreturn nounwind } -attributes #13 = { noreturn } -attributes #14 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nounwind } +attributes #11 = { noreturn nounwind } +attributes #12 = { builtin nounwind } +attributes #13 = { cold noreturn } +attributes #14 = { noreturn } +attributes #15 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1459,6 +1399,6 @@ attributes #14 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/basic_cpp_tests/vector-4.cpp.bc b/test_cases_bc/basic_cpp_tests/vector-4.cpp.bc index f2a09d72..a8f14448 100644 --- a/test_cases_bc/basic_cpp_tests/vector-4.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/vector-4.cpp.bc @@ -3,7 +3,8 @@ source_filename = "/home/runner/work/Test-Suite/Test-Suite/src/basic_cpp_tests/v target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -%"class.std::ios_base::Init" = type { i8 } +module asm ".globl _ZSt21ios_base_library_initv" + %"class.std::vector" = type { %"struct.std::_Vector_base" } %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base>::_Vector_impl" } %"struct.std::_Vector_base>::_Vector_impl" = type { %"struct.std::_Vector_base>::_Vector_impl_data" } @@ -11,7 +12,7 @@ target triple = "x86_64-unknown-linux-gnu" %class.A = type { ptr } %"class.__gnu_cxx::__normal_iterator" = type { ptr } %"class.__gnu_cxx::__normal_iterator.0" = type { ptr } -%"struct.std::integral_constant" = type { i8 } +%struct._Guard = type { ptr, i64, ptr } $_ZNSt6vectorIPK1ASaIS2_EEC2Ev = comdat any @@ -21,7 +22,7 @@ $_ZNSt6vectorIPK1ASaIS2_EE9push_backEOS2_ = comdat any $_ZNSt6vectorIPK1ASaIS2_EE5beginEv = comdat any -$_ZN9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEC2IPS3_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISC_SB_EE7__valueES8_E6__typeEEE = comdat any +$_ZN9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE = comdat any $_ZNK9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEdeEv = comdat any @@ -31,16 +32,10 @@ $_ZNSt12_Vector_baseIPK1ASaIS2_EEC2Ev = comdat any $_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implC2Ev = comdat any -$_ZNSaIPK1AEC2Ev = comdat any - $_ZNSt12_Vector_baseIPK1ASaIS2_EE17_Vector_impl_dataC2Ev = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev = comdat any - $_ZNK1A1fEPi = comdat any -$_ZSt8_DestroyIPPK1AS2_EvT_S4_RSaIT0_E = comdat any - $_ZNSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv = comdat any $__clang_call_terminate = comdat any @@ -55,35 +50,31 @@ $_ZNSt12_Vector_baseIPK1ASaIS2_EE13_M_deallocateEPS2_m = comdat any $_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implD2Ev = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m = comdat any +$_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m = comdat any -$_ZNSaIPK1AED2Ev = comdat any - -$_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev = comdat any +$_ZNSt15__new_allocatorIPK1AED2Ev = comdat any $_ZNSt6vectorIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_ = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_ = comdat any - -$_ZNSt6vectorIPK1ASaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_ = comdat any - -$_ZNSt6vectorIPK1ASaIS2_EE3endEv = comdat any +$_ZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_ = comdat any $_ZNSt6vectorIPK1ASaIS2_EE4backEv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_ = comdat any - $_ZNKSt6vectorIPK1ASaIS2_EE12_M_check_lenEmPKc = comdat any $_ZN9__gnu_cxxmiIPPK1ASt6vectorIS3_SaIS3_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSB_SE_ = comdat any +$_ZNSt6vectorIPK1ASaIS2_EE3endEv = comdat any + $_ZNSt12_Vector_baseIPK1ASaIS2_EE11_M_allocateEm = comdat any +$_ZZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_EN6_GuardC2EPS2_mRS3_ = comdat any + +$_ZSt12__to_addressIPK1AEPT_S4_ = comdat any + $_ZNSt6vectorIPK1ASaIS2_EE11_S_relocateEPS2_S5_S5_RS3_ = comdat any -$_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv = comdat any +$_ZZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_EN6_GuardD2Ev = comdat any $_ZNKSt6vectorIPK1ASaIS2_EE8max_sizeEv = comdat any @@ -95,19 +86,13 @@ $_ZNSt6vectorIPK1ASaIS2_EE11_S_max_sizeERKS3_ = comdat any $_ZNKSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv = comdat any -$_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_ = comdat any - $_ZSt3minImERKT_S2_S2_ = comdat any -$_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv = comdat any - -$_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv = comdat any - -$_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m = comdat any +$_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv = comdat any -$_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv = comdat any +$_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_ = comdat any -$_ZNSt6vectorIPK1ASaIS2_EE14_S_do_relocateEPS2_S5_S5_RS3_St17integral_constantIbLb1EE = comdat any +$_ZNSt15__new_allocatorIPK1AE8allocateEmPKv = comdat any $_ZSt12__relocate_aIPPK1AS3_SaIS2_EET0_T_S6_S5_RT1_ = comdat any @@ -115,8 +100,6 @@ $_ZSt14__relocate_a_1IPK1AS2_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_ $_ZSt12__niter_baseIPPK1AET_S4_ = comdat any -$_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_ = comdat any - $_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEmiEl = comdat any $_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEdeEv = comdat any @@ -130,16 +113,13 @@ $_ZTI1A = comdat any @.str = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 @.str.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 @.str.2 = private unnamed_addr constant [25 x i8] c"Press ENTER to continue\0A\00", align 1 -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external hidden global i8 @global_obj = dso_local global i32 0, align 4 @global_ptr = dso_local global ptr @global_obj, align 8 @_ZTV1A = linkonce_odr dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZNK1A1fEPi] }, comdat, align 8 @_ZTVN10__cxxabiv117__class_type_infoE = external global ptr @_ZTS1A = linkonce_odr dso_local constant [3 x i8] c"1A\00", comdat, align 1 @_ZTI1A = linkonce_odr dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }, comdat, align 8 -@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1 -@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_vector_4.cpp, ptr null }] +@.str.3 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_append\00", align 1 ; Function Attrs: mustprogress noinline optnone uwtable define dso_local void @_Z9MUSTALIASPvS_(ptr noundef %p, ptr noundef %q) #0 { @@ -274,24 +254,8 @@ entry: declare i32 @getchar() #1 -; Function Attrs: noinline uwtable -define internal void @__cxx_global_var_init() #3 section ".text.startup" { -entry: - call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = call i32 @__cxa_atexit(ptr @_ZNSt8ios_base4InitD1Ev, ptr @_ZStL8__ioinit, ptr @__dso_handle) #5 - ret void -} - -declare void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 - -; Function Attrs: nounwind -declare void @_ZNSt8ios_base4InitD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(ptr, ptr, ptr) #5 - ; Function Attrs: mustprogress noinline norecurse optnone uwtable -define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #6 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr noundef %argv) #3 personality ptr @__gxx_personality_v0 { entry: %retval = alloca i32, align 4 %argc.addr = alloca i32, align 4 @@ -309,18 +273,18 @@ entry: store i32 %argc, ptr %argc.addr, align 4 store ptr %argv, ptr %argv.addr, align 8 store ptr @global_obj, ptr %ptr, align 8 - call void @_ZNSt6vectorIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 - call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #5 + call void @_ZNSt6vectorIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #11 + call void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %a) #11 store ptr %a, ptr %ref.tmp, align 8 invoke void @_ZNSt6vectorIPK1ASaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %vec, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %entry - %call = call ptr @_ZNSt6vectorIPK1ASaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + %call = call ptr @_ZNSt6vectorIPK1ASaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %vec) #11 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp1, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 - call void @_ZN9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEC2IPS3_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISC_SB_EE7__valueES8_E6__typeEEE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp1) #5 - %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #5 + call void @_ZN9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %it, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp1) #11 + %call2 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %it) #11 %0 = load ptr, ptr %call2, align 8 store ptr %0, ptr %aptr, align 8 %1 = load ptr, ptr %aptr, align 8 @@ -333,7 +297,7 @@ invoke.cont: ; preds = %entry invoke.cont3: ; preds = %invoke.cont store i32 0, ptr %retval, align 4 - call void @_ZNSt6vectorIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #11 %4 = load i32, ptr %retval, align 4 ret i32 %4 @@ -344,7 +308,7 @@ lpad: ; preds = %invoke.cont, %entry store ptr %6, ptr %exn.slot, align 8 %7 = extractvalue { ptr, i32 } %5, 1 store i32 %7, ptr %ehselector.slot, align 4 - call void @_ZNSt6vectorIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #5 + call void @_ZNSt6vectorIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %vec) #11 br label %eh.resume eh.resume: ; preds = %lpad @@ -356,17 +320,17 @@ eh.resume: ; preds = %lpad } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt6vectorIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSt12_Vector_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + call void @_ZNSt12_Vector_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN1AC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -399,14 +363,14 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - call void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #5 + call void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_start) #11 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %retval, i32 0, i32 0 %0 = load ptr, ptr %coerce.dive, align 8 ret ptr %0 } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEC2IPS3_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISC_SB_EE7__valueES8_E6__typeEEE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPKPK1ASt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__i.addr = alloca ptr, align 8 @@ -415,7 +379,7 @@ entry: %this1 = load ptr, ptr %this.addr, align 8 %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %this1, i32 0, i32 0 %0 = load ptr, ptr %__i.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #11 %1 = load ptr, ptr %call, align 8 store ptr %1, ptr %_M_current, align 8 ret void @@ -433,8 +397,11 @@ entry: } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt6vectorIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__first.addr.i = alloca ptr, align 8 + %__last.addr.i = alloca ptr, align 8 + %.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -444,56 +411,59 @@ entry: %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 %1 = load ptr, ptr %_M_finish, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - invoke void @_ZSt8_DestroyIPPK1AS2_EvT_S4_RSaIT0_E(ptr noundef %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %call) - to label %invoke.cont unwind label %terminate.lpad - -invoke.cont: ; preds = %entry - call void @_ZNSt12_Vector_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + store ptr %0, ptr %__first.addr.i, align 8 + store ptr %1, ptr %__last.addr.i, align 8 + store ptr %call, ptr %.addr.i, align 8 + %2 = load ptr, ptr %__first.addr.i, align 8 + %3 = load ptr, ptr %__last.addr.i, align 8 + invoke void @_ZSt8_DestroyIPPK1AEvT_S4_(ptr noundef %2, ptr noundef %3) + to label %_ZSt8_DestroyIPPK1AS2_EvT_S4_RSaIT0_E.exit unwind label %terminate.lpad + +_ZSt8_DestroyIPPK1AS2_EvT_S4_RSaIT0_E.exit: ; preds = %entry + br label %invoke.cont + +invoke.cont: ; preds = %_ZSt8_DestroyIPPK1AS2_EvT_S4_RSaIT0_E.exit + call void @_ZNSt12_Vector_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 ret void terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %4 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #13 + %5 = extractvalue { ptr, i32 } %4, 0 + call void @__clang_call_terminate(ptr %5) #12 unreachable } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #5 + call void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl) #11 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i2 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - call void @_ZNSt12_Vector_baseIPK1ASaIS2_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i2, align 8 + %this1.i3 = load ptr, ptr %this.addr.i2, align 8 + call void @_ZNSt12_Vector_baseIPK1ASaIS2_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 ret void } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EE17_Vector_impl_dataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -507,15 +477,6 @@ entry: ret void } -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNK1A1fEPi(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef %i) unnamed_addr #0 comdat align 2 { entry: @@ -530,21 +491,6 @@ entry: ret void } -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZSt8_DestroyIPPK1AS2_EvT_S4_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef nonnull align 1 dereferenceable(1) %0) #0 comdat { -entry: - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - call void @_ZSt8_DestroyIPPK1AEvT_S4_(ptr noundef %1, ptr noundef %2) - ret void -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -556,9 +502,9 @@ entry: } ; Function Attrs: noinline noreturn nounwind -define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #8 comdat { - %2 = call ptr @__cxa_begin_catch(ptr %0) #5 - call void @_ZSt9terminatev() #13 +define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) #5 comdat { + %2 = call ptr @__cxa_begin_catch(ptr %0) #11 + call void @_ZSt9terminatev() #12 unreachable } @@ -567,7 +513,7 @@ declare ptr @__cxa_begin_catch(ptr) declare void @_ZSt9terminatev() ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -590,14 +536,14 @@ entry: invoke.cont: ; preds = %entry %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - call void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #5 + call void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %_M_impl5) #11 ret void terminate.lpad: ; preds = %entry %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - call void @__clang_call_terminate(ptr %4) #13 + call void @__clang_call_terminate(ptr %4) #12 unreachable } @@ -627,6 +573,9 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EE13_M_deallocateEPS2_m(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 @@ -642,7 +591,13 @@ if.then: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load ptr, ptr %__p.addr, align 8 %2 = load i64, ptr %__n.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, ptr noundef %1, i64 noundef %2) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store ptr %1, ptr %__p.addr.i, align 8 + store i64 %2, ptr %__n.addr.i, align 8 + %3 = load ptr, ptr %__a.addr.i, align 8 + %4 = load ptr, ptr %__p.addr.i, align 8 + %5 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef %4, i64 noundef %5) br label %if.end if.end: ; preds = %if.then, %entry @@ -650,61 +605,38 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt12_Vector_baseIPK1ASaIS2_EE12_Vector_implD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE10deallocateERS3_PS2_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load i64, ptr %__n.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, i64 noundef %2) + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1.i) #11 ret void } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE10deallocateEPS3_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__t) #2 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, i64 noundef %__n) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 %__p.addr = alloca ptr, align 8 - %__t.addr = alloca i64, align 8 + %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__p, ptr %__p.addr, align 8 - store i64 %__t, ptr %__t.addr, align 8 + store i64 %__n, ptr %__n.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %0 = load ptr, ptr %__p.addr, align 8 - call void @_ZdlPv(ptr noundef %0) #5 + call void @_ZdlPv(ptr noundef %0) #13 ret void } ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) #9 - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSaIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret void -} +declare void @_ZdlPv(ptr noundef) #6 ; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #7 comdat align 2 { +define linkonce_odr dso_local void @_ZNSt15__new_allocatorIPK1AED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 @@ -715,9 +647,14 @@ entry: ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPK1ASaIS2_EE12emplace_backIJS2_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i8 = alloca ptr, align 8 + %__args.addr.i9 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 - %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 @@ -736,149 +673,155 @@ if.then: ; preds = %entry %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl4, i32 0, i32 1 %2 = load ptr, ptr %_M_finish5, align 8 %3 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl3, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(8) %3) #5 + store ptr %_M_impl3, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store ptr %3, ptr %__args.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load ptr, ptr %__args.addr.i, align 8 + store ptr %4, ptr %this.addr.i, align 8 + store ptr %5, ptr %__p.addr.i8, align 8 + store ptr %6, ptr %__args.addr.i9, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %7 = load ptr, ptr %__p.addr.i8, align 8 + %8 = load ptr, ptr %__args.addr.i9, align 8 + %9 = load ptr, ptr %8, align 8 + store ptr %9, ptr %7, align 8 %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl6, i32 0, i32 1 - %4 = load ptr, ptr %_M_finish7, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %4, i32 1 + %10 = load ptr, ptr %_M_finish7, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 store ptr %incdec.ptr, ptr %_M_finish7, align 8 br label %if.end if.else: ; preds = %entry - %call = call ptr @_ZNSt6vectorIPK1ASaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %agg.tmp, i32 0, i32 0 - store ptr %call, ptr %coerce.dive, align 8 - %5 = load ptr, ptr %__args.addr, align 8 - %coerce.dive8 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %agg.tmp, i32 0, i32 0 - %6 = load ptr, ptr %coerce.dive8, align 8 - call void @_ZNSt6vectorIPK1ASaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr %6, ptr noundef nonnull align 8 dereferenceable(8) %5) + %11 = load ptr, ptr %__args.addr, align 8 + call void @_ZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef nonnull align 8 dereferenceable(8) %11) br label %if.end if.end: ; preds = %if.else, %if.then - %call9 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - ret ptr %call9 -} - -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load ptr, ptr %__p.addr, align 8 - %2 = load ptr, ptr %__args.addr, align 8 - call void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(8) %2) #5 - ret void + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + ret ptr %call } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local void @_ZNSt6vectorIPK1ASaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr %__position.coerce, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { -entry: - %__position = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 +define linkonce_odr dso_local void @_ZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef nonnull align 8 dereferenceable(8) %__args) #0 comdat align 2 { +entry: + %this.addr.i = alloca ptr, align 8 + %__p.addr.i22 = alloca ptr, align 8 + %__args.addr.i23 = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__args.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__args.addr = alloca ptr, align 8 %__len = alloca i64, align 8 %__old_start = alloca ptr, align 8 %__old_finish = alloca ptr, align 8 - %__elems_before = alloca i64, align 8 + %__elems = alloca i64, align 8 %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 + %ref.tmp4 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 %__new_start = alloca ptr, align 8 %__new_finish = alloca ptr, align 8 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %__position, i32 0, i32 0 - store ptr %__position.coerce, ptr %coerce.dive, align 8 + %__guard = alloca %struct._Guard, align 8 store ptr %this, ptr %this.addr, align 8 store ptr %__args, ptr %__args.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %call = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE12_M_check_lenEmPKc(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef 1, ptr noundef @.str.3) store i64 %call, ptr %__len, align 8 + %0 = load i64, ptr %__len, align 8 + %cmp = icmp ule i64 %0, 0 + br i1 %cmp, label %if.then, label %if.end + +if.then: ; preds = %entry + unreachable + +if.end: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 0 - %0 = load ptr, ptr %_M_start, align 8 - store ptr %0, ptr %__old_start, align 8 + %1 = load ptr, ptr %_M_start, align 8 + store ptr %1, ptr %__old_start, align 8 %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl2, i32 0, i32 1 - %1 = load ptr, ptr %_M_finish, align 8 - store ptr %1, ptr %__old_finish, align 8 - %call3 = call ptr @_ZNSt6vectorIPK1ASaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %coerce.dive4 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp, i32 0, i32 0 - store ptr %call3, ptr %coerce.dive4, align 8 - %call5 = call noundef i64 @_ZN9__gnu_cxxmiIPPK1ASt6vectorIS3_SaIS3_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSB_SE_(ptr noundef nonnull align 8 dereferenceable(8) %__position, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 - store i64 %call5, ptr %__elems_before, align 8 - %2 = load i64, ptr %__len, align 8 - %call6 = call noundef ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %2) - store ptr %call6, ptr %__new_start, align 8 - %3 = load ptr, ptr %__new_start, align 8 - store ptr %3, ptr %__new_finish, align 8 - %_M_impl7 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_finish, align 8 + store ptr %2, ptr %__old_finish, align 8 + %call3 = call ptr @_ZNSt6vectorIPK1ASaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp, i32 0, i32 0 + store ptr %call3, ptr %coerce.dive, align 8 + %call5 = call ptr @_ZNSt6vectorIPK1ASaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %coerce.dive6 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp4, i32 0, i32 0 + store ptr %call5, ptr %coerce.dive6, align 8 + %call7 = call noundef i64 @_ZN9__gnu_cxxmiIPPK1ASt6vectorIS3_SaIS3_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSB_SE_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp4) #11 + store i64 %call7, ptr %__elems, align 8 + %3 = load i64, ptr %__len, align 8 + %call8 = call noundef ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this1, i64 noundef %3) + store ptr %call8, ptr %__new_start, align 8 %4 = load ptr, ptr %__new_start, align 8 - %5 = load i64, ptr %__elems_before, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %4, i64 %5 - %6 = load ptr, ptr %__args.addr, align 8 - call void @_ZNSt16allocator_traitsISaIPK1AEE9constructIS2_JS2_EEEvRS3_PT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl7, ptr noundef %add.ptr, ptr noundef nonnull align 8 dereferenceable(8) %6) #5 - store ptr null, ptr %__new_finish, align 8 - %7 = load ptr, ptr %__old_start, align 8 - %call8 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %8 = load ptr, ptr %call8, align 8 - %9 = load ptr, ptr %__new_start, align 8 - %call9 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call10 = call noundef ptr @_ZNSt6vectorIPK1ASaIS2_EE11_S_relocateEPS2_S5_S5_RS3_(ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull align 1 dereferenceable(1) %call9) #5 - store ptr %call10, ptr %__new_finish, align 8 - %10 = load ptr, ptr %__new_finish, align 8 - %incdec.ptr = getelementptr inbounds ptr, ptr %10, i32 1 - store ptr %incdec.ptr, ptr %__new_finish, align 8 - %call11 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %__position) #5 - %11 = load ptr, ptr %call11, align 8 - %12 = load ptr, ptr %__old_finish, align 8 - %13 = load ptr, ptr %__new_finish, align 8 - %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call13 = call noundef ptr @_ZNSt6vectorIPK1ASaIS2_EE11_S_relocateEPS2_S5_S5_RS3_(ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull align 1 dereferenceable(1) %call12) #5 + store ptr %4, ptr %__new_finish, align 8 + %5 = load ptr, ptr %__new_start, align 8 + %6 = load i64, ptr %__len, align 8 + %_M_impl9 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + call void @_ZZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_EN6_GuardC2EPS2_mRS3_(ptr noundef nonnull align 8 dereferenceable(24) %__guard, ptr noundef %5, i64 noundef %6, ptr noundef nonnull align 1 dereferenceable(1) %_M_impl9) + %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %7 = load ptr, ptr %__new_start, align 8 + %8 = load i64, ptr %__elems, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %7, i64 %8 + %call11 = call noundef ptr @_ZSt12__to_addressIPK1AEPT_S4_(ptr noundef %add.ptr) #11 + %9 = load ptr, ptr %__args.addr, align 8 + store ptr %_M_impl10, ptr %__a.addr.i, align 8 + store ptr %call11, ptr %__p.addr.i, align 8 + store ptr %9, ptr %__args.addr.i, align 8 + %10 = load ptr, ptr %__a.addr.i, align 8 + %11 = load ptr, ptr %__p.addr.i, align 8 + %12 = load ptr, ptr %__args.addr.i, align 8 + store ptr %10, ptr %this.addr.i, align 8 + store ptr %11, ptr %__p.addr.i22, align 8 + store ptr %12, ptr %__args.addr.i23, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %13 = load ptr, ptr %__p.addr.i22, align 8 + %14 = load ptr, ptr %__args.addr.i23, align 8 + %15 = load ptr, ptr %14, align 8 + store ptr %15, ptr %13, align 8 + %16 = load ptr, ptr %__old_start, align 8 + %17 = load ptr, ptr %__old_finish, align 8 + %18 = load ptr, ptr %__new_start, align 8 + %call12 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call13 = call noundef ptr @_ZNSt6vectorIPK1ASaIS2_EE11_S_relocateEPS2_S5_S5_RS3_(ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef nonnull align 1 dereferenceable(1) %call12) #11 store ptr %call13, ptr %__new_finish, align 8 - %14 = load ptr, ptr %__old_start, align 8 + %19 = load ptr, ptr %__new_finish, align 8 + %incdec.ptr = getelementptr inbounds ptr, ptr %19, i32 1 + store ptr %incdec.ptr, ptr %__new_finish, align 8 + %20 = load ptr, ptr %__old_start, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 0 + store ptr %20, ptr %_M_storage, align 8 %_M_impl14 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl14, i32 0, i32 2 - %15 = load ptr, ptr %_M_end_of_storage, align 8 - %16 = load ptr, ptr %__old_start, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %15 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %16 to i64 + %21 = load ptr, ptr %_M_end_of_storage, align 8 + %22 = load ptr, ptr %__old_start, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %21 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %22 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 - call void @_ZNSt12_Vector_baseIPK1ASaIS2_EE13_M_deallocateEPS2_m(ptr noundef nonnull align 8 dereferenceable(24) %this1, ptr noundef %14, i64 noundef %sub.ptr.div) - %17 = load ptr, ptr %__new_start, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %__guard, i32 0, i32 1 + store i64 %sub.ptr.div, ptr %_M_len, align 8 + call void @_ZZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %__guard) #11 + %23 = load ptr, ptr %__new_start, align 8 %_M_impl15 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_start16 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl15, i32 0, i32 0 - store ptr %17, ptr %_M_start16, align 8 - %18 = load ptr, ptr %__new_finish, align 8 + store ptr %23, ptr %_M_start16, align 8 + %24 = load ptr, ptr %__new_finish, align 8 %_M_impl17 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_finish18 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl17, i32 0, i32 1 - store ptr %18, ptr %_M_finish18, align 8 - %19 = load ptr, ptr %__new_start, align 8 - %20 = load i64, ptr %__len, align 8 - %add.ptr19 = getelementptr inbounds ptr, ptr %19, i64 %20 + store ptr %24, ptr %_M_finish18, align 8 + %25 = load ptr, ptr %__new_start, align 8 + %26 = load i64, ptr %__len, align 8 + %add.ptr19 = getelementptr inbounds ptr, ptr %25, i64 %26 %_M_impl20 = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %_M_end_of_storage21 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl20, i32 0, i32 2 store ptr %add.ptr19, ptr %_M_end_of_storage21, align 8 ret void } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local ptr @_ZNSt6vectorIPK1ASaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { -entry: - %retval = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 - %this.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 - %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 - call void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #5 - %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %retval, i32 0, i32 0 - %0 = load ptr, ptr %coerce.dive, align 8 - ret ptr %0 -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPK1ASaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { entry: @@ -887,33 +830,16 @@ entry: %ref.tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call ptr @_ZNSt6vectorIPK1ASaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call ptr @_ZNSt6vectorIPK1ASaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp2, i32 0, i32 0 store ptr %call, ptr %coerce.dive, align 8 - %call3 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEmiEl(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp2, i64 noundef 1) #5 + %call3 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEmiEl(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp2, i64 noundef 1) #11 %coerce.dive4 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %ref.tmp, i32 0, i32 0 store ptr %call3, ptr %coerce.dive4, align 8 - %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 + %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #11 ret ptr %call5 } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx13new_allocatorIPK1AE9constructIS3_JS3_EEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %__p, ptr noundef nonnull align 8 dereferenceable(8) %__args) #2 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__p.addr = alloca ptr, align 8 - %__args.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__p, ptr %__p.addr, align 8 - store ptr %__args, ptr %__args.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %0 = load ptr, ptr %__p.addr, align 8 - %1 = load ptr, ptr %__args.addr, align 8 - %2 = load ptr, ptr %1, align 8 - store ptr %2, ptr %0, align 8 - ret void -} - ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE12_M_check_lenEmPKc(ptr noundef nonnull align 8 dereferenceable(24) %this, i64 noundef %__n, ptr noundef %__s) #0 comdat align 2 { entry: @@ -926,8 +852,8 @@ entry: store i64 %__n, ptr %__n.addr, align 8 store ptr %__s, ptr %__s.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call2 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 %sub = sub i64 %call, %call2 %0 = load i64, ptr %__n.addr, align 8 %cmp = icmp ult i64 %sub, %0 @@ -939,26 +865,26 @@ if.then: ; preds = %entry unreachable if.end: ; preds = %entry - %call3 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call4 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call3 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call4 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 store i64 %call4, ptr %ref.tmp, align 8 %call5 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(8) %__n.addr) %2 = load i64, ptr %call5, align 8 %add = add i64 %call3, %2 store i64 %add, ptr %__len, align 8 %3 = load i64, ptr %__len, align 8 - %call6 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call6 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 %cmp7 = icmp ult i64 %3, %call6 br i1 %cmp7, label %cond.true, label %lor.lhs.false lor.lhs.false: ; preds = %if.end %4 = load i64, ptr %__len, align 8 - %call8 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call8 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 %cmp9 = icmp ugt i64 %4, %call8 br i1 %cmp9, label %cond.true, label %cond.false cond.true: ; preds = %lor.lhs.false, %if.end - %call10 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 + %call10 = call noundef i64 @_ZNKSt6vectorIPK1ASaIS2_EE8max_sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 br label %cond.end cond.false: ; preds = %lor.lhs.false @@ -978,10 +904,10 @@ entry: store ptr %__lhs, ptr %__lhs.addr, align 8 store ptr %__rhs, ptr %__rhs.addr, align 8 %0 = load ptr, ptr %__lhs.addr, align 8 - %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #5 + %call = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %0) #11 %1 = load ptr, ptr %call, align 8 %2 = load ptr, ptr %__rhs.addr, align 8 - %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #5 + %call1 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %2) #11 %3 = load ptr, ptr %call1, align 8 %sub.ptr.lhs.cast = ptrtoint ptr %1 to i64 %sub.ptr.rhs.cast = ptrtoint ptr %3 to i64 @@ -990,9 +916,26 @@ entry: ret i64 %sub.ptr.div } +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local ptr @_ZNSt6vectorIPK1ASaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %this) #2 comdat align 2 { +entry: + %retval = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8 + %this.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 + %_M_finish = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %_M_impl, i32 0, i32 1 + call void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %_M_finish) #11 + %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %retval, i32 0, i32 0 + %0 = load ptr, ptr %coerce.dive, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt12_Vector_baseIPK1ASaIS2_EE11_M_allocateEm(ptr noundef nonnull align 8 dereferenceable(24) %this, i64 noundef %__n) #0 comdat align 2 { entry: + %__a.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 store ptr %this, ptr %this.addr, align 8 @@ -1005,17 +948,54 @@ entry: cond.true: ; preds = %entry %_M_impl = getelementptr inbounds %"struct.std::_Vector_base", ptr %this1, i32 0, i32 0 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %_M_impl, i64 noundef %1) + store ptr %_M_impl, ptr %__a.addr.i, align 8 + store i64 %1, ptr %__n.addr.i, align 8 + %2 = load ptr, ptr %__a.addr.i, align 8 + %3 = load i64, ptr %__n.addr.i, align 8 + %call.i = call noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %2, i64 noundef %3, ptr noundef null) br label %cond.end cond.false: ; preds = %entry br label %cond.end cond.end: ; preds = %cond.false, %cond.true - %cond = phi ptr [ %call, %cond.true ], [ null, %cond.false ] + %cond = phi ptr [ %call.i, %cond.true ], [ null, %cond.false ] ret ptr %cond } +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_EN6_GuardC2EPS2_mRS3_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %__s, i64 noundef %__l, ptr noundef nonnull align 1 dereferenceable(1) %__a) unnamed_addr #4 comdat align 2 { +entry: + %this.addr = alloca ptr, align 8 + %__s.addr = alloca ptr, align 8 + %__l.addr = alloca i64, align 8 + %__a.addr = alloca ptr, align 8 + store ptr %this, ptr %this.addr, align 8 + store ptr %__s, ptr %__s.addr, align 8 + store i64 %__l, ptr %__l.addr, align 8 + store ptr %__a, ptr %__a.addr, align 8 + %this1 = load ptr, ptr %this.addr, align 8 + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__s.addr, align 8 + store ptr %0, ptr %_M_storage, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %1 = load i64, ptr %__l.addr, align 8 + store i64 %1, ptr %_M_len, align 8 + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %2 = load ptr, ptr %__a.addr, align 8 + store ptr %2, ptr %_M_alloc, align 8 + ret void +} + +; Function Attrs: mustprogress noinline nounwind optnone uwtable +define linkonce_odr dso_local noundef ptr @_ZSt12__to_addressIPK1AEPT_S4_(ptr noundef %__ptr) #2 comdat { +entry: + %__ptr.addr = alloca ptr, align 8 + store ptr %__ptr, ptr %__ptr.addr, align 8 + %0 = load ptr, ptr %__ptr.addr, align 8 + ret ptr %0 +} + ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZNSt6vectorIPK1ASaIS2_EE11_S_relocateEPS2_S5_S5_RS3_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { entry: @@ -1023,7 +1003,6 @@ entry: %__last.addr = alloca ptr, align 8 %__result.addr = alloca ptr, align 8 %__alloc.addr = alloca ptr, align 8 - %agg.tmp = alloca %"struct.std::integral_constant", align 1 store ptr %__first, ptr %__first.addr, align 8 store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 @@ -1032,18 +1011,52 @@ entry: %1 = load ptr, ptr %__last.addr, align 8 %2 = load ptr, ptr %__result.addr, align 8 %3 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZNSt6vectorIPK1ASaIS2_EE14_S_do_relocateEPS2_S5_S5_RS3_St17integral_constantIbLb1EE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call = call noundef ptr @_ZSt12__relocate_aIPPK1AS3_SaIS2_EET0_T_S6_S5_RT1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 1 dereferenceable(1) %3) #11 ret ptr %call } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZZNSt6vectorIPK1ASaIS2_EE17_M_realloc_appendIJS2_EEEvDpOT_EN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %this) unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %__a.addr.i = alloca ptr, align 8 + %__p.addr.i = alloca ptr, align 8 + %__n.addr.i = alloca i64, align 8 %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 - ret ptr %_M_current + %_M_storage = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %_M_storage, align 8 + %tobool = icmp ne ptr %0, null + br i1 %tobool, label %if.then, label %if.end + +if.then: ; preds = %entry + %_M_alloc = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 2 + %1 = load ptr, ptr %_M_alloc, align 8 + %_M_storage2 = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 0 + %2 = load ptr, ptr %_M_storage2, align 8 + %_M_len = getelementptr inbounds %struct._Guard, ptr %this1, i32 0, i32 1 + %3 = load i64, ptr %_M_len, align 8 + store ptr %1, ptr %__a.addr.i, align 8 + store ptr %2, ptr %__p.addr.i, align 8 + store i64 %3, ptr %__n.addr.i, align 8 + %4 = load ptr, ptr %__a.addr.i, align 8 + %5 = load ptr, ptr %__p.addr.i, align 8 + %6 = load i64, ptr %__n.addr.i, align 8 + call void @_ZNSt15__new_allocatorIPK1AE10deallocateEPS2_m(ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef %5, i64 noundef %6) + br label %invoke.cont + +invoke.cont: ; preds = %if.then + br label %if.end + +if.end: ; preds = %invoke.cont, %entry + ret void + +terminate.lpad: ; No predecessors! + %7 = landingpad { ptr, i32 } + catch ptr null + %8 = extractvalue { ptr, i32 } %7, 0 + call void @__clang_call_terminate(ptr %8) #12 + unreachable } ; Function Attrs: mustprogress noinline nounwind optnone uwtable @@ -1052,8 +1065,8 @@ entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #5 - %call2 = call noundef i64 @_ZNSt6vectorIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #5 + %call = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt12_Vector_baseIPK1ASaIS2_EE19_M_get_Tp_allocatorEv(ptr noundef nonnull align 8 dereferenceable(24) %this1) #11 + %call2 = call noundef i64 @_ZNSt6vectorIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %call) #11 ret i64 %call2 } @@ -1076,8 +1089,8 @@ entry: ret i64 %sub.ptr.div } -; Function Attrs: noreturn -declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #10 +; Function Attrs: cold noreturn +declare void @_ZSt20__throw_length_errorPKc(ptr noundef) #7 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { @@ -1112,26 +1125,34 @@ return: ; preds = %if.end, %if.then ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef i64 @_ZNSt6vectorIPK1ASaIS2_EE11_S_max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 personality ptr @__gxx_personality_v0 { entry: + %this.addr.i3 = alloca ptr, align 8 + %this.addr.i = alloca ptr, align 8 + %__a.addr.i = alloca ptr, align 8 %__a.addr = alloca ptr, align 8 %__diffmax = alloca i64, align 8 %__allocmax = alloca i64, align 8 store ptr %__a, ptr %__a.addr, align 8 store i64 1152921504606846975, ptr %__diffmax, align 8 %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - store i64 %call, ptr %__allocmax, align 8 + store ptr %0, ptr %__a.addr.i, align 8 + %1 = load ptr, ptr %__a.addr.i, align 8 + store ptr %1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + store ptr %this1.i, ptr %this.addr.i3, align 8 + %this1.i4 = load ptr, ptr %this.addr.i3, align 8 + store i64 1152921504606846975, ptr %__allocmax, align 8 %call1 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__diffmax, ptr noundef nonnull align 8 dereferenceable(8) %__allocmax) to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %entry - %1 = load i64, ptr %call1, align 8 - ret i64 %1 + %2 = load i64, ptr %call1, align 8 + ret i64 %2 terminate.lpad: ; preds = %entry - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } catch ptr null - %3 = extractvalue { ptr, i32 } %2, 0 - call void @__clang_call_terminate(ptr %3) #13 + %4 = extractvalue { ptr, i32 } %3, 0 + call void @__clang_call_terminate(ptr %4) #12 unreachable } @@ -1145,16 +1166,6 @@ entry: ret ptr %_M_impl } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNSt16allocator_traitsISaIPK1AEE8max_sizeERKS3_(ptr noundef nonnull align 1 dereferenceable(1) %__a) #2 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - store ptr %__a, ptr %__a.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %0) #5 - ret i64 %call -} - ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %__a, ptr noundef nonnull align 8 dereferenceable(8) %__b) #2 comdat { entry: @@ -1186,40 +1197,34 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE8max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEE4baseEv(ptr noundef nonnull align 8 dereferenceable(8) %this) #2 comdat align 2 { entry: %this.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - ret i64 %call + %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 + ret ptr %_M_current } -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this) #2 comdat align 2 { +; Function Attrs: noinline nounwind optnone uwtable +define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #4 comdat align 2 { entry: %this.addr = alloca ptr, align 8 + %__i.addr = alloca ptr, align 8 store ptr %this, ptr %this.addr, align 8 + store ptr %__i, ptr %__i.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 - ret i64 1152921504606846975 -} - -; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt16allocator_traitsISaIPK1AEE8allocateERS3_m(ptr noundef nonnull align 1 dereferenceable(1) %__a, i64 noundef %__n) #0 comdat align 2 { -entry: - %__a.addr = alloca ptr, align 8 - %__n.addr = alloca i64, align 8 - store ptr %__a, ptr %__a.addr, align 8 - store i64 %__n, ptr %__n.addr, align 8 - %0 = load ptr, ptr %__a.addr, align 8 - %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %0, i64 noundef %1, ptr noundef null) - ret ptr %call + %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 + %0 = load ptr, ptr %__i.addr, align 8 + %1 = load ptr, ptr %0, align 8 + store ptr %1, ptr %_M_current, align 8 + ret void } ; Function Attrs: mustprogress noinline optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZN9__gnu_cxx13new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { +define linkonce_odr dso_local noundef ptr @_ZNSt15__new_allocatorIPK1AE8allocateEmPKv(ptr noundef nonnull align 1 dereferenceable(1) %this, i64 noundef %__n, ptr noundef %0) #0 comdat align 2 { entry: + %this.addr.i = alloca ptr, align 8 %this.addr = alloca ptr, align 8 %__n.addr = alloca i64, align 8 %.addr = alloca ptr, align 8 @@ -1228,46 +1233,39 @@ entry: store ptr %0, ptr %.addr, align 8 %this1 = load ptr, ptr %this.addr, align 8 %1 = load i64, ptr %__n.addr, align 8 - %call = call noundef i64 @_ZNK9__gnu_cxx13new_allocatorIPK1AE11_M_max_sizeEv(ptr noundef nonnull align 1 dereferenceable(1) %this1) #5 - %cmp = icmp ugt i64 %1, %call - br i1 %cmp, label %if.then, label %if.end + store ptr %this1, ptr %this.addr.i, align 8 + %this1.i = load ptr, ptr %this.addr.i, align 8 + %cmp = icmp ugt i64 %1, 1152921504606846975 + br i1 %cmp, label %if.then, label %if.end4 if.then: ; preds = %entry - call void @_ZSt17__throw_bad_allocv() #14 + %2 = load i64, ptr %__n.addr, align 8 + %cmp2 = icmp ugt i64 %2, 2305843009213693951 + br i1 %cmp2, label %if.then3, label %if.end + +if.then3: ; preds = %if.then + call void @_ZSt28__throw_bad_array_new_lengthv() #15 unreachable -if.end: ; preds = %entry - %2 = load i64, ptr %__n.addr, align 8 - %mul = mul i64 %2, 8 - %call2 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #15 - ret ptr %call2 +if.end: ; preds = %if.then + call void @_ZSt17__throw_bad_allocv() #15 + unreachable + +if.end4: ; preds = %entry + %3 = load i64, ptr %__n.addr, align 8 + %mul = mul i64 %3, 8 + %call5 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %mul) #16 + ret ptr %call5 } ; Function Attrs: noreturn -declare void @_ZSt17__throw_bad_allocv() #10 +declare void @_ZSt28__throw_bad_array_new_lengthv() #8 -; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znwm(i64 noundef) #11 +; Function Attrs: noreturn +declare void @_ZSt17__throw_bad_allocv() #8 -; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZNSt6vectorIPK1ASaIS2_EE14_S_do_relocateEPS2_S5_S5_RS3_St17integral_constantIbLb1EE(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat align 2 { -entry: - %0 = alloca %"struct.std::integral_constant", align 1 - %__first.addr = alloca ptr, align 8 - %__last.addr = alloca ptr, align 8 - %__result.addr = alloca ptr, align 8 - %__alloc.addr = alloca ptr, align 8 - store ptr %__first, ptr %__first.addr, align 8 - store ptr %__last, ptr %__last.addr, align 8 - store ptr %__result, ptr %__result.addr, align 8 - store ptr %__alloc, ptr %__alloc.addr, align 8 - %1 = load ptr, ptr %__first.addr, align 8 - %2 = load ptr, ptr %__last.addr, align 8 - %3 = load ptr, ptr %__result.addr, align 8 - %4 = load ptr, ptr %__alloc.addr, align 8 - %call = call noundef ptr @_ZSt12__relocate_aIPPK1AS3_SaIS2_EET0_T_S6_S5_RT1_(ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 1 dereferenceable(1) %4) #5 - ret ptr %call -} +; Function Attrs: nobuiltin allocsize(0) +declare noundef nonnull ptr @_Znwm(i64 noundef) #9 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local noundef ptr @_ZSt12__relocate_aIPPK1AS3_SaIS2_EET0_T_S6_S5_RT1_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { @@ -1281,51 +1279,51 @@ entry: store ptr %__result, ptr %__result.addr, align 8 store ptr %__alloc, ptr %__alloc.addr, align 8 %0 = load ptr, ptr %__first.addr, align 8 - %call = call noundef ptr @_ZSt12__niter_baseIPPK1AET_S4_(ptr noundef %0) #5 + %call = call noundef ptr @_ZSt12__niter_baseIPPK1AET_S4_(ptr noundef %0) #11 %1 = load ptr, ptr %__last.addr, align 8 - %call1 = call noundef ptr @_ZSt12__niter_baseIPPK1AET_S4_(ptr noundef %1) #5 + %call1 = call noundef ptr @_ZSt12__niter_baseIPPK1AET_S4_(ptr noundef %1) #11 %2 = load ptr, ptr %__result.addr, align 8 - %call2 = call noundef ptr @_ZSt12__niter_baseIPPK1AET_S4_(ptr noundef %2) #5 + %call2 = call noundef ptr @_ZSt12__niter_baseIPPK1AET_S4_(ptr noundef %2) #11 %3 = load ptr, ptr %__alloc.addr, align 8 - %call3 = call noundef ptr @_ZSt14__relocate_a_1IPK1AS2_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS4_E4typeES5_S5_S5_RSaIT0_E(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #5 + %call3 = call noundef ptr @_ZSt14__relocate_a_1IPK1AS2_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS4_E4typeES5_S5_S5_RSaIT0_E(ptr noundef %call, ptr noundef %call1, ptr noundef %call2, ptr noundef nonnull align 1 dereferenceable(1) %3) #11 ret ptr %call3 } ; Function Attrs: mustprogress noinline nounwind optnone uwtable -define linkonce_odr dso_local noundef ptr @_ZSt14__relocate_a_1IPK1AS2_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS4_E4typeES5_S5_S5_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %0) #2 comdat { +define linkonce_odr dso_local noundef ptr @_ZSt14__relocate_a_1IPK1AS2_ENSt9enable_ifIXsr3std24__is_bitwise_relocatableIT_EE5valueEPS4_E4typeES5_S5_S5_RSaIT0_E(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) #2 comdat { entry: %__first.addr = alloca ptr, align 8 %__last.addr = alloca ptr, align 8 %__result.addr = alloca ptr, align 8 - %.addr = alloca ptr, align 8 + %__alloc.addr = alloca ptr, align 8 %__count = alloca i64, align 8 store ptr %__first, ptr %__first.addr, align 8 store ptr %__last, ptr %__last.addr, align 8 store ptr %__result, ptr %__result.addr, align 8 - store ptr %0, ptr %.addr, align 8 - %1 = load ptr, ptr %__last.addr, align 8 - %2 = load ptr, ptr %__first.addr, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %1 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %2 to i64 + store ptr %__alloc, ptr %__alloc.addr, align 8 + %0 = load ptr, ptr %__last.addr, align 8 + %1 = load ptr, ptr %__first.addr, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %0 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %1 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 8 store i64 %sub.ptr.div, ptr %__count, align 8 - %3 = load i64, ptr %__count, align 8 - %cmp = icmp sgt i64 %3, 0 + %2 = load i64, ptr %__count, align 8 + %cmp = icmp sgt i64 %2, 0 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - %4 = load ptr, ptr %__result.addr, align 8 - %5 = load ptr, ptr %__first.addr, align 8 - %6 = load i64, ptr %__count, align 8 - %mul = mul i64 %6, 8 - call void @llvm.memmove.p0.p0.i64(ptr align 8 %4, ptr align 8 %5, i64 %mul, i1 false) + %3 = load ptr, ptr %__result.addr, align 8 + %4 = load ptr, ptr %__first.addr, align 8 + %5 = load i64, ptr %__count, align 8 + %mul = mul i64 %5, 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 %mul, i1 false) br label %if.end if.end: ; preds = %if.then, %entry - %7 = load ptr, ptr %__result.addr, align 8 - %8 = load i64, ptr %__count, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %7, i64 %8 + %6 = load ptr, ptr %__result.addr, align 8 + %7 = load i64, ptr %__count, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %6, i64 %7 ret ptr %add.ptr } @@ -1339,22 +1337,7 @@ entry: } ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #12 - -; Function Attrs: noinline nounwind optnone uwtable -define linkonce_odr dso_local void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %this, ptr noundef nonnull align 8 dereferenceable(8) %__i) unnamed_addr #7 comdat align 2 { -entry: - %this.addr = alloca ptr, align 8 - %__i.addr = alloca ptr, align 8 - store ptr %this, ptr %this.addr, align 8 - store ptr %__i, ptr %__i.addr, align 8 - %this1 = load ptr, ptr %this.addr, align 8 - %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %this1, i32 0, i32 0 - %0 = load ptr, ptr %__i.addr, align 8 - %1 = load ptr, ptr %0, align 8 - store ptr %1, ptr %_M_current, align 8 - ret void -} +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10 ; Function Attrs: mustprogress noinline nounwind optnone uwtable define linkonce_odr dso_local ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEmiEl(ptr noundef nonnull align 8 dereferenceable(8) %this, i64 noundef %__n) #2 comdat align 2 { @@ -1372,7 +1355,7 @@ entry: %idx.neg = sub i64 0, %1 %add.ptr = getelementptr inbounds ptr, ptr %0, i64 %idx.neg store ptr %add.ptr, ptr %ref.tmp, align 8 - call void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #5 + call void @_ZN9__gnu_cxx17__normal_iteratorIPPK1ASt6vectorIS3_SaIS3_EEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(8) %retval, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #11 %coerce.dive = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %retval, i32 0, i32 0 %2 = load ptr, ptr %coerce.dive, align 8 ret ptr %2 @@ -1389,29 +1372,23 @@ entry: ret ptr %0 } -; Function Attrs: noinline uwtable -define internal void @_GLOBAL__sub_I_vector_4.cpp() #3 section ".text.startup" { -entry: - call void @__cxx_global_var_init() - ret void -} - attributes #0 = { mustprogress noinline optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { noinline uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nounwind } -attributes #6 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #11 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #13 = { noreturn nounwind } -attributes #14 = { noreturn } -attributes #15 = { allocsize(0) } +attributes #3 = { mustprogress noinline norecurse optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { noinline noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nobuiltin nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { cold noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #11 = { nounwind } +attributes #12 = { noreturn nounwind } +attributes #13 = { builtin nounwind } +attributes #14 = { cold noreturn } +attributes #15 = { noreturn } +attributes #16 = { builtin allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4} !llvm.ident = !{!5} @@ -1421,4 +1398,4 @@ attributes #15 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/virtual-call-simple.cpp.bc b/test_cases_bc/basic_cpp_tests/virtual-call-simple.cpp.bc index 25e1091c..109c997a 100644 --- a/test_cases_bc/basic_cpp_tests/virtual-call-simple.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/virtual-call-simple.cpp.bc @@ -153,4 +153,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/virtual-diamond-inheritance-2.cpp.bc b/test_cases_bc/basic_cpp_tests/virtual-diamond-inheritance-2.cpp.bc index 330010d4..daac5217 100644 --- a/test_cases_bc/basic_cpp_tests/virtual-diamond-inheritance-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/virtual-diamond-inheritance-2.cpp.bc @@ -529,4 +529,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/virtual-inheritance-1.cpp.bc b/test_cases_bc/basic_cpp_tests/virtual-inheritance-1.cpp.bc index 6af1332a..ab28fcca 100644 --- a/test_cases_bc/basic_cpp_tests/virtual-inheritance-1.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/virtual-inheritance-1.cpp.bc @@ -263,4 +263,4 @@ attributes #7 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/virtual-inheritance-2.cpp.bc b/test_cases_bc/basic_cpp_tests/virtual-inheritance-2.cpp.bc index ae07e82d..74618376 100644 --- a/test_cases_bc/basic_cpp_tests/virtual-inheritance-2.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/virtual-inheritance-2.cpp.bc @@ -307,4 +307,4 @@ attributes #8 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/basic_cpp_tests/virtual-inheritance-3.cpp.bc b/test_cases_bc/basic_cpp_tests/virtual-inheritance-3.cpp.bc index c9fbf12e..c8ec99cd 100644 --- a/test_cases_bc/basic_cpp_tests/virtual-inheritance-3.cpp.bc +++ b/test_cases_bc/basic_cpp_tests/virtual-inheritance-3.cpp.bc @@ -372,4 +372,4 @@ attributes #8 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/cond-swap.c.bc b/test_cases_bc/complex_tests/cond-swap.c.bc index 70cc2a1d..a4188c53 100644 --- a/test_cases_bc/complex_tests/cond-swap.c.bc +++ b/test_cases_bc/complex_tests/cond-swap.c.bc @@ -68,4 +68,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-array.c.bc b/test_cases_bc/complex_tests/swap-array.c.bc index 6c198b2d..80e9c446 100644 --- a/test_cases_bc/complex_tests/swap-array.c.bc +++ b/test_cases_bc/complex_tests/swap-array.c.bc @@ -60,4 +60,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-funcptr.c.bc b/test_cases_bc/complex_tests/swap-funcptr.c.bc index f59ceaa3..5b5b4016 100644 --- a/test_cases_bc/complex_tests/swap-funcptr.c.bc +++ b/test_cases_bc/complex_tests/swap-funcptr.c.bc @@ -59,4 +59,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-funcptr1.c.bc b/test_cases_bc/complex_tests/swap-funcptr1.c.bc index 699f3e4d..84d611d2 100644 --- a/test_cases_bc/complex_tests/swap-funcptr1.c.bc +++ b/test_cases_bc/complex_tests/swap-funcptr1.c.bc @@ -69,4 +69,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-funcptr2.c.bc b/test_cases_bc/complex_tests/swap-funcptr2.c.bc index 33060114..03cbba57 100644 --- a/test_cases_bc/complex_tests/swap-funcptr2.c.bc +++ b/test_cases_bc/complex_tests/swap-funcptr2.c.bc @@ -69,4 +69,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-global.c.bc b/test_cases_bc/complex_tests/swap-global.c.bc index 0718c40a..cbb1fd33 100644 --- a/test_cases_bc/complex_tests/swap-global.c.bc +++ b/test_cases_bc/complex_tests/swap-global.c.bc @@ -56,4 +56,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-global1.c.bc b/test_cases_bc/complex_tests/swap-global1.c.bc index 6655fd9d..ab3c0c33 100644 --- a/test_cases_bc/complex_tests/swap-global1.c.bc +++ b/test_cases_bc/complex_tests/swap-global1.c.bc @@ -48,4 +48,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-global2.c.bc b/test_cases_bc/complex_tests/swap-global2.c.bc index 1ef0d240..95dc8cd4 100644 --- a/test_cases_bc/complex_tests/swap-global2.c.bc +++ b/test_cases_bc/complex_tests/swap-global2.c.bc @@ -55,4 +55,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-heap.c.bc b/test_cases_bc/complex_tests/swap-heap.c.bc index 95edf149..93dbf983 100644 --- a/test_cases_bc/complex_tests/swap-heap.c.bc +++ b/test_cases_bc/complex_tests/swap-heap.c.bc @@ -81,4 +81,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-heap1.c.bc b/test_cases_bc/complex_tests/swap-heap1.c.bc index 74bca53e..92336e46 100644 --- a/test_cases_bc/complex_tests/swap-heap1.c.bc +++ b/test_cases_bc/complex_tests/swap-heap1.c.bc @@ -84,4 +84,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-heap2.c.bc b/test_cases_bc/complex_tests/swap-heap2.c.bc index 08834159..fbba5f7a 100644 --- a/test_cases_bc/complex_tests/swap-heap2.c.bc +++ b/test_cases_bc/complex_tests/swap-heap2.c.bc @@ -88,4 +88,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-heap3.c.bc b/test_cases_bc/complex_tests/swap-heap3.c.bc index 38157dc9..c3ce647e 100644 --- a/test_cases_bc/complex_tests/swap-heap3.c.bc +++ b/test_cases_bc/complex_tests/swap-heap3.c.bc @@ -88,4 +88,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-heap4.c.bc b/test_cases_bc/complex_tests/swap-heap4.c.bc index 0ff321ad..fd369f98 100644 --- a/test_cases_bc/complex_tests/swap-heap4.c.bc +++ b/test_cases_bc/complex_tests/swap-heap4.c.bc @@ -93,4 +93,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-indirect.c.bc b/test_cases_bc/complex_tests/swap-indirect.c.bc index c3ac4b9b..57af65bb 100644 --- a/test_cases_bc/complex_tests/swap-indirect.c.bc +++ b/test_cases_bc/complex_tests/swap-indirect.c.bc @@ -73,4 +73,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-indirect1.c.bc b/test_cases_bc/complex_tests/swap-indirect1.c.bc index 45c86442..8e614057 100644 --- a/test_cases_bc/complex_tests/swap-indirect1.c.bc +++ b/test_cases_bc/complex_tests/swap-indirect1.c.bc @@ -80,4 +80,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-indirect2.c.bc b/test_cases_bc/complex_tests/swap-indirect2.c.bc index 863f9c7e..abeaa2f2 100644 --- a/test_cases_bc/complex_tests/swap-indirect2.c.bc +++ b/test_cases_bc/complex_tests/swap-indirect2.c.bc @@ -96,4 +96,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-recursion.c.bc b/test_cases_bc/complex_tests/swap-recursion.c.bc index 7b3a8000..09fa2508 100644 --- a/test_cases_bc/complex_tests/swap-recursion.c.bc +++ b/test_cases_bc/complex_tests/swap-recursion.c.bc @@ -85,4 +85,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-struct.c.bc b/test_cases_bc/complex_tests/swap-struct.c.bc index f970c306..796acc0d 100644 --- a/test_cases_bc/complex_tests/swap-struct.c.bc +++ b/test_cases_bc/complex_tests/swap-struct.c.bc @@ -62,4 +62,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-struct1.c.bc b/test_cases_bc/complex_tests/swap-struct1.c.bc index 68eb7be1..e58a2290 100644 --- a/test_cases_bc/complex_tests/swap-struct1.c.bc +++ b/test_cases_bc/complex_tests/swap-struct1.c.bc @@ -62,4 +62,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap-structindirect.c.bc b/test_cases_bc/complex_tests/swap-structindirect.c.bc index e4c4bc0d..a4253386 100644 --- a/test_cases_bc/complex_tests/swap-structindirect.c.bc +++ b/test_cases_bc/complex_tests/swap-structindirect.c.bc @@ -68,4 +68,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap.c.bc b/test_cases_bc/complex_tests/swap.c.bc index 497c8e9e..a4d1b1ce 100644 --- a/test_cases_bc/complex_tests/swap.c.bc +++ b/test_cases_bc/complex_tests/swap.c.bc @@ -55,4 +55,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap1.c.bc b/test_cases_bc/complex_tests/swap1.c.bc index 48495f68..e16c8802 100644 --- a/test_cases_bc/complex_tests/swap1.c.bc +++ b/test_cases_bc/complex_tests/swap1.c.bc @@ -69,4 +69,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap4-context.c.bc b/test_cases_bc/complex_tests/swap4-context.c.bc index 1a63f722..3c19ad89 100644 --- a/test_cases_bc/complex_tests/swap4-context.c.bc +++ b/test_cases_bc/complex_tests/swap4-context.c.bc @@ -105,4 +105,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap4-context1.c.bc b/test_cases_bc/complex_tests/swap4-context1.c.bc index f5b40a2c..6c2781b9 100644 --- a/test_cases_bc/complex_tests/swap4-context1.c.bc +++ b/test_cases_bc/complex_tests/swap4-context1.c.bc @@ -169,4 +169,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap4-contextindirect.c.bc b/test_cases_bc/complex_tests/swap4-contextindirect.c.bc index 585d9385..ff6822ce 100644 --- a/test_cases_bc/complex_tests/swap4-contextindirect.c.bc +++ b/test_cases_bc/complex_tests/swap4-contextindirect.c.bc @@ -132,4 +132,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/swap4.c.bc b/test_cases_bc/complex_tests/swap4.c.bc index 0511f813..432fab84 100644 --- a/test_cases_bc/complex_tests/swap4.c.bc +++ b/test_cases_bc/complex_tests/swap4.c.bc @@ -57,4 +57,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-clone.c.bc b/test_cases_bc/complex_tests/test-clone.c.bc index 5e4199be..09814168 100644 --- a/test_cases_bc/complex_tests/test-clone.c.bc +++ b/test_cases_bc/complex_tests/test-clone.c.bc @@ -116,4 +116,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-clone1.c.bc b/test_cases_bc/complex_tests/test-clone1.c.bc index abde6619..1118aeee 100644 --- a/test_cases_bc/complex_tests/test-clone1.c.bc +++ b/test_cases_bc/complex_tests/test-clone1.c.bc @@ -124,4 +124,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-cond.c.bc b/test_cases_bc/complex_tests/test-cond.c.bc index 6cd0ebf9..65b2b854 100644 --- a/test_cases_bc/complex_tests/test-cond.c.bc +++ b/test_cases_bc/complex_tests/test-cond.c.bc @@ -47,4 +47,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-globalstruct.c.bc b/test_cases_bc/complex_tests/test-globalstruct.c.bc index 7933d385..ecfc8cea 100644 --- a/test_cases_bc/complex_tests/test-globalstruct.c.bc +++ b/test_cases_bc/complex_tests/test-globalstruct.c.bc @@ -30,4 +30,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-indirect.c.bc b/test_cases_bc/complex_tests/test-indirect.c.bc index 1eaf3257..bbbc03f3 100644 --- a/test_cases_bc/complex_tests/test-indirect.c.bc +++ b/test_cases_bc/complex_tests/test-indirect.c.bc @@ -60,4 +60,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-indirect1.c.bc b/test_cases_bc/complex_tests/test-indirect1.c.bc index 1bce2083..e654777d 100644 --- a/test_cases_bc/complex_tests/test-indirect1.c.bc +++ b/test_cases_bc/complex_tests/test-indirect1.c.bc @@ -67,4 +67,4 @@ attributes #2 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-linklist.c.bc b/test_cases_bc/complex_tests/test-linklist.c.bc index a10a86ee..c0628574 100644 --- a/test_cases_bc/complex_tests/test-linklist.c.bc +++ b/test_cases_bc/complex_tests/test-linklist.c.bc @@ -167,7 +167,7 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/complex_tests/test-linklist1.c.bc b/test_cases_bc/complex_tests/test-linklist1.c.bc index 3352faaf..1080c6b9 100644 --- a/test_cases_bc/complex_tests/test-linklist1.c.bc +++ b/test_cases_bc/complex_tests/test-linklist1.c.bc @@ -139,7 +139,7 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/complex_tests/test-path.c.bc b/test_cases_bc/complex_tests/test-path.c.bc index 714bd27b..96282d70 100644 --- a/test_cases_bc/complex_tests/test-path.c.bc +++ b/test_cases_bc/complex_tests/test-path.c.bc @@ -101,4 +101,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-recursive.c.bc b/test_cases_bc/complex_tests/test-recursive.c.bc index b14af192..ed966efe 100644 --- a/test_cases_bc/complex_tests/test-recursive.c.bc +++ b/test_cases_bc/complex_tests/test-recursive.c.bc @@ -87,4 +87,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-recursive0.c.bc b/test_cases_bc/complex_tests/test-recursive0.c.bc index 10d34b86..9abd599e 100644 --- a/test_cases_bc/complex_tests/test-recursive0.c.bc +++ b/test_cases_bc/complex_tests/test-recursive0.c.bc @@ -73,4 +73,4 @@ attributes #2 = { allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-recursive1.c.bc b/test_cases_bc/complex_tests/test-recursive1.c.bc index 1b64723b..dfa6cebe 100644 --- a/test_cases_bc/complex_tests/test-recursive1.c.bc +++ b/test_cases_bc/complex_tests/test-recursive1.c.bc @@ -170,7 +170,7 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/complex_tests/test-recursive2.c.bc b/test_cases_bc/complex_tests/test-recursive2.c.bc index 530d1630..55d9819d 100644 --- a/test_cases_bc/complex_tests/test-recursive2.c.bc +++ b/test_cases_bc/complex_tests/test-recursive2.c.bc @@ -200,7 +200,7 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/complex_tests/test-recursiveglobal.c.bc b/test_cases_bc/complex_tests/test-recursiveglobal.c.bc index 17026d52..28298d39 100644 --- a/test_cases_bc/complex_tests/test-recursiveglobal.c.bc +++ b/test_cases_bc/complex_tests/test-recursiveglobal.c.bc @@ -65,4 +65,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-recursiveglobal1.c.bc b/test_cases_bc/complex_tests/test-recursiveglobal1.c.bc index e692f4b7..25535637 100644 --- a/test_cases_bc/complex_tests/test-recursiveglobal1.c.bc +++ b/test_cases_bc/complex_tests/test-recursiveglobal1.c.bc @@ -68,4 +68,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test-recursiveglobal2.c.bc b/test_cases_bc/complex_tests/test-recursiveglobal2.c.bc index 3cd25a68..bbbacb35 100644 --- a/test_cases_bc/complex_tests/test-recursiveglobal2.c.bc +++ b/test_cases_bc/complex_tests/test-recursiveglobal2.c.bc @@ -69,4 +69,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test.c.bc b/test_cases_bc/complex_tests/test.c.bc index e266aa1f..4a8a7610 100644 --- a/test_cases_bc/complex_tests/test.c.bc +++ b/test_cases_bc/complex_tests/test.c.bc @@ -76,4 +76,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test1-path.c.bc b/test_cases_bc/complex_tests/test1-path.c.bc index fa750c35..c54b4b1e 100644 --- a/test_cases_bc/complex_tests/test1-path.c.bc +++ b/test_cases_bc/complex_tests/test1-path.c.bc @@ -72,4 +72,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test1.c.bc b/test_cases_bc/complex_tests/test1.c.bc index b185136d..6b010dd6 100644 --- a/test_cases_bc/complex_tests/test1.c.bc +++ b/test_cases_bc/complex_tests/test1.c.bc @@ -66,4 +66,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test2-path.c.bc b/test_cases_bc/complex_tests/test2-path.c.bc index 415bf2d2..aaa6d7b4 100644 --- a/test_cases_bc/complex_tests/test2-path.c.bc +++ b/test_cases_bc/complex_tests/test2-path.c.bc @@ -78,4 +78,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test2.c.bc b/test_cases_bc/complex_tests/test2.c.bc index 06f07682..280a929d 100644 --- a/test_cases_bc/complex_tests/test2.c.bc +++ b/test_cases_bc/complex_tests/test2.c.bc @@ -53,4 +53,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test3-path.c.bc b/test_cases_bc/complex_tests/test3-path.c.bc index e5910b7e..3b818dde 100644 --- a/test_cases_bc/complex_tests/test3-path.c.bc +++ b/test_cases_bc/complex_tests/test3-path.c.bc @@ -101,4 +101,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test3.c.bc b/test_cases_bc/complex_tests/test3.c.bc index 18d6e294..36915ad1 100644 --- a/test_cases_bc/complex_tests/test3.c.bc +++ b/test_cases_bc/complex_tests/test3.c.bc @@ -92,4 +92,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test4.c.bc b/test_cases_bc/complex_tests/test4.c.bc index ee8f1ede..1eae990b 100644 --- a/test_cases_bc/complex_tests/test4.c.bc +++ b/test_cases_bc/complex_tests/test4.c.bc @@ -96,4 +96,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test5.c.bc b/test_cases_bc/complex_tests/test5.c.bc index 7a5d9565..6e9c378e 100644 --- a/test_cases_bc/complex_tests/test5.c.bc +++ b/test_cases_bc/complex_tests/test5.c.bc @@ -57,4 +57,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test6.c.bc b/test_cases_bc/complex_tests/test6.c.bc index 786c21b9..55824410 100644 --- a/test_cases_bc/complex_tests/test6.c.bc +++ b/test_cases_bc/complex_tests/test6.c.bc @@ -54,4 +54,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/complex_tests/test8.c.bc b/test_cases_bc/complex_tests/test8.c.bc index 55f8c53b..93fcd258 100644 --- a/test_cases_bc/complex_tests/test8.c.bc +++ b/test_cases_bc/complex_tests/test8.c.bc @@ -44,4 +44,4 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cpp_types/broken.cpp.bc b/test_cases_bc/cpp_types/broken.cpp.bc index 2995ea26..26b60ab6 100644 --- a/test_cases_bc/cpp_types/broken.cpp.bc +++ b/test_cases_bc/cpp_types/broken.cpp.bc @@ -84,4 +84,4 @@ attributes #6 = { builtin nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs0.c.bc b/test_cases_bc/cs_tests/cs0.c.bc index 52d1cace..c6b169be 100644 --- a/test_cases_bc/cs_tests/cs0.c.bc +++ b/test_cases_bc/cs_tests/cs0.c.bc @@ -192,4 +192,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs1.c.bc b/test_cases_bc/cs_tests/cs1.c.bc index 6f344e87..34d725ad 100644 --- a/test_cases_bc/cs_tests/cs1.c.bc +++ b/test_cases_bc/cs_tests/cs1.c.bc @@ -181,4 +181,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs10.c.bc b/test_cases_bc/cs_tests/cs10.c.bc index 5e3c4b5d..bf5b7769 100644 --- a/test_cases_bc/cs_tests/cs10.c.bc +++ b/test_cases_bc/cs_tests/cs10.c.bc @@ -217,4 +217,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs11.c.bc b/test_cases_bc/cs_tests/cs11.c.bc index bcacf0d5..6ef83183 100644 --- a/test_cases_bc/cs_tests/cs11.c.bc +++ b/test_cases_bc/cs_tests/cs11.c.bc @@ -186,4 +186,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs12.c.bc b/test_cases_bc/cs_tests/cs12.c.bc index b3399590..d4913fb1 100644 --- a/test_cases_bc/cs_tests/cs12.c.bc +++ b/test_cases_bc/cs_tests/cs12.c.bc @@ -190,4 +190,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs13.c.bc b/test_cases_bc/cs_tests/cs13.c.bc index 295497cb..d4a6d24c 100644 --- a/test_cases_bc/cs_tests/cs13.c.bc +++ b/test_cases_bc/cs_tests/cs13.c.bc @@ -193,4 +193,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs14.c.bc b/test_cases_bc/cs_tests/cs14.c.bc index 1c4eeb24..6627131a 100644 --- a/test_cases_bc/cs_tests/cs14.c.bc +++ b/test_cases_bc/cs_tests/cs14.c.bc @@ -207,4 +207,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs15.c.bc b/test_cases_bc/cs_tests/cs15.c.bc index 4a87bc2d..462b5dfb 100644 --- a/test_cases_bc/cs_tests/cs15.c.bc +++ b/test_cases_bc/cs_tests/cs15.c.bc @@ -222,4 +222,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs16.c.bc b/test_cases_bc/cs_tests/cs16.c.bc index f9cba4c1..9355a1c5 100644 --- a/test_cases_bc/cs_tests/cs16.c.bc +++ b/test_cases_bc/cs_tests/cs16.c.bc @@ -197,4 +197,4 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs17.c.bc b/test_cases_bc/cs_tests/cs17.c.bc index 24dd0dda..247b2c20 100644 --- a/test_cases_bc/cs_tests/cs17.c.bc +++ b/test_cases_bc/cs_tests/cs17.c.bc @@ -238,4 +238,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs18.c.bc b/test_cases_bc/cs_tests/cs18.c.bc index 7a67c600..dd87a910 100644 --- a/test_cases_bc/cs_tests/cs18.c.bc +++ b/test_cases_bc/cs_tests/cs18.c.bc @@ -198,4 +198,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs19.c.bc b/test_cases_bc/cs_tests/cs19.c.bc index 24b7d024..4e377407 100644 --- a/test_cases_bc/cs_tests/cs19.c.bc +++ b/test_cases_bc/cs_tests/cs19.c.bc @@ -196,4 +196,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs2.c.bc b/test_cases_bc/cs_tests/cs2.c.bc index 1bd6c66d..eeddb012 100644 --- a/test_cases_bc/cs_tests/cs2.c.bc +++ b/test_cases_bc/cs_tests/cs2.c.bc @@ -238,4 +238,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs20.c.bc b/test_cases_bc/cs_tests/cs20.c.bc index 2ccdb20d..6d2e4f67 100644 --- a/test_cases_bc/cs_tests/cs20.c.bc +++ b/test_cases_bc/cs_tests/cs20.c.bc @@ -213,4 +213,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs21.c.bc b/test_cases_bc/cs_tests/cs21.c.bc index 826974be..a6063361 100644 --- a/test_cases_bc/cs_tests/cs21.c.bc +++ b/test_cases_bc/cs_tests/cs21.c.bc @@ -193,4 +193,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs3.c.bc b/test_cases_bc/cs_tests/cs3.c.bc index b4ebff12..a0e9b0f0 100644 --- a/test_cases_bc/cs_tests/cs3.c.bc +++ b/test_cases_bc/cs_tests/cs3.c.bc @@ -237,4 +237,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs4.c.bc b/test_cases_bc/cs_tests/cs4.c.bc index 5df90799..6ae59ab2 100644 --- a/test_cases_bc/cs_tests/cs4.c.bc +++ b/test_cases_bc/cs_tests/cs4.c.bc @@ -207,4 +207,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs5.c.bc b/test_cases_bc/cs_tests/cs5.c.bc index a8cdb09e..e9bc374f 100644 --- a/test_cases_bc/cs_tests/cs5.c.bc +++ b/test_cases_bc/cs_tests/cs5.c.bc @@ -185,4 +185,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs6.c.bc b/test_cases_bc/cs_tests/cs6.c.bc index cfc6ce45..a11bfb7a 100644 --- a/test_cases_bc/cs_tests/cs6.c.bc +++ b/test_cases_bc/cs_tests/cs6.c.bc @@ -185,4 +185,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs7.c.bc b/test_cases_bc/cs_tests/cs7.c.bc index 07dc4938..50732910 100644 --- a/test_cases_bc/cs_tests/cs7.c.bc +++ b/test_cases_bc/cs_tests/cs7.c.bc @@ -213,4 +213,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs8.c.bc b/test_cases_bc/cs_tests/cs8.c.bc index 14900f36..5fdd1b14 100644 --- a/test_cases_bc/cs_tests/cs8.c.bc +++ b/test_cases_bc/cs_tests/cs8.c.bc @@ -209,4 +209,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/cs9.c.bc b/test_cases_bc/cs_tests/cs9.c.bc index c0cc6b5f..82d9ebd4 100644 --- a/test_cases_bc/cs_tests/cs9.c.bc +++ b/test_cases_bc/cs_tests/cs9.c.bc @@ -243,4 +243,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/funcpoiner.c.bc b/test_cases_bc/cs_tests/funcpoiner.c.bc index 004e0310..2f274fa5 100644 --- a/test_cases_bc/cs_tests/funcpoiner.c.bc +++ b/test_cases_bc/cs_tests/funcpoiner.c.bc @@ -203,4 +203,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur0.c.bc b/test_cases_bc/cs_tests/recur0.c.bc index 79bd3416..abb9b757 100644 --- a/test_cases_bc/cs_tests/recur0.c.bc +++ b/test_cases_bc/cs_tests/recur0.c.bc @@ -193,4 +193,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur10.c.bc b/test_cases_bc/cs_tests/recur10.c.bc index a96ed4cf..a331c083 100644 --- a/test_cases_bc/cs_tests/recur10.c.bc +++ b/test_cases_bc/cs_tests/recur10.c.bc @@ -191,4 +191,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur2.c.bc b/test_cases_bc/cs_tests/recur2.c.bc index bda6a655..b20e2bfa 100644 --- a/test_cases_bc/cs_tests/recur2.c.bc +++ b/test_cases_bc/cs_tests/recur2.c.bc @@ -184,4 +184,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur3.c.bc b/test_cases_bc/cs_tests/recur3.c.bc index dd8b38dd..2f5f37f4 100644 --- a/test_cases_bc/cs_tests/recur3.c.bc +++ b/test_cases_bc/cs_tests/recur3.c.bc @@ -197,4 +197,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur4.c.bc b/test_cases_bc/cs_tests/recur4.c.bc index 9a4bfd30..24b8f785 100644 --- a/test_cases_bc/cs_tests/recur4.c.bc +++ b/test_cases_bc/cs_tests/recur4.c.bc @@ -193,4 +193,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur5.c.bc b/test_cases_bc/cs_tests/recur5.c.bc index 1455a24e..28827c23 100644 --- a/test_cases_bc/cs_tests/recur5.c.bc +++ b/test_cases_bc/cs_tests/recur5.c.bc @@ -200,4 +200,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur6.c.bc b/test_cases_bc/cs_tests/recur6.c.bc index 0374bc42..8f905d77 100644 --- a/test_cases_bc/cs_tests/recur6.c.bc +++ b/test_cases_bc/cs_tests/recur6.c.bc @@ -189,4 +189,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur7.c.bc b/test_cases_bc/cs_tests/recur7.c.bc index b3db5235..8e9ee2f5 100644 --- a/test_cases_bc/cs_tests/recur7.c.bc +++ b/test_cases_bc/cs_tests/recur7.c.bc @@ -204,4 +204,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur8.c.bc b/test_cases_bc/cs_tests/recur8.c.bc index e58c0525..e0ef51b5 100644 --- a/test_cases_bc/cs_tests/recur8.c.bc +++ b/test_cases_bc/cs_tests/recur8.c.bc @@ -221,4 +221,4 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/cs_tests/recur9.c.bc b/test_cases_bc/cs_tests/recur9.c.bc index cb0c9a02..a801140c 100644 --- a/test_cases_bc/cs_tests/recur9.c.bc +++ b/test_cases_bc/cs_tests/recur9.c.bc @@ -222,4 +222,4 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/double_free/df0.c.bc b/test_cases_bc/double_free/df0.c.bc index 66ae41d2..7163e314 100644 --- a/test_cases_bc/double_free/df0.c.bc +++ b/test_cases_bc/double_free/df0.c.bc @@ -104,4 +104,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/double_free/df00.c.bc b/test_cases_bc/double_free/df00.c.bc index 1d0f3c8b..57711ae0 100644 --- a/test_cases_bc/double_free/df00.c.bc +++ b/test_cases_bc/double_free/df00.c.bc @@ -122,4 +122,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/double_free/df1.c.bc b/test_cases_bc/double_free/df1.c.bc index 52e89ef8..30442e3e 100644 --- a/test_cases_bc/double_free/df1.c.bc +++ b/test_cases_bc/double_free/df1.c.bc @@ -106,4 +106,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/double_free/df10.c.bc b/test_cases_bc/double_free/df10.c.bc index c30c9d86..ba58d88b 100644 --- a/test_cases_bc/double_free/df10.c.bc +++ b/test_cases_bc/double_free/df10.c.bc @@ -833,7 +833,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df11.c.bc b/test_cases_bc/double_free/df11.c.bc index 21aaadc9..4520a66c 100644 --- a/test_cases_bc/double_free/df11.c.bc +++ b/test_cases_bc/double_free/df11.c.bc @@ -744,7 +744,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df12.c.bc b/test_cases_bc/double_free/df12.c.bc index 6578a91c..f103e1e0 100644 --- a/test_cases_bc/double_free/df12.c.bc +++ b/test_cases_bc/double_free/df12.c.bc @@ -771,7 +771,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df13.c.bc b/test_cases_bc/double_free/df13.c.bc index 0ffc848e..2566ae49 100644 --- a/test_cases_bc/double_free/df13.c.bc +++ b/test_cases_bc/double_free/df13.c.bc @@ -762,7 +762,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df14.c.bc b/test_cases_bc/double_free/df14.c.bc index 07269041..3519e514 100644 --- a/test_cases_bc/double_free/df14.c.bc +++ b/test_cases_bc/double_free/df14.c.bc @@ -745,7 +745,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df15.c.bc b/test_cases_bc/double_free/df15.c.bc index 02cd80e7..01557ff0 100644 --- a/test_cases_bc/double_free/df15.c.bc +++ b/test_cases_bc/double_free/df15.c.bc @@ -756,7 +756,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df16.c.bc b/test_cases_bc/double_free/df16.c.bc index b705ede4..91a630b6 100644 --- a/test_cases_bc/double_free/df16.c.bc +++ b/test_cases_bc/double_free/df16.c.bc @@ -765,7 +765,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df18.c.bc b/test_cases_bc/double_free/df18.c.bc index 54a7f10a..fa6875e4 100644 --- a/test_cases_bc/double_free/df18.c.bc +++ b/test_cases_bc/double_free/df18.c.bc @@ -726,7 +726,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df19.c.bc b/test_cases_bc/double_free/df19.c.bc index a98e2f90..ac4750c6 100644 --- a/test_cases_bc/double_free/df19.c.bc +++ b/test_cases_bc/double_free/df19.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df2.c.bc b/test_cases_bc/double_free/df2.c.bc index 1452ae53..d05b87ba 100644 --- a/test_cases_bc/double_free/df2.c.bc +++ b/test_cases_bc/double_free/df2.c.bc @@ -113,4 +113,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/double_free/df20.c.bc b/test_cases_bc/double_free/df20.c.bc index 4cb16e2b..5102ae82 100644 --- a/test_cases_bc/double_free/df20.c.bc +++ b/test_cases_bc/double_free/df20.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df21.c.bc b/test_cases_bc/double_free/df21.c.bc index 1312d09c..bd21bd34 100644 --- a/test_cases_bc/double_free/df21.c.bc +++ b/test_cases_bc/double_free/df21.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df22.c.bc b/test_cases_bc/double_free/df22.c.bc index 882e2dd6..1e91b2ca 100644 --- a/test_cases_bc/double_free/df22.c.bc +++ b/test_cases_bc/double_free/df22.c.bc @@ -861,7 +861,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df23.c.bc b/test_cases_bc/double_free/df23.c.bc index 9e7fab47..9a7a07c9 100644 --- a/test_cases_bc/double_free/df23.c.bc +++ b/test_cases_bc/double_free/df23.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df24.c.bc b/test_cases_bc/double_free/df24.c.bc index a0c1549b..e389689e 100644 --- a/test_cases_bc/double_free/df24.c.bc +++ b/test_cases_bc/double_free/df24.c.bc @@ -860,7 +860,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df25.c.bc b/test_cases_bc/double_free/df25.c.bc index 9eb879c5..b78e15b6 100644 --- a/test_cases_bc/double_free/df25.c.bc +++ b/test_cases_bc/double_free/df25.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df26.c.bc b/test_cases_bc/double_free/df26.c.bc index 738d020e..e5641647 100644 --- a/test_cases_bc/double_free/df26.c.bc +++ b/test_cases_bc/double_free/df26.c.bc @@ -761,7 +761,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df27.c.bc b/test_cases_bc/double_free/df27.c.bc index 60b2295c..83c12aea 100644 --- a/test_cases_bc/double_free/df27.c.bc +++ b/test_cases_bc/double_free/df27.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df28.c.bc b/test_cases_bc/double_free/df28.c.bc index 0791a0f7..3ba376fd 100644 --- a/test_cases_bc/double_free/df28.c.bc +++ b/test_cases_bc/double_free/df28.c.bc @@ -861,7 +861,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df29.c.bc b/test_cases_bc/double_free/df29.c.bc index d64c3bdf..0fa53150 100644 --- a/test_cases_bc/double_free/df29.c.bc +++ b/test_cases_bc/double_free/df29.c.bc @@ -772,7 +772,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df3.c.bc b/test_cases_bc/double_free/df3.c.bc index 90e119dd..a6a3277b 100644 --- a/test_cases_bc/double_free/df3.c.bc +++ b/test_cases_bc/double_free/df3.c.bc @@ -129,4 +129,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/double_free/df30.c.bc b/test_cases_bc/double_free/df30.c.bc index 6c5f5dc9..cfced2ef 100644 --- a/test_cases_bc/double_free/df30.c.bc +++ b/test_cases_bc/double_free/df30.c.bc @@ -860,7 +860,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df31.c.bc b/test_cases_bc/double_free/df31.c.bc index 49f64fc0..4152a6f5 100644 --- a/test_cases_bc/double_free/df31.c.bc +++ b/test_cases_bc/double_free/df31.c.bc @@ -871,7 +871,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df32.c.bc b/test_cases_bc/double_free/df32.c.bc index ffffc03e..41e2f51a 100644 --- a/test_cases_bc/double_free/df32.c.bc +++ b/test_cases_bc/double_free/df32.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df33.c.bc b/test_cases_bc/double_free/df33.c.bc index 6762cceb..ae7ecf10 100644 --- a/test_cases_bc/double_free/df33.c.bc +++ b/test_cases_bc/double_free/df33.c.bc @@ -859,7 +859,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df34.c.bc b/test_cases_bc/double_free/df34.c.bc index 70bbf4eb..fc2784f4 100644 --- a/test_cases_bc/double_free/df34.c.bc +++ b/test_cases_bc/double_free/df34.c.bc @@ -859,7 +859,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df35.c.bc b/test_cases_bc/double_free/df35.c.bc index c7f7f763..9f8402bb 100644 --- a/test_cases_bc/double_free/df35.c.bc +++ b/test_cases_bc/double_free/df35.c.bc @@ -815,7 +815,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df36.c.bc b/test_cases_bc/double_free/df36.c.bc index 901f36c1..7f7c5cfc 100644 --- a/test_cases_bc/double_free/df36.c.bc +++ b/test_cases_bc/double_free/df36.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df37.c.bc b/test_cases_bc/double_free/df37.c.bc index b37a5010..8af5be42 100644 --- a/test_cases_bc/double_free/df37.c.bc +++ b/test_cases_bc/double_free/df37.c.bc @@ -859,7 +859,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df38.c.bc b/test_cases_bc/double_free/df38.c.bc index e0afc765..f3dfba01 100644 --- a/test_cases_bc/double_free/df38.c.bc +++ b/test_cases_bc/double_free/df38.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df39.c.bc b/test_cases_bc/double_free/df39.c.bc index efa9664d..0b16209a 100644 --- a/test_cases_bc/double_free/df39.c.bc +++ b/test_cases_bc/double_free/df39.c.bc @@ -762,7 +762,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df4.c.bc b/test_cases_bc/double_free/df4.c.bc index 7eb726a2..e88a93fc 100644 --- a/test_cases_bc/double_free/df4.c.bc +++ b/test_cases_bc/double_free/df4.c.bc @@ -123,4 +123,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/double_free/df40.c.bc b/test_cases_bc/double_free/df40.c.bc index e6fd578b..583166cc 100644 --- a/test_cases_bc/double_free/df40.c.bc +++ b/test_cases_bc/double_free/df40.c.bc @@ -744,7 +744,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df41.c.bc b/test_cases_bc/double_free/df41.c.bc index 497d7623..47fae4ae 100644 --- a/test_cases_bc/double_free/df41.c.bc +++ b/test_cases_bc/double_free/df41.c.bc @@ -833,7 +833,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df42.c.bc b/test_cases_bc/double_free/df42.c.bc index 98af2833..eee3b08d 100644 --- a/test_cases_bc/double_free/df42.c.bc +++ b/test_cases_bc/double_free/df42.c.bc @@ -735,7 +735,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df43.c.bc b/test_cases_bc/double_free/df43.c.bc index 17c585b9..b8581210 100644 --- a/test_cases_bc/double_free/df43.c.bc +++ b/test_cases_bc/double_free/df43.c.bc @@ -771,7 +771,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df44.c.bc b/test_cases_bc/double_free/df44.c.bc index f17968ea..8ebde120 100644 --- a/test_cases_bc/double_free/df44.c.bc +++ b/test_cases_bc/double_free/df44.c.bc @@ -842,7 +842,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df45.c.bc b/test_cases_bc/double_free/df45.c.bc index b71545e1..3cbdfdab 100644 --- a/test_cases_bc/double_free/df45.c.bc +++ b/test_cases_bc/double_free/df45.c.bc @@ -762,7 +762,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df46.c.bc b/test_cases_bc/double_free/df46.c.bc index 9a718995..00d4297c 100644 --- a/test_cases_bc/double_free/df46.c.bc +++ b/test_cases_bc/double_free/df46.c.bc @@ -756,7 +756,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df5.c.bc b/test_cases_bc/double_free/df5.c.bc index 8becdb0f..659768cd 100644 --- a/test_cases_bc/double_free/df5.c.bc +++ b/test_cases_bc/double_free/df5.c.bc @@ -753,7 +753,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df6.c.bc b/test_cases_bc/double_free/df6.c.bc index 6cad3f48..47dba88d 100644 --- a/test_cases_bc/double_free/df6.c.bc +++ b/test_cases_bc/double_free/df6.c.bc @@ -770,7 +770,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df7.c.bc b/test_cases_bc/double_free/df7.c.bc index b78383d8..04c977ff 100644 --- a/test_cases_bc/double_free/df7.c.bc +++ b/test_cases_bc/double_free/df7.c.bc @@ -762,7 +762,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df8.c.bc b/test_cases_bc/double_free/df8.c.bc index 7f257957..4847c916 100644 --- a/test_cases_bc/double_free/df8.c.bc +++ b/test_cases_bc/double_free/df8.c.bc @@ -842,7 +842,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/double_free/df9.c.bc b/test_cases_bc/double_free/df9.c.bc index 59812108..3e55f0c9 100644 --- a/test_cases_bc/double_free/df9.c.bc +++ b/test_cases_bc/double_free/df9.c.bc @@ -744,7 +744,7 @@ attributes #9 = { noreturn nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/fs_tests/array_alias_1.c.bc b/test_cases_bc/fs_tests/array_alias_1.c.bc index 11d6272b..88216dd2 100644 --- a/test_cases_bc/fs_tests/array_alias_1.c.bc +++ b/test_cases_bc/fs_tests/array_alias_1.c.bc @@ -201,4 +201,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/array_alias_2.c.bc b/test_cases_bc/fs_tests/array_alias_2.c.bc index df541207..aedb843a 100644 --- a/test_cases_bc/fs_tests/array_alias_2.c.bc +++ b/test_cases_bc/fs_tests/array_alias_2.c.bc @@ -239,4 +239,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/array_alias_3.c.bc b/test_cases_bc/fs_tests/array_alias_3.c.bc index e06a6977..71588a54 100644 --- a/test_cases_bc/fs_tests/array_alias_3.c.bc +++ b/test_cases_bc/fs_tests/array_alias_3.c.bc @@ -180,4 +180,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/array_alias_4.c.bc b/test_cases_bc/fs_tests/array_alias_4.c.bc index 670ad62c..f1c7bf90 100644 --- a/test_cases_bc/fs_tests/array_alias_4.c.bc +++ b/test_cases_bc/fs_tests/array_alias_4.c.bc @@ -190,4 +190,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/array_alias_5.c.bc b/test_cases_bc/fs_tests/array_alias_5.c.bc index 7de6768d..5c64eef0 100644 --- a/test_cases_bc/fs_tests/array_alias_5.c.bc +++ b/test_cases_bc/fs_tests/array_alias_5.c.bc @@ -196,4 +196,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/branch_1.c.bc b/test_cases_bc/fs_tests/branch_1.c.bc index 922c4184..967b648f 100644 --- a/test_cases_bc/fs_tests/branch_1.c.bc +++ b/test_cases_bc/fs_tests/branch_1.c.bc @@ -180,4 +180,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/branch_2.c.bc b/test_cases_bc/fs_tests/branch_2.c.bc index b52687ca..5e6a4892 100644 --- a/test_cases_bc/fs_tests/branch_2.c.bc +++ b/test_cases_bc/fs_tests/branch_2.c.bc @@ -183,4 +183,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/branch_3.c.bc b/test_cases_bc/fs_tests/branch_3.c.bc index 2c787150..216ff2a9 100644 --- a/test_cases_bc/fs_tests/branch_3.c.bc +++ b/test_cases_bc/fs_tests/branch_3.c.bc @@ -189,4 +189,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/function_pointer.c.bc b/test_cases_bc/fs_tests/function_pointer.c.bc index 0ca4bcc6..950e705e 100644 --- a/test_cases_bc/fs_tests/function_pointer.c.bc +++ b/test_cases_bc/fs_tests/function_pointer.c.bc @@ -201,4 +201,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/function_pointer_2.c.bc b/test_cases_bc/fs_tests/function_pointer_2.c.bc index bacdbcf4..8fc07b02 100644 --- a/test_cases_bc/fs_tests/function_pointer_2.c.bc +++ b/test_cases_bc/fs_tests/function_pointer_2.c.bc @@ -195,4 +195,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/global_1.c.bc b/test_cases_bc/fs_tests/global_1.c.bc index 214a67db..5c27d541 100644 --- a/test_cases_bc/fs_tests/global_1.c.bc +++ b/test_cases_bc/fs_tests/global_1.c.bc @@ -189,4 +189,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/global_2.c.bc b/test_cases_bc/fs_tests/global_2.c.bc index fccc521e..ab0f16f8 100644 --- a/test_cases_bc/fs_tests/global_2.c.bc +++ b/test_cases_bc/fs_tests/global_2.c.bc @@ -195,4 +195,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/global_3.c.bc b/test_cases_bc/fs_tests/global_3.c.bc index 88a35d8c..e0901cf8 100644 --- a/test_cases_bc/fs_tests/global_3.c.bc +++ b/test_cases_bc/fs_tests/global_3.c.bc @@ -188,4 +188,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/global_4.c.bc b/test_cases_bc/fs_tests/global_4.c.bc index 385475fe..4bf498e5 100644 --- a/test_cases_bc/fs_tests/global_4.c.bc +++ b/test_cases_bc/fs_tests/global_4.c.bc @@ -198,4 +198,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/global_5.c.bc b/test_cases_bc/fs_tests/global_5.c.bc index 7a7efda1..a6bca891 100644 --- a/test_cases_bc/fs_tests/global_5.c.bc +++ b/test_cases_bc/fs_tests/global_5.c.bc @@ -187,4 +187,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/pcycle1.c.bc b/test_cases_bc/fs_tests/pcycle1.c.bc index 4c28433d..83f10306 100644 --- a/test_cases_bc/fs_tests/pcycle1.c.bc +++ b/test_cases_bc/fs_tests/pcycle1.c.bc @@ -183,4 +183,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/pcycle2.c.bc b/test_cases_bc/fs_tests/pcycle2.c.bc index 29ff99ff..96d9de1d 100644 --- a/test_cases_bc/fs_tests/pcycle2.c.bc +++ b/test_cases_bc/fs_tests/pcycle2.c.bc @@ -172,4 +172,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/return.c.bc b/test_cases_bc/fs_tests/return.c.bc index 5e735055..1f20497f 100644 --- a/test_cases_bc/fs_tests/return.c.bc +++ b/test_cases_bc/fs_tests/return.c.bc @@ -183,4 +183,4 @@ attributes #3 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/simple_1.c.bc b/test_cases_bc/fs_tests/simple_1.c.bc index 4ad63613..10f03e81 100644 --- a/test_cases_bc/fs_tests/simple_1.c.bc +++ b/test_cases_bc/fs_tests/simple_1.c.bc @@ -173,4 +173,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/simple_2.c.bc b/test_cases_bc/fs_tests/simple_2.c.bc index 3223b937..bd95d21e 100644 --- a/test_cases_bc/fs_tests/simple_2.c.bc +++ b/test_cases_bc/fs_tests/simple_2.c.bc @@ -181,4 +181,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/simple_3.c.bc b/test_cases_bc/fs_tests/simple_3.c.bc index 344b3160..d6ac5c61 100644 --- a/test_cases_bc/fs_tests/simple_3.c.bc +++ b/test_cases_bc/fs_tests/simple_3.c.bc @@ -185,4 +185,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/strong_update.c.bc b/test_cases_bc/fs_tests/strong_update.c.bc index 1306eec7..b0b1e8dd 100644 --- a/test_cases_bc/fs_tests/strong_update.c.bc +++ b/test_cases_bc/fs_tests/strong_update.c.bc @@ -187,4 +187,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/struct_1.c.bc b/test_cases_bc/fs_tests/struct_1.c.bc index 783fc4d4..e38ae448 100644 --- a/test_cases_bc/fs_tests/struct_1.c.bc +++ b/test_cases_bc/fs_tests/struct_1.c.bc @@ -190,4 +190,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/struct_2.c.bc b/test_cases_bc/fs_tests/struct_2.c.bc index 47217ffd..578a54c0 100644 --- a/test_cases_bc/fs_tests/struct_2.c.bc +++ b/test_cases_bc/fs_tests/struct_2.c.bc @@ -190,4 +190,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/test-su.c.bc b/test_cases_bc/fs_tests/test-su.c.bc index b071da49..44edbeba 100644 --- a/test_cases_bc/fs_tests/test-su.c.bc +++ b/test_cases_bc/fs_tests/test-su.c.bc @@ -178,4 +178,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/fs_tests/tt.c.bc b/test_cases_bc/fs_tests/tt.c.bc index 28876df0..2993875e 100644 --- a/test_cases_bc/fs_tests/tt.c.bc +++ b/test_cases_bc/fs_tests/tt.c.bc @@ -27,4 +27,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mem_leak/malloc0.c.bc b/test_cases_bc/mem_leak/malloc0.c.bc index 2350d310..5b3704eb 100644 --- a/test_cases_bc/mem_leak/malloc0.c.bc +++ b/test_cases_bc/mem_leak/malloc0.c.bc @@ -145,7 +145,7 @@ attributes #3 = { nounwind allocsize(0) } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc0.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e7cb2b7e939770647742a9f673685b5c") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -154,7 +154,7 @@ attributes #3 = { nounwind allocsize(0) } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc1.c.bc b/test_cases_bc/mem_leak/malloc1.c.bc index 7ddbee86..1d8e94dc 100644 --- a/test_cases_bc/mem_leak/malloc1.c.bc +++ b/test_cases_bc/mem_leak/malloc1.c.bc @@ -144,7 +144,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 13) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a5a9d73a6531064107323c22c9afad3e") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -154,7 +154,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc10.c.bc b/test_cases_bc/mem_leak/malloc10.c.bc index 8a571edf..00e9ab3a 100644 --- a/test_cases_bc/mem_leak/malloc10.c.bc +++ b/test_cases_bc/mem_leak/malloc10.c.bc @@ -148,7 +148,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc10.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "89e9bd574aaf068c00db3b6d6181d8ca") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -158,7 +158,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc11.c.bc b/test_cases_bc/mem_leak/malloc11.c.bc index 445ef7d5..232e9a1e 100644 --- a/test_cases_bc/mem_leak/malloc11.c.bc +++ b/test_cases_bc/mem_leak/malloc11.c.bc @@ -144,7 +144,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc11.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d0f52430e5d9a4dd94a88e347e5c6294") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -153,7 +153,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc12.c.bc b/test_cases_bc/mem_leak/malloc12.c.bc index 44d6d160..9e3d5334 100644 --- a/test_cases_bc/mem_leak/malloc12.c.bc +++ b/test_cases_bc/mem_leak/malloc12.c.bc @@ -142,7 +142,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc12.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "0a73a208634f56ca2368ffe8710d884a") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -151,7 +151,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc13.c.bc b/test_cases_bc/mem_leak/malloc13.c.bc index d4cd19c0..0f616a7d 100644 --- a/test_cases_bc/mem_leak/malloc13.c.bc +++ b/test_cases_bc/mem_leak/malloc13.c.bc @@ -128,7 +128,7 @@ attributes #4 = { nounwind allocsize(0) } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "a", scope: !2, file: !7, line: 9, type: !12, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc13.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "773c86d05ea0566a3ff4b01c4d3b55c6") !4 = !{!5, !0} !5 = !DIGlobalVariableExpression(var: !6, expr: !DIExpression()) @@ -150,7 +150,7 @@ attributes #4 = { nounwind allocsize(0) } !21 = !{i32 7, !"PIE Level", i32 2} !22 = !{i32 7, !"uwtable", i32 2} !23 = !{i32 7, !"frame-pointer", i32 2} -!24 = !{!"clang version 16.0.0"} +!24 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !25 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !26, file: !26, line: 5, type: !27, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !30) !26 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !27 = !DISubroutineType(types: !28) diff --git a/test_cases_bc/mem_leak/malloc14.c.bc b/test_cases_bc/mem_leak/malloc14.c.bc index 00e322e9..50e7c9b7 100644 --- a/test_cases_bc/mem_leak/malloc14.c.bc +++ b/test_cases_bc/mem_leak/malloc14.c.bc @@ -136,7 +136,7 @@ attributes #4 = { nounwind allocsize(0) } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 5) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc14.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3293c2f2c8d00a34681b947de18921e2") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -146,7 +146,7 @@ attributes #4 = { nounwind allocsize(0) } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc15.c.bc b/test_cases_bc/mem_leak/malloc15.c.bc index 1b3b3bed..21287c29 100644 --- a/test_cases_bc/mem_leak/malloc15.c.bc +++ b/test_cases_bc/mem_leak/malloc15.c.bc @@ -119,7 +119,7 @@ attributes #3 = { nounwind allocsize(0) } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc15.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "42b4911f7ec28a4aa311f53deb9ff4fc") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -128,7 +128,7 @@ attributes #3 = { nounwind allocsize(0) } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc16.c.bc b/test_cases_bc/mem_leak/malloc16.c.bc index c61f3542..6303e57c 100644 --- a/test_cases_bc/mem_leak/malloc16.c.bc +++ b/test_cases_bc/mem_leak/malloc16.c.bc @@ -161,7 +161,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc16.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7413256decbfa61bd4e5c92078e69254") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -173,7 +173,7 @@ attributes #5 = { nounwind } !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !14, file: !14, line: 5, type: !15, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !18) !14 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/mem_leak/malloc17.c.bc b/test_cases_bc/mem_leak/malloc17.c.bc index a6854ca6..f922ba32 100644 --- a/test_cases_bc/mem_leak/malloc17.c.bc +++ b/test_cases_bc/mem_leak/malloc17.c.bc @@ -158,7 +158,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 4) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc17.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "76edc384bfd6068704bf40bc7b7a629e") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -168,7 +168,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc18.c.bc b/test_cases_bc/mem_leak/malloc18.c.bc index eda270e9..22a45f03 100644 --- a/test_cases_bc/mem_leak/malloc18.c.bc +++ b/test_cases_bc/mem_leak/malloc18.c.bc @@ -177,7 +177,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc18.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e51bb549c39a4d47a33e5a478142ac75") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -186,7 +186,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc19.c.bc b/test_cases_bc/mem_leak/malloc19.c.bc index 85b9a9a8..9052547c 100644 --- a/test_cases_bc/mem_leak/malloc19.c.bc +++ b/test_cases_bc/mem_leak/malloc19.c.bc @@ -153,7 +153,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc19.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cb8541316bbb04f64f0721f9bb5a749d") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -162,7 +162,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc2.c.bc b/test_cases_bc/mem_leak/malloc2.c.bc index 83639951..2c734456 100644 --- a/test_cases_bc/mem_leak/malloc2.c.bc +++ b/test_cases_bc/mem_leak/malloc2.c.bc @@ -155,7 +155,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 13) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8983e86c52ae8eb1b818508a934fa900") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -165,7 +165,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc20.c.bc b/test_cases_bc/mem_leak/malloc20.c.bc index 32f09383..b4db9f2a 100644 --- a/test_cases_bc/mem_leak/malloc20.c.bc +++ b/test_cases_bc/mem_leak/malloc20.c.bc @@ -155,7 +155,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc20.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3a8f1543a00610af0faa798526891466") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -164,7 +164,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc21.c.bc b/test_cases_bc/mem_leak/malloc21.c.bc index 9e26ca71..be9793b5 100644 --- a/test_cases_bc/mem_leak/malloc21.c.bc +++ b/test_cases_bc/mem_leak/malloc21.c.bc @@ -173,7 +173,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 9) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc21.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c83f9af6573ff6b7ab69cb0e4d4bced8") !9 = !{!10} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64) @@ -186,7 +186,7 @@ attributes #6 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/malloc22.c.bc b/test_cases_bc/mem_leak/malloc22.c.bc index 52b7bc2d..13308dae 100644 --- a/test_cases_bc/mem_leak/malloc22.c.bc +++ b/test_cases_bc/mem_leak/malloc22.c.bc @@ -174,7 +174,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc22.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "27a3782ef2bff203171497e32857bb4b") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -184,7 +184,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc23.c.bc b/test_cases_bc/mem_leak/malloc23.c.bc index 7c0dace2..426f4bff 100644 --- a/test_cases_bc/mem_leak/malloc23.c.bc +++ b/test_cases_bc/mem_leak/malloc23.c.bc @@ -146,7 +146,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc23.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "afcd89f50abc07c6000d70e4bdea0d41") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -155,7 +155,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc24.c.bc b/test_cases_bc/mem_leak/malloc24.c.bc index cc7b8c45..e0a665ba 100644 --- a/test_cases_bc/mem_leak/malloc24.c.bc +++ b/test_cases_bc/mem_leak/malloc24.c.bc @@ -153,7 +153,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc24.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "823c2ea18349a78757f948d87350ef0e") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -162,7 +162,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc25.c.bc b/test_cases_bc/mem_leak/malloc25.c.bc index 02c99f4d..766637d5 100644 --- a/test_cases_bc/mem_leak/malloc25.c.bc +++ b/test_cases_bc/mem_leak/malloc25.c.bc @@ -158,7 +158,7 @@ attributes #3 = { nounwind allocsize(0) } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc25.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c6893f42da2b5c63e0b759dc59904ca3") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -167,7 +167,7 @@ attributes #3 = { nounwind allocsize(0) } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc26.c.bc b/test_cases_bc/mem_leak/malloc26.c.bc index 093db759..852ef2f6 100644 --- a/test_cases_bc/mem_leak/malloc26.c.bc +++ b/test_cases_bc/mem_leak/malloc26.c.bc @@ -193,7 +193,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!8, !9, !10, !11, !12, !13, !14} !llvm.ident = !{!15} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc26.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ab5baec3e2f679f1cef0a9df2749a426") !2 = !{!3, !4, !6} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -208,7 +208,7 @@ attributes #5 = { nounwind } !12 = !{i32 7, !"PIE Level", i32 2} !13 = !{i32 7, !"uwtable", i32 2} !14 = !{i32 7, !"frame-pointer", i32 2} -!15 = !{!"clang version 16.0.0"} +!15 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !16 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !17, file: !17, line: 5, type: !18, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !21) !17 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !18 = !DISubroutineType(types: !19) diff --git a/test_cases_bc/mem_leak/malloc27.c.bc b/test_cases_bc/mem_leak/malloc27.c.bc index c192ba8c..792971bf 100644 --- a/test_cases_bc/mem_leak/malloc27.c.bc +++ b/test_cases_bc/mem_leak/malloc27.c.bc @@ -190,7 +190,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 5) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc27.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "aa4d50f1e8f4dc0d042050bbe3f44b1a") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -200,7 +200,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc28.c.bc b/test_cases_bc/mem_leak/malloc28.c.bc index 3df37e09..a9aabed1 100644 --- a/test_cases_bc/mem_leak/malloc28.c.bc +++ b/test_cases_bc/mem_leak/malloc28.c.bc @@ -152,7 +152,7 @@ attributes #5 = { nounwind } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "net", scope: !2, file: !5, line: 17, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc28.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "716a4ef3e3c386c4e0473c85d0cd0811") !4 = !{!0} !5 = !DIFile(filename: "src/mem_leak/malloc28.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "716a4ef3e3c386c4e0473c85d0cd0811") @@ -170,7 +170,7 @@ attributes #5 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/malloc29.c.bc b/test_cases_bc/mem_leak/malloc29.c.bc index 42c8dc33..8142efce 100644 --- a/test_cases_bc/mem_leak/malloc29.c.bc +++ b/test_cases_bc/mem_leak/malloc29.c.bc @@ -139,7 +139,7 @@ attributes #4 = { nounwind allocsize(0) } !4 = !DISubroutineType(types: !5) !5 = !{!6} !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc29.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9f3fa353fc795ded8ec7068f3ba1c01c") !9 = !{!0, !10} !10 = !DIGlobalVariableExpression(var: !11, expr: !DIExpression()) @@ -157,7 +157,7 @@ attributes #4 = { nounwind allocsize(0) } !22 = !{i32 7, !"PIE Level", i32 2} !23 = !{i32 7, !"uwtable", i32 2} !24 = !{i32 7, !"frame-pointer", i32 2} -!25 = !{!"clang version 16.0.0"} +!25 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !26 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !27, file: !27, line: 5, type: !28, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !16) !27 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !28 = !DISubroutineType(types: !29) diff --git a/test_cases_bc/mem_leak/malloc3.c.bc b/test_cases_bc/mem_leak/malloc3.c.bc index e02611b7..6c53d27e 100644 --- a/test_cases_bc/mem_leak/malloc3.c.bc +++ b/test_cases_bc/mem_leak/malloc3.c.bc @@ -166,7 +166,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 13) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2553fbd6cfad59245eb035e0bb8ac7d5") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -176,7 +176,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc30.c.bc b/test_cases_bc/mem_leak/malloc30.c.bc index e83d730f..7ccd0d07 100644 --- a/test_cases_bc/mem_leak/malloc30.c.bc +++ b/test_cases_bc/mem_leak/malloc30.c.bc @@ -144,7 +144,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 5) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc30.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "028d146ab0a8bcb750aa8ac221743177") !9 = !{!10} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64) @@ -157,7 +157,7 @@ attributes #6 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/malloc31.c.bc b/test_cases_bc/mem_leak/malloc31.c.bc index 4a58ae32..8d88db8d 100644 --- a/test_cases_bc/mem_leak/malloc31.c.bc +++ b/test_cases_bc/mem_leak/malloc31.c.bc @@ -179,7 +179,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc31.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a339ab125c3c17cb2a9fed7d5f54d2dd") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -189,7 +189,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc32.c.bc b/test_cases_bc/mem_leak/malloc32.c.bc index 9fb1b090..df79a191 100644 --- a/test_cases_bc/mem_leak/malloc32.c.bc +++ b/test_cases_bc/mem_leak/malloc32.c.bc @@ -168,7 +168,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc32.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ea92f32433f6c17fcf08c3662bd181c1") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -178,7 +178,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc33.c.bc b/test_cases_bc/mem_leak/malloc33.c.bc index d3c0465b..999e1792 100644 --- a/test_cases_bc/mem_leak/malloc33.c.bc +++ b/test_cases_bc/mem_leak/malloc33.c.bc @@ -158,7 +158,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 5) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc33.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b61ed66348b566a9a2359d72f8ca5fe6") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -168,7 +168,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc34.c.bc b/test_cases_bc/mem_leak/malloc34.c.bc index 913ad001..c411d2a4 100644 --- a/test_cases_bc/mem_leak/malloc34.c.bc +++ b/test_cases_bc/mem_leak/malloc34.c.bc @@ -149,7 +149,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 5) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc34.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "5e395a20f9a0cd4c7f099c1afaca877b") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -159,7 +159,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc35.c.bc b/test_cases_bc/mem_leak/malloc35.c.bc index 4d017161..52cabc43 100644 --- a/test_cases_bc/mem_leak/malloc35.c.bc +++ b/test_cases_bc/mem_leak/malloc35.c.bc @@ -137,7 +137,7 @@ attributes #4 = { nounwind allocsize(0) } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc35.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4327e243ffadcc846e3dcd1061037e06") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -147,7 +147,7 @@ attributes #4 = { nounwind allocsize(0) } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc36.c.bc b/test_cases_bc/mem_leak/malloc36.c.bc index 1af459fc..9929fb74 100644 --- a/test_cases_bc/mem_leak/malloc36.c.bc +++ b/test_cases_bc/mem_leak/malloc36.c.bc @@ -172,7 +172,7 @@ attributes #6 = { nounwind } !9 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 24, elements: !10) !10 = !{!11} !11 = !DISubrange(count: 3) -!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !14, splitDebugInlining: false, nameTableKind: None) +!12 = distinct !DICompileUnit(language: DW_LANG_C11, file: !13, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !14, splitDebugInlining: false, nameTableKind: None) !13 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc36.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ac822f800185d7cc0869bd28534a686e") !14 = !{!0, !7} !15 = !{i32 7, !"Dwarf Version", i32 5} @@ -182,7 +182,7 @@ attributes #6 = { nounwind } !19 = !{i32 7, !"PIE Level", i32 2} !20 = !{i32 7, !"uwtable", i32 2} !21 = !{i32 7, !"frame-pointer", i32 2} -!22 = !{!"clang version 16.0.0"} +!22 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !23 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !24, file: !24, line: 5, type: !25, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !12, retainedNodes: !29) !24 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !25 = !DISubroutineType(types: !26) diff --git a/test_cases_bc/mem_leak/malloc37.c.bc b/test_cases_bc/mem_leak/malloc37.c.bc index 88c4ea1e..b5a09fec 100644 --- a/test_cases_bc/mem_leak/malloc37.c.bc +++ b/test_cases_bc/mem_leak/malloc37.c.bc @@ -165,7 +165,7 @@ attributes #6 = { nounwind } !6 = !DISubrange(count: 3) !7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) !8 = distinct !DIGlobalVariable(name: "Buf", scope: !9, file: !2, line: 14, type: !12, isLocal: false, isDefinition: true) -!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) !10 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc37.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d9a3901b6c2fcf743daea3ef726a4537") !11 = !{!0, !7} !12 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Buf", file: !2, line: 10, size: 64, elements: !13) @@ -179,7 +179,7 @@ attributes #6 = { nounwind } !20 = !{i32 7, !"PIE Level", i32 2} !21 = !{i32 7, !"uwtable", i32 2} !22 = !{i32 7, !"frame-pointer", i32 2} -!23 = !{!"clang version 16.0.0"} +!23 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !24 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !25, file: !25, line: 5, type: !26, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !30) !25 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !26 = !DISubroutineType(types: !27) diff --git a/test_cases_bc/mem_leak/malloc38.c.bc b/test_cases_bc/mem_leak/malloc38.c.bc index 71f19ecf..ef4dee00 100644 --- a/test_cases_bc/mem_leak/malloc38.c.bc +++ b/test_cases_bc/mem_leak/malloc38.c.bc @@ -197,7 +197,7 @@ attributes #6 = { nounwind } !6 = !DISubrange(count: 5) !7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) !8 = distinct !DIGlobalVariable(name: "Buf", scope: !9, file: !2, line: 14, type: !12, isLocal: false, isDefinition: true) -!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) !10 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc38.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e9b74e0948e09ea162ce71094ef2c6d4") !11 = !{!0, !7} !12 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Buf", file: !2, line: 10, size: 64, elements: !13) @@ -211,7 +211,7 @@ attributes #6 = { nounwind } !20 = !{i32 7, !"PIE Level", i32 2} !21 = !{i32 7, !"uwtable", i32 2} !22 = !{i32 7, !"frame-pointer", i32 2} -!23 = !{!"clang version 16.0.0"} +!23 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !24 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !25, file: !25, line: 5, type: !26, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !30) !25 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !26 = !DISubroutineType(types: !27) diff --git a/test_cases_bc/mem_leak/malloc39.c.bc b/test_cases_bc/mem_leak/malloc39.c.bc index 04f73c5b..7050c565 100644 --- a/test_cases_bc/mem_leak/malloc39.c.bc +++ b/test_cases_bc/mem_leak/malloc39.c.bc @@ -201,7 +201,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc39.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8014c3460fc852e7b59a4d9aa7a46ffc") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -211,7 +211,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc4.c.bc b/test_cases_bc/mem_leak/malloc4.c.bc index 27ea2aee..1947a435 100644 --- a/test_cases_bc/mem_leak/malloc4.c.bc +++ b/test_cases_bc/mem_leak/malloc4.c.bc @@ -162,7 +162,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "72c8e9d3a200688d8bf45b02ccc901cd") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -171,7 +171,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc40.c.bc b/test_cases_bc/mem_leak/malloc40.c.bc index c3802e22..34ba548a 100644 --- a/test_cases_bc/mem_leak/malloc40.c.bc +++ b/test_cases_bc/mem_leak/malloc40.c.bc @@ -140,7 +140,7 @@ attributes #4 = { nounwind allocsize(0) } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc40.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4140b1dd084e2f3c61ab08f1202d7efa") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -150,7 +150,7 @@ attributes #4 = { nounwind allocsize(0) } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc41.c.bc b/test_cases_bc/mem_leak/malloc41.c.bc index b355ddf6..1b246e87 100644 --- a/test_cases_bc/mem_leak/malloc41.c.bc +++ b/test_cases_bc/mem_leak/malloc41.c.bc @@ -183,7 +183,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc41.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "386085b0d3eb6ed4be789b8378559582") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -193,7 +193,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc42.c.bc b/test_cases_bc/mem_leak/malloc42.c.bc index ac00e189..23530e36 100644 --- a/test_cases_bc/mem_leak/malloc42.c.bc +++ b/test_cases_bc/mem_leak/malloc42.c.bc @@ -144,7 +144,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc42.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "04c8304492e570924838927cef07c9ad") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -153,7 +153,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc43.c.bc b/test_cases_bc/mem_leak/malloc43.c.bc index 9c3ce421..d43bfbd5 100644 --- a/test_cases_bc/mem_leak/malloc43.c.bc +++ b/test_cases_bc/mem_leak/malloc43.c.bc @@ -140,7 +140,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc43.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "491fa5ae976fcaf7469823af92bc5111") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -149,7 +149,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc44.c.bc b/test_cases_bc/mem_leak/malloc44.c.bc index 2568de1f..b4f3b407 100644 --- a/test_cases_bc/mem_leak/malloc44.c.bc +++ b/test_cases_bc/mem_leak/malloc44.c.bc @@ -146,7 +146,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc44.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2cac75f3b4e61aff61be2efcdc3fd1c8") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -155,7 +155,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc45.c.bc b/test_cases_bc/mem_leak/malloc45.c.bc index 32e51462..0a9f110e 100644 --- a/test_cases_bc/mem_leak/malloc45.c.bc +++ b/test_cases_bc/mem_leak/malloc45.c.bc @@ -198,7 +198,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 3) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc45.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "965d0230705cabdc0e1b683275a2fd87") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -208,7 +208,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc46.c.bc b/test_cases_bc/mem_leak/malloc46.c.bc index 1b01b180..811d14cc 100644 --- a/test_cases_bc/mem_leak/malloc46.c.bc +++ b/test_cases_bc/mem_leak/malloc46.c.bc @@ -133,7 +133,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc46.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "d71e768c642446addea51ec8e4ba961c") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -142,7 +142,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc47.c.bc b/test_cases_bc/mem_leak/malloc47.c.bc index fbcf7ae5..92f50698 100644 --- a/test_cases_bc/mem_leak/malloc47.c.bc +++ b/test_cases_bc/mem_leak/malloc47.c.bc @@ -162,7 +162,7 @@ attributes #6 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 5) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc47.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "efdbf375123b2bc63fac12b239205164") !9 = !{!0} !10 = !{i32 7, !"Dwarf Version", i32 5} @@ -172,7 +172,7 @@ attributes #6 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !24) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/malloc48.c.bc b/test_cases_bc/mem_leak/malloc48.c.bc index d803cd87..f5806033 100644 --- a/test_cases_bc/mem_leak/malloc48.c.bc +++ b/test_cases_bc/mem_leak/malloc48.c.bc @@ -160,7 +160,7 @@ attributes #6 = { nounwind } !6 = !DISubrange(count: 4) !7 = !DIGlobalVariableExpression(var: !8, expr: !DIExpression()) !8 = distinct !DIGlobalVariable(scope: null, file: !2, line: 20, type: !3, isLocal: true, isDefinition: true) -!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) +!9 = distinct !DICompileUnit(language: DW_LANG_C11, file: !10, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !11, splitDebugInlining: false, nameTableKind: None) !10 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc48.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "697d01f5e7b63619699c990bf3cda5b3") !11 = !{!0, !7} !12 = !{i32 7, !"Dwarf Version", i32 5} @@ -170,7 +170,7 @@ attributes #6 = { nounwind } !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !21, file: !21, line: 5, type: !22, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !9, retainedNodes: !26) !21 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !22 = !DISubroutineType(types: !23) diff --git a/test_cases_bc/mem_leak/malloc49.c.bc b/test_cases_bc/mem_leak/malloc49.c.bc index 2dcdc403..392229d5 100644 --- a/test_cases_bc/mem_leak/malloc49.c.bc +++ b/test_cases_bc/mem_leak/malloc49.c.bc @@ -149,7 +149,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc49.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "eefcfadba3270f93112a838dee81b992") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -158,7 +158,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc5.c.bc b/test_cases_bc/mem_leak/malloc5.c.bc index 4c4e82b1..38c4d9cb 100644 --- a/test_cases_bc/mem_leak/malloc5.c.bc +++ b/test_cases_bc/mem_leak/malloc5.c.bc @@ -140,7 +140,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc5.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7288a63949863b0e9a1a0539ce2c32f2") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -149,7 +149,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc50.c.bc b/test_cases_bc/mem_leak/malloc50.c.bc index b0bb3dba..320c6d12 100644 --- a/test_cases_bc/mem_leak/malloc50.c.bc +++ b/test_cases_bc/mem_leak/malloc50.c.bc @@ -160,7 +160,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc50.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "166426f79105095cb13e749d74e99d02") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -169,7 +169,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc51.c.bc b/test_cases_bc/mem_leak/malloc51.c.bc index b1bccc16..e94f08cd 100644 --- a/test_cases_bc/mem_leak/malloc51.c.bc +++ b/test_cases_bc/mem_leak/malloc51.c.bc @@ -167,7 +167,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc51.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f5d312120d4915dfc1579bd4dea42b28") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -176,7 +176,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc52.c.bc b/test_cases_bc/mem_leak/malloc52.c.bc index 921051d2..f80f0be6 100644 --- a/test_cases_bc/mem_leak/malloc52.c.bc +++ b/test_cases_bc/mem_leak/malloc52.c.bc @@ -541,7 +541,7 @@ attributes #6 = { nounwind } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "hufts", scope: !2, file: !7, line: 18, type: !22, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !4, globals: !23, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !4, globals: !23, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc52.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "6caf9504fce28cbfa1b46d21778814c5") !4 = !{!5, !20, !22, !10} !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64) @@ -570,7 +570,7 @@ attributes #6 = { nounwind } !28 = !{i32 7, !"PIE Level", i32 2} !29 = !{i32 7, !"uwtable", i32 2} !30 = !{i32 7, !"frame-pointer", i32 2} -!31 = !{!"clang version 16.0.0"} +!31 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !32 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !33, file: !33, line: 5, type: !34, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) !33 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !34 = !DISubroutineType(types: !35) diff --git a/test_cases_bc/mem_leak/malloc53.c.bc b/test_cases_bc/mem_leak/malloc53.c.bc index 4a71f754..cadfed99 100644 --- a/test_cases_bc/mem_leak/malloc53.c.bc +++ b/test_cases_bc/mem_leak/malloc53.c.bc @@ -476,7 +476,7 @@ attributes #5 = { nounwind } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "nx", scope: !2, file: !6, line: 11, type: !17, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !15, globals: !20, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !15, globals: !20, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc53.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "9e7b046431413a7316877d2befa8c4b6") !4 = !{!5} !5 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !6, line: 10, baseType: !7, size: 32, elements: !8) @@ -529,7 +529,7 @@ attributes #5 = { nounwind } !52 = !{i32 7, !"PIE Level", i32 2} !53 = !{i32 7, !"uwtable", i32 2} !54 = !{i32 7, !"frame-pointer", i32 2} -!55 = !{!"clang version 16.0.0"} +!55 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !56 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !57, file: !57, line: 5, type: !58, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) !57 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !58 = !DISubroutineType(types: !59) diff --git a/test_cases_bc/mem_leak/malloc54.c.bc b/test_cases_bc/mem_leak/malloc54.c.bc index 635af749..6349908d 100644 --- a/test_cases_bc/mem_leak/malloc54.c.bc +++ b/test_cases_bc/mem_leak/malloc54.c.bc @@ -150,7 +150,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc54.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7467b5c13550195668afff38221516ab") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -159,7 +159,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc55.c.bc b/test_cases_bc/mem_leak/malloc55.c.bc index dbc02890..1d02100c 100644 --- a/test_cases_bc/mem_leak/malloc55.c.bc +++ b/test_cases_bc/mem_leak/malloc55.c.bc @@ -143,7 +143,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc55.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "130d558ce52f4dca5ae91039a8992eef") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -152,7 +152,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc56.c.bc b/test_cases_bc/mem_leak/malloc56.c.bc index 39b9d06f..7c8d0629 100644 --- a/test_cases_bc/mem_leak/malloc56.c.bc +++ b/test_cases_bc/mem_leak/malloc56.c.bc @@ -145,7 +145,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc56.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "08f758d5e861c27ff9947df184616bd5") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -154,7 +154,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc57.c.bc b/test_cases_bc/mem_leak/malloc57.c.bc index d3090642..3d57bf2d 100644 --- a/test_cases_bc/mem_leak/malloc57.c.bc +++ b/test_cases_bc/mem_leak/malloc57.c.bc @@ -155,7 +155,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!4, !5, !6, !7, !8, !9, !10} !llvm.ident = !{!11} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc57.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "862bd465fd18a7513be19510ffcafdaf") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -166,7 +166,7 @@ attributes #5 = { nounwind } !8 = !{i32 7, !"PIE Level", i32 2} !9 = !{i32 7, !"uwtable", i32 2} !10 = !{i32 7, !"frame-pointer", i32 2} -!11 = !{!"clang version 16.0.0"} +!11 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !12 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !13, file: !13, line: 5, type: !14, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !13 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !14 = !DISubroutineType(types: !15) diff --git a/test_cases_bc/mem_leak/malloc58.c.bc b/test_cases_bc/mem_leak/malloc58.c.bc index 432273bb..3650f185 100644 --- a/test_cases_bc/mem_leak/malloc58.c.bc +++ b/test_cases_bc/mem_leak/malloc58.c.bc @@ -201,7 +201,7 @@ attributes #3 = { nounwind allocsize(0) } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "cimage", scope: !2, file: !11, line: 10, type: !7, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !4, globals: !10, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !4, globals: !10, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc58.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "00d0398756affb4a7943fcef50211ac2") !4 = !{!5, !7, !8} !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64) @@ -218,7 +218,7 @@ attributes #3 = { nounwind allocsize(0) } !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !21, file: !21, line: 5, type: !22, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) !21 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !22 = !DISubroutineType(types: !23) diff --git a/test_cases_bc/mem_leak/malloc59.c.bc b/test_cases_bc/mem_leak/malloc59.c.bc index 58ae74fa..53f74fc9 100644 --- a/test_cases_bc/mem_leak/malloc59.c.bc +++ b/test_cases_bc/mem_leak/malloc59.c.bc @@ -156,7 +156,7 @@ attributes #7 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc59.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b3835eb913fa0ff911005ae435121894") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -165,7 +165,7 @@ attributes #7 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc6.c.bc b/test_cases_bc/mem_leak/malloc6.c.bc index 23c6a5a8..bc754e12 100644 --- a/test_cases_bc/mem_leak/malloc6.c.bc +++ b/test_cases_bc/mem_leak/malloc6.c.bc @@ -152,7 +152,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc6.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a540e520bc99a1e09c9cafc97e90b483") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -161,7 +161,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc60.c.bc b/test_cases_bc/mem_leak/malloc60.c.bc index 83b2a717..0635dc2e 100644 --- a/test_cases_bc/mem_leak/malloc60.c.bc +++ b/test_cases_bc/mem_leak/malloc60.c.bc @@ -145,7 +145,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc60.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "b21d2242c561ca4ebb64b9b413d0e19c") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -154,7 +154,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc61.c.bc b/test_cases_bc/mem_leak/malloc61.c.bc index c82d1084..e3e0efff 100644 --- a/test_cases_bc/mem_leak/malloc61.c.bc +++ b/test_cases_bc/mem_leak/malloc61.c.bc @@ -167,7 +167,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc61.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a0a297911c792f65c34f688a26e857e2") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -176,7 +176,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc62.c.bc b/test_cases_bc/mem_leak/malloc62.c.bc index d3f4a6d8..8e99fe56 100644 --- a/test_cases_bc/mem_leak/malloc62.c.bc +++ b/test_cases_bc/mem_leak/malloc62.c.bc @@ -166,7 +166,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc62.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "064fdf43e3b6264bd58384e76aec4014") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -175,7 +175,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc63.c.bc b/test_cases_bc/mem_leak/malloc63.c.bc index 756f122e..ecdd38ab 100644 --- a/test_cases_bc/mem_leak/malloc63.c.bc +++ b/test_cases_bc/mem_leak/malloc63.c.bc @@ -196,7 +196,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc63.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "3681d03a9bac3191bb4f0f4ae8849232") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -205,7 +205,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/malloc64.c.bc b/test_cases_bc/mem_leak/malloc64.c.bc index c52692e0..81adbdd1 100644 --- a/test_cases_bc/mem_leak/malloc64.c.bc +++ b/test_cases_bc/mem_leak/malloc64.c.bc @@ -1368,7 +1368,7 @@ attributes #7 = { nounwind } !58 = !DISubrange(count: 8) !59 = !DIGlobalVariableExpression(var: !60, expr: !DIExpression()) !60 = distinct !DIGlobalVariable(scope: null, file: !2, line: 212, type: !56, isLocal: true, isDefinition: true) -!61 = distinct !DICompileUnit(language: DW_LANG_C11, file: !62, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !63, globals: !80, splitDebugInlining: false, nameTableKind: None) +!61 = distinct !DICompileUnit(language: DW_LANG_C11, file: !62, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !63, globals: !80, splitDebugInlining: false, nameTableKind: None) !62 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc64.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7572748c5d7dc78cca7e2a61e7fe07af") !63 = !{!64, !66} !64 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !65, size: 64) @@ -1395,7 +1395,7 @@ attributes #7 = { nounwind } !85 = !{i32 7, !"PIE Level", i32 2} !86 = !{i32 7, !"uwtable", i32 2} !87 = !{i32 7, !"frame-pointer", i32 2} -!88 = !{!"clang version 16.0.0"} +!88 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !89 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !90, file: !90, line: 5, type: !91, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !61, retainedNodes: !93) !90 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !91 = !DISubroutineType(types: !92) diff --git a/test_cases_bc/mem_leak/malloc7.c.bc b/test_cases_bc/mem_leak/malloc7.c.bc index 5836b7e3..a3e956a4 100644 --- a/test_cases_bc/mem_leak/malloc7.c.bc +++ b/test_cases_bc/mem_leak/malloc7.c.bc @@ -125,7 +125,7 @@ attributes #4 = { nounwind allocsize(0) } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "g", scope: !2, file: !7, line: 10, type: !12, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc7.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "82974254a31bb29f249f16832832665c") !4 = !{!5, !0} !5 = !DIGlobalVariableExpression(var: !6, expr: !DIExpression()) @@ -144,7 +144,7 @@ attributes #4 = { nounwind allocsize(0) } !18 = !{i32 7, !"PIE Level", i32 2} !19 = !{i32 7, !"uwtable", i32 2} !20 = !{i32 7, !"frame-pointer", i32 2} -!21 = !{!"clang version 16.0.0"} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !22 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !23, file: !23, line: 5, type: !24, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !27) !23 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !24 = !DISubroutineType(types: !25) diff --git a/test_cases_bc/mem_leak/malloc8.c.bc b/test_cases_bc/mem_leak/malloc8.c.bc index 94da976f..9b83660a 100644 --- a/test_cases_bc/mem_leak/malloc8.c.bc +++ b/test_cases_bc/mem_leak/malloc8.c.bc @@ -160,7 +160,7 @@ attributes #8 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 45) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc8.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "4ff05b411e2382e9b06b46bb557de701") !9 = !{!10} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64) @@ -173,7 +173,7 @@ attributes #8 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/malloc9.c.bc b/test_cases_bc/mem_leak/malloc9.c.bc index 953372cb..9ed850c4 100644 --- a/test_cases_bc/mem_leak/malloc9.c.bc +++ b/test_cases_bc/mem_leak/malloc9.c.bc @@ -130,7 +130,7 @@ attributes #3 = { nounwind allocsize(0) } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "rr_node", scope: !2, file: !5, line: 17, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/malloc9.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "77ee16257947527d385aa7999c44a788") !4 = !{!0} !5 = !DIFile(filename: "src/mem_leak/malloc9.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "77ee16257947527d385aa7999c44a788") @@ -159,7 +159,7 @@ attributes #3 = { nounwind allocsize(0) } !28 = !{i32 7, !"PIE Level", i32 2} !29 = !{i32 7, !"uwtable", i32 2} !30 = !{i32 7, !"frame-pointer", i32 2} -!31 = !{!"clang version 16.0.0"} +!31 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !32 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !33, file: !33, line: 5, type: !34, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !37) !33 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !34 = !DISubroutineType(types: !35) diff --git a/test_cases_bc/mem_leak/sp1.c.bc b/test_cases_bc/mem_leak/sp1.c.bc index db76adc8..54621f76 100644 --- a/test_cases_bc/mem_leak/sp1.c.bc +++ b/test_cases_bc/mem_leak/sp1.c.bc @@ -174,7 +174,7 @@ attributes #7 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 6) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp1.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "ea92a2c024e32eee5e212630b4e2a5e4") !9 = !{!10} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -186,7 +186,7 @@ attributes #7 = { nounwind } !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !21, file: !21, line: 5, type: !22, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !25) !21 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !22 = !DISubroutineType(types: !23) diff --git a/test_cases_bc/mem_leak/sp10.c.bc b/test_cases_bc/mem_leak/sp10.c.bc index 4594c554..62344b8d 100644 --- a/test_cases_bc/mem_leak/sp10.c.bc +++ b/test_cases_bc/mem_leak/sp10.c.bc @@ -207,7 +207,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!14, !15, !16, !17, !18, !19, !20} !llvm.ident = !{!21} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp10.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "33cfe96f0f2147d2a86090e885d1ee77") !2 = !{!3, !12, !9} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -228,7 +228,7 @@ attributes #5 = { nounwind } !18 = !{i32 7, !"PIE Level", i32 2} !19 = !{i32 7, !"uwtable", i32 2} !20 = !{i32 7, !"frame-pointer", i32 2} -!21 = !{!"clang version 16.0.0"} +!21 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !22 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !23, file: !23, line: 5, type: !24, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !27) !23 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !24 = !DISubroutineType(types: !25) diff --git a/test_cases_bc/mem_leak/sp11.c.bc b/test_cases_bc/mem_leak/sp11.c.bc index 6bd04fcd..3d99b2a2 100644 --- a/test_cases_bc/mem_leak/sp11.c.bc +++ b/test_cases_bc/mem_leak/sp11.c.bc @@ -154,7 +154,7 @@ attributes #7 = { noreturn nounwind } !llvm.module.flags = !{!4, !5, !6, !7, !8, !9, !10} !llvm.ident = !{!11} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp11.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "fd6e4641285f1e2a9caa656bdce5efda") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -165,7 +165,7 @@ attributes #7 = { noreturn nounwind } !8 = !{i32 7, !"PIE Level", i32 2} !9 = !{i32 7, !"uwtable", i32 2} !10 = !{i32 7, !"frame-pointer", i32 2} -!11 = !{!"clang version 16.0.0"} +!11 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !12 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !13, file: !13, line: 5, type: !14, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !17) !13 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !14 = !DISubroutineType(types: !15) diff --git a/test_cases_bc/mem_leak/sp12.c.bc b/test_cases_bc/mem_leak/sp12.c.bc index 304fa9e5..850994db 100644 --- a/test_cases_bc/mem_leak/sp12.c.bc +++ b/test_cases_bc/mem_leak/sp12.c.bc @@ -151,7 +151,7 @@ attributes #5 = { nounwind } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "G", scope: !2, file: !5, line: 11, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp12.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "47ef3cc0a78dbf2cf1bc5d6199c11ffb") !4 = !{!0} !5 = !DIFile(filename: "src/mem_leak/sp12.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "47ef3cc0a78dbf2cf1bc5d6199c11ffb") @@ -163,7 +163,7 @@ attributes #5 = { nounwind } !11 = !{i32 7, !"PIE Level", i32 2} !12 = !{i32 7, !"uwtable", i32 2} !13 = !{i32 7, !"frame-pointer", i32 2} -!14 = !{!"clang version 16.0.0"} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !15 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !16, file: !16, line: 5, type: !17, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) !16 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !17 = !DISubroutineType(types: !18) diff --git a/test_cases_bc/mem_leak/sp12a.c.bc b/test_cases_bc/mem_leak/sp12a.c.bc index 2f616814..1ec2a2c7 100644 --- a/test_cases_bc/mem_leak/sp12a.c.bc +++ b/test_cases_bc/mem_leak/sp12a.c.bc @@ -151,7 +151,7 @@ attributes #5 = { nounwind } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "G", scope: !2, file: !5, line: 10, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp12a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "852fc22f9fe99bf188e188d35f6b478b") !4 = !{!0} !5 = !DIFile(filename: "src/mem_leak/sp12a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "852fc22f9fe99bf188e188d35f6b478b") @@ -163,7 +163,7 @@ attributes #5 = { nounwind } !11 = !{i32 7, !"PIE Level", i32 2} !12 = !{i32 7, !"uwtable", i32 2} !13 = !{i32 7, !"frame-pointer", i32 2} -!14 = !{!"clang version 16.0.0"} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !15 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !16, file: !16, line: 5, type: !17, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) !16 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !17 = !DISubroutineType(types: !18) diff --git a/test_cases_bc/mem_leak/sp13.c.bc b/test_cases_bc/mem_leak/sp13.c.bc index 853b7bc2..a49363fe 100644 --- a/test_cases_bc/mem_leak/sp13.c.bc +++ b/test_cases_bc/mem_leak/sp13.c.bc @@ -153,7 +153,7 @@ attributes #3 = { nounwind allocsize(0) } !llvm.module.flags = !{!11, !12, !13, !14, !15, !16, !17} !llvm.ident = !{!18} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp13.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "37fa4102dcf4fbc2603d67d81f563cd3") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -171,7 +171,7 @@ attributes #3 = { nounwind allocsize(0) } !15 = !{i32 7, !"PIE Level", i32 2} !16 = !{i32 7, !"uwtable", i32 2} !17 = !{i32 7, !"frame-pointer", i32 2} -!18 = !{!"clang version 16.0.0"} +!18 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !19 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !20, file: !20, line: 5, type: !21, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) !20 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !21 = !DISubroutineType(types: !22) diff --git a/test_cases_bc/mem_leak/sp13a.c.bc b/test_cases_bc/mem_leak/sp13a.c.bc index c5bb39c7..f526fe42 100644 --- a/test_cases_bc/mem_leak/sp13a.c.bc +++ b/test_cases_bc/mem_leak/sp13a.c.bc @@ -164,7 +164,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!11, !12, !13, !14, !15, !16, !17} !llvm.ident = !{!18} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp13a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "21024a9950774fb0c2f8b263173f82ab") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -182,7 +182,7 @@ attributes #5 = { nounwind } !15 = !{i32 7, !"PIE Level", i32 2} !16 = !{i32 7, !"uwtable", i32 2} !17 = !{i32 7, !"frame-pointer", i32 2} -!18 = !{!"clang version 16.0.0"} +!18 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !19 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !20, file: !20, line: 5, type: !21, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !25) !20 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !21 = !DISubroutineType(types: !22) diff --git a/test_cases_bc/mem_leak/sp14.c.bc b/test_cases_bc/mem_leak/sp14.c.bc index ced2ec5e..0bfd0274 100644 --- a/test_cases_bc/mem_leak/sp14.c.bc +++ b/test_cases_bc/mem_leak/sp14.c.bc @@ -155,7 +155,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp14.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a6b85096f2aaf8d63bd4a087cf278a17") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -164,7 +164,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/sp14a.c.bc b/test_cases_bc/mem_leak/sp14a.c.bc index 8074d16d..b29349e8 100644 --- a/test_cases_bc/mem_leak/sp14a.c.bc +++ b/test_cases_bc/mem_leak/sp14a.c.bc @@ -151,7 +151,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8} !llvm.ident = !{!9} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp14a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "a1d5409e5966396df44293b01a919070") !2 = !{i32 7, !"Dwarf Version", i32 5} !3 = !{i32 2, !"Debug Info Version", i32 3} @@ -160,7 +160,7 @@ attributes #5 = { nounwind } !6 = !{i32 7, !"PIE Level", i32 2} !7 = !{i32 7, !"uwtable", i32 2} !8 = !{i32 7, !"frame-pointer", i32 2} -!9 = !{!"clang version 16.0.0"} +!9 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !10 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !11, file: !11, line: 5, type: !12, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !16) !11 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !12 = !DISubroutineType(types: !13) diff --git a/test_cases_bc/mem_leak/sp15.c.bc b/test_cases_bc/mem_leak/sp15.c.bc index 97e36d52..e949f23a 100644 --- a/test_cases_bc/mem_leak/sp15.c.bc +++ b/test_cases_bc/mem_leak/sp15.c.bc @@ -182,7 +182,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} !llvm.ident = !{!17} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp15.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "17b8f7010b3005ccefff5377bfedd8a1") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -199,7 +199,7 @@ attributes #5 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/sp15a.c.bc b/test_cases_bc/mem_leak/sp15a.c.bc index 296def56..c784fd49 100644 --- a/test_cases_bc/mem_leak/sp15a.c.bc +++ b/test_cases_bc/mem_leak/sp15a.c.bc @@ -181,7 +181,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !16} !llvm.ident = !{!17} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp15a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "7cb7d7d25f560e25ca2a5cdefd05b0f7") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -198,7 +198,7 @@ attributes #5 = { nounwind } !14 = !{i32 7, !"PIE Level", i32 2} !15 = !{i32 7, !"uwtable", i32 2} !16 = !{i32 7, !"frame-pointer", i32 2} -!17 = !{!"clang version 16.0.0"} +!17 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !18 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !19, file: !19, line: 5, type: !20, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) !19 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !20 = !DISubroutineType(types: !21) diff --git a/test_cases_bc/mem_leak/sp1a.c.bc b/test_cases_bc/mem_leak/sp1a.c.bc index adc65aca..67d936d0 100644 --- a/test_cases_bc/mem_leak/sp1a.c.bc +++ b/test_cases_bc/mem_leak/sp1a.c.bc @@ -167,7 +167,7 @@ attributes #5 = { nounwind allocsize(0) } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 6) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !11, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp1a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c292dfaf78161c1e1b4449f877c7ad26") !9 = !{!10} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -179,7 +179,7 @@ attributes #5 = { nounwind allocsize(0) } !16 = !{i32 7, !"PIE Level", i32 2} !17 = !{i32 7, !"uwtable", i32 2} !18 = !{i32 7, !"frame-pointer", i32 2} -!19 = !{!"clang version 16.0.0"} +!19 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !20 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !21, file: !21, line: 5, type: !22, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !25) !21 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !22 = !DISubroutineType(types: !23) diff --git a/test_cases_bc/mem_leak/sp2.c.bc b/test_cases_bc/mem_leak/sp2.c.bc index c718bc14..f2ad0bbe 100644 --- a/test_cases_bc/mem_leak/sp2.c.bc +++ b/test_cases_bc/mem_leak/sp2.c.bc @@ -168,7 +168,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp2.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cde5ac0473251c9ab3556e5bd2a5ef43") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -180,7 +180,7 @@ attributes #5 = { nounwind } !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !14, file: !14, line: 5, type: !15, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) !14 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/mem_leak/sp22.c.bc b/test_cases_bc/mem_leak/sp22.c.bc index 7d20a326..e7f03b51 100644 --- a/test_cases_bc/mem_leak/sp22.c.bc +++ b/test_cases_bc/mem_leak/sp22.c.bc @@ -147,7 +147,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp22.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "647e5f3e77d9c1efbd04ef98c046132b") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -159,7 +159,7 @@ attributes #5 = { nounwind } !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !14, file: !14, line: 5, type: !15, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) !14 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/mem_leak/sp2a.c.bc b/test_cases_bc/mem_leak/sp2a.c.bc index 6965b473..a0e22756 100644 --- a/test_cases_bc/mem_leak/sp2a.c.bc +++ b/test_cases_bc/mem_leak/sp2a.c.bc @@ -166,7 +166,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp2a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "1f9767712f42140a0736f7ca05c07ac0") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -178,7 +178,7 @@ attributes #5 = { nounwind } !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !14, file: !14, line: 5, type: !15, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) !14 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/mem_leak/sp3.c.bc b/test_cases_bc/mem_leak/sp3.c.bc index af4481df..a05edc84 100644 --- a/test_cases_bc/mem_leak/sp3.c.bc +++ b/test_cases_bc/mem_leak/sp3.c.bc @@ -194,7 +194,7 @@ attributes #7 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 6) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp3.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "e976aa48b5417e1a7224b8d52418d154") !9 = !{!10, !11} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -207,7 +207,7 @@ attributes #7 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/sp3a.c.bc b/test_cases_bc/mem_leak/sp3a.c.bc index 67b6d071..905b0fd9 100644 --- a/test_cases_bc/mem_leak/sp3a.c.bc +++ b/test_cases_bc/mem_leak/sp3a.c.bc @@ -187,7 +187,7 @@ attributes #5 = { nounwind allocsize(0) } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 6) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp3a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8cc92b795b03097962226e901f8f2ee5") !9 = !{!10, !11} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -200,7 +200,7 @@ attributes #5 = { nounwind allocsize(0) } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/sp4.c.bc b/test_cases_bc/mem_leak/sp4.c.bc index 499b2953..22014d9b 100644 --- a/test_cases_bc/mem_leak/sp4.c.bc +++ b/test_cases_bc/mem_leak/sp4.c.bc @@ -192,7 +192,7 @@ attributes #7 = { nounwind } !llvm.module.flags = !{!13, !14, !15, !16, !17, !18, !19} !llvm.ident = !{!20} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp4.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "dab39dcd927272e2fe8871c0da781b03") !2 = !{!3, !12, !9} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -212,7 +212,7 @@ attributes #7 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/sp41.c.bc b/test_cases_bc/mem_leak/sp41.c.bc index ffb4262d..91c47004 100644 --- a/test_cases_bc/mem_leak/sp41.c.bc +++ b/test_cases_bc/mem_leak/sp41.c.bc @@ -223,7 +223,7 @@ attributes #7 = { nounwind } !llvm.module.flags = !{!13, !14, !15, !16, !17, !18, !19} !llvm.ident = !{!20} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp41.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2f0bab6dc649b65336829388b91feaf4") !2 = !{!3, !12, !9} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -243,7 +243,7 @@ attributes #7 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/sp4a.c.bc b/test_cases_bc/mem_leak/sp4a.c.bc index d0c4a0d8..3d4fc037 100644 --- a/test_cases_bc/mem_leak/sp4a.c.bc +++ b/test_cases_bc/mem_leak/sp4a.c.bc @@ -219,7 +219,7 @@ attributes #7 = { nounwind } !llvm.module.flags = !{!13, !14, !15, !16, !17, !18, !19} !llvm.ident = !{!20} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp4a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "995e79e085d56ef9ae8bcdc33f6c4618") !2 = !{!3, !12, !9} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -239,7 +239,7 @@ attributes #7 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mem_leak/sp5.c.bc b/test_cases_bc/mem_leak/sp5.c.bc index e685dbe9..b9dbe919 100644 --- a/test_cases_bc/mem_leak/sp5.c.bc +++ b/test_cases_bc/mem_leak/sp5.c.bc @@ -151,7 +151,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp5.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "bbdcb8461540a9e09581b2e00cfd64b3") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -163,7 +163,7 @@ attributes #5 = { nounwind } !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !14, file: !14, line: 5, type: !15, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) !14 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/mem_leak/sp5a.c.bc b/test_cases_bc/mem_leak/sp5a.c.bc index 15a53527..960d6688 100644 --- a/test_cases_bc/mem_leak/sp5a.c.bc +++ b/test_cases_bc/mem_leak/sp5a.c.bc @@ -149,7 +149,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11} !llvm.ident = !{!12} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp5a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "2f2542e0bfae689c116bea0026631643") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64) @@ -161,7 +161,7 @@ attributes #5 = { nounwind } !9 = !{i32 7, !"PIE Level", i32 2} !10 = !{i32 7, !"uwtable", i32 2} !11 = !{i32 7, !"frame-pointer", i32 2} -!12 = !{!"clang version 16.0.0"} +!12 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !13 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !14, file: !14, line: 5, type: !15, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !19) !14 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !15 = !DISubroutineType(types: !16) diff --git a/test_cases_bc/mem_leak/sp6.c.bc b/test_cases_bc/mem_leak/sp6.c.bc index 4d68164c..f35a6012 100644 --- a/test_cases_bc/mem_leak/sp6.c.bc +++ b/test_cases_bc/mem_leak/sp6.c.bc @@ -171,7 +171,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!9, !10, !11, !12, !13, !14, !15} !llvm.ident = !{!16} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp6.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "81f929b093558bbf1bdb845eb05dbb73") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_typedef, name: "list", file: !4, line: 13, baseType: !5) @@ -187,7 +187,7 @@ attributes #5 = { nounwind } !13 = !{i32 7, !"PIE Level", i32 2} !14 = !{i32 7, !"uwtable", i32 2} !15 = !{i32 7, !"frame-pointer", i32 2} -!16 = !{!"clang version 16.0.0"} +!16 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !17 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !18, file: !18, line: 5, type: !19, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) !18 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !19 = !DISubroutineType(types: !20) diff --git a/test_cases_bc/mem_leak/sp6a.c.bc b/test_cases_bc/mem_leak/sp6a.c.bc index 0c887b42..6d695b56 100644 --- a/test_cases_bc/mem_leak/sp6a.c.bc +++ b/test_cases_bc/mem_leak/sp6a.c.bc @@ -182,7 +182,7 @@ attributes #5 = { nounwind } !llvm.module.flags = !{!9, !10, !11, !12, !13, !14, !15} !llvm.ident = !{!16} -!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) +!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !2, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp6a.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "0e1f48573e137e0a7d7a7b3c4bfca2eb") !2 = !{!3} !3 = !DIDerivedType(tag: DW_TAG_typedef, name: "list", file: !4, line: 13, baseType: !5) @@ -198,7 +198,7 @@ attributes #5 = { nounwind } !13 = !{i32 7, !"PIE Level", i32 2} !14 = !{i32 7, !"uwtable", i32 2} !15 = !{i32 7, !"frame-pointer", i32 2} -!16 = !{!"clang version 16.0.0"} +!16 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !17 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !18, file: !18, line: 5, type: !19, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !23) !18 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !19 = !DISubroutineType(types: !20) diff --git a/test_cases_bc/mem_leak/sp7.c.bc b/test_cases_bc/mem_leak/sp7.c.bc index b345e956..f1c27e88 100644 --- a/test_cases_bc/mem_leak/sp7.c.bc +++ b/test_cases_bc/mem_leak/sp7.c.bc @@ -144,7 +144,7 @@ attributes #3 = { nounwind allocsize(0) } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "G", scope: !2, file: !8, line: 11, type: !5, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !4, globals: !7, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !4, globals: !7, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp7.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "c49999934a0ddd7b640107215a377423") !4 = !{!5} !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64) @@ -158,7 +158,7 @@ attributes #3 = { nounwind allocsize(0) } !13 = !{i32 7, !"PIE Level", i32 2} !14 = !{i32 7, !"uwtable", i32 2} !15 = !{i32 7, !"frame-pointer", i32 2} -!16 = !{!"clang version 16.0.0"} +!16 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !17 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !18, file: !18, line: 5, type: !19, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !22) !18 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !19 = !DISubroutineType(types: !20) diff --git a/test_cases_bc/mem_leak/sp8.c.bc b/test_cases_bc/mem_leak/sp8.c.bc index 558098b6..a610054c 100644 --- a/test_cases_bc/mem_leak/sp8.c.bc +++ b/test_cases_bc/mem_leak/sp8.c.bc @@ -211,7 +211,7 @@ attributes #5 = { nounwind } !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) !1 = distinct !DIGlobalVariable(name: "G", scope: !2, file: !5, line: 11, type: !6, isLocal: false, isDefinition: true) -!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) +!2 = distinct !DICompileUnit(language: DW_LANG_C11, file: !3, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: None) !3 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp8.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cf868c78f83e52fe9481225509ee1a50") !4 = !{!0} !5 = !DIFile(filename: "src/mem_leak/sp8.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "cf868c78f83e52fe9481225509ee1a50") @@ -223,7 +223,7 @@ attributes #5 = { nounwind } !11 = !{i32 7, !"PIE Level", i32 2} !12 = !{i32 7, !"uwtable", i32 2} !13 = !{i32 7, !"frame-pointer", i32 2} -!14 = !{!"clang version 16.0.0"} +!14 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !15 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !16, file: !16, line: 5, type: !17, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !20) !16 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !17 = !DISubroutineType(types: !18) diff --git a/test_cases_bc/mem_leak/sp9.c.bc b/test_cases_bc/mem_leak/sp9.c.bc index fcb5e94f..a7716ff0 100644 --- a/test_cases_bc/mem_leak/sp9.c.bc +++ b/test_cases_bc/mem_leak/sp9.c.bc @@ -296,7 +296,7 @@ attributes #8 = { nounwind } !4 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char) !5 = !{!6} !6 = !DISubrange(count: 4) -!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) +!7 = distinct !DICompileUnit(language: DW_LANG_C11, file: !8, producer: "clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, retainedTypes: !9, globals: !12, splitDebugInlining: false, nameTableKind: None) !8 = !DIFile(filename: "/home/runner/work/Test-Suite/Test-Suite/src/mem_leak/sp9.c", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "8dab305d88a8cfd2e14267cb179393d1") !9 = !{!10, !11} !10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) @@ -309,7 +309,7 @@ attributes #8 = { nounwind } !17 = !{i32 7, !"PIE Level", i32 2} !18 = !{i32 7, !"uwtable", i32 2} !19 = !{i32 7, !"frame-pointer", i32 2} -!20 = !{!"clang version 16.0.0"} +!20 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !21 = distinct !DISubprogram(name: "SAFEMALLOC", scope: !22, file: !22, line: 5, type: !23, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !7, retainedNodes: !26) !22 = !DIFile(filename: "memleak_check.h", directory: "/home/runner/work/Test-Suite/Test-Suite", checksumkind: CSK_MD5, checksum: "f78006bd129ed179fe44821c3aed9305") !23 = !DISubroutineType(types: !24) diff --git a/test_cases_bc/mta/imprecise_cxt_indfork_1.c.bc b/test_cases_bc/mta/imprecise_cxt_indfork_1.c.bc index 089137e4..17145920 100644 --- a/test_cases_bc/mta/imprecise_cxt_indfork_1.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_indfork_1.c.bc @@ -331,4 +331,4 @@ attributes #5 = { nounwind willreturn memory(read) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_indfork_2.c.bc b/test_cases_bc/mta/imprecise_cxt_indfork_2.c.bc index 078551fc..f4add2b3 100644 --- a/test_cases_bc/mta/imprecise_cxt_indfork_2.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_indfork_2.c.bc @@ -367,4 +367,4 @@ attributes #5 = { nounwind willreturn memory(read) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_indfork_3.c.bc b/test_cases_bc/mta/imprecise_cxt_indfork_3.c.bc index 375e4ea3..2fe56993 100644 --- a/test_cases_bc/mta/imprecise_cxt_indfork_3.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_indfork_3.c.bc @@ -447,4 +447,4 @@ attributes #5 = { nounwind willreturn memory(read) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_join_4.c.bc b/test_cases_bc/mta/imprecise_cxt_join_4.c.bc index d66ec92e..801a25cb 100644 --- a/test_cases_bc/mta/imprecise_cxt_join_4.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_join_4.c.bc @@ -257,4 +257,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_join_5.c.bc b/test_cases_bc/mta/imprecise_cxt_join_5.c.bc index 559b0623..e7fd0e9b 100644 --- a/test_cases_bc/mta/imprecise_cxt_join_5.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_join_5.c.bc @@ -257,4 +257,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_loop_5.c.bc b/test_cases_bc/mta/imprecise_cxt_loop_5.c.bc index 4f6be01a..ebfa45e1 100644 --- a/test_cases_bc/mta/imprecise_cxt_loop_5.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_loop_5.c.bc @@ -349,6 +349,6 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/mta/imprecise_cxt_offspring_5.c.bc b/test_cases_bc/mta/imprecise_cxt_offspring_5.c.bc index e8334a5a..2e627321 100644 --- a/test_cases_bc/mta/imprecise_cxt_offspring_5.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_offspring_5.c.bc @@ -303,4 +303,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_recur_2.c.bc b/test_cases_bc/mta/imprecise_cxt_recur_2.c.bc index 935a0e65..8bedf82c 100644 --- a/test_cases_bc/mta/imprecise_cxt_recur_2.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_recur_2.c.bc @@ -327,4 +327,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_recur_3.c.bc b/test_cases_bc/mta/imprecise_cxt_recur_3.c.bc index 3fbf102a..d562ed78 100644 --- a/test_cases_bc/mta/imprecise_cxt_recur_3.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_recur_3.c.bc @@ -326,4 +326,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_recur_5.c.bc b/test_cases_bc/mta/imprecise_cxt_recur_5.c.bc index 2618f1f4..c70a16e6 100644 --- a/test_cases_bc/mta/imprecise_cxt_recur_5.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_recur_5.c.bc @@ -337,4 +337,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_recur_6.c.bc b/test_cases_bc/mta/imprecise_cxt_recur_6.c.bc index ca92e6c0..6d5e6101 100644 --- a/test_cases_bc/mta/imprecise_cxt_recur_6.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_recur_6.c.bc @@ -336,4 +336,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_thdindex_10.c.bc b/test_cases_bc/mta/imprecise_cxt_thdindex_10.c.bc index 5fcb63c7..2b2360fa 100644 --- a/test_cases_bc/mta/imprecise_cxt_thdindex_10.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_thdindex_10.c.bc @@ -370,4 +370,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_thdindex_3.c.bc b/test_cases_bc/mta/imprecise_cxt_thdindex_3.c.bc index 2437792f..7285dff8 100644 --- a/test_cases_bc/mta/imprecise_cxt_thdindex_3.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_thdindex_3.c.bc @@ -303,4 +303,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_thdindex_4_1.c.bc b/test_cases_bc/mta/imprecise_cxt_thdindex_4_1.c.bc index 8a075444..2b0866bd 100644 --- a/test_cases_bc/mta/imprecise_cxt_thdindex_4_1.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_thdindex_4_1.c.bc @@ -370,4 +370,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_thdindex_4_2.c.bc b/test_cases_bc/mta/imprecise_cxt_thdindex_4_2.c.bc index d07a84a7..9441e561 100644 --- a/test_cases_bc/mta/imprecise_cxt_thdindex_4_2.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_thdindex_4_2.c.bc @@ -372,4 +372,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_thdindex_8_2.c.bc b/test_cases_bc/mta/imprecise_cxt_thdindex_8_2.c.bc index 2771b3d6..c7916625 100644 --- a/test_cases_bc/mta/imprecise_cxt_thdindex_8_2.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_thdindex_8_2.c.bc @@ -300,4 +300,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/imprecise_cxt_thdindex_9.c.bc b/test_cases_bc/mta/imprecise_cxt_thdindex_9.c.bc index 8861845b..15f43fe3 100644 --- a/test_cases_bc/mta/imprecise_cxt_thdindex_9.c.bc +++ b/test_cases_bc/mta/imprecise_cxt_thdindex_9.c.bc @@ -317,4 +317,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_branch_1.c.bc b/test_cases_bc/mta/succ_cxt_branch_1.c.bc index b115c149..c1888f49 100644 --- a/test_cases_bc/mta/succ_cxt_branch_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_branch_1.c.bc @@ -239,4 +239,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_branch_2.c.bc b/test_cases_bc/mta/succ_cxt_branch_2.c.bc index 0f895156..1bdac5fa 100644 --- a/test_cases_bc/mta/succ_cxt_branch_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_branch_2.c.bc @@ -241,4 +241,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_branch_3.c.bc b/test_cases_bc/mta/succ_cxt_branch_3.c.bc index ca313ee8..562bf12a 100644 --- a/test_cases_bc/mta/succ_cxt_branch_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_branch_3.c.bc @@ -239,4 +239,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_branch_4.c.bc b/test_cases_bc/mta/succ_cxt_branch_4.c.bc index 9fd12a58..62cf0145 100644 --- a/test_cases_bc/mta/succ_cxt_branch_4.c.bc +++ b/test_cases_bc/mta/succ_cxt_branch_4.c.bc @@ -252,4 +252,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_branch_5.c.bc b/test_cases_bc/mta/succ_cxt_branch_5.c.bc index dd5c446e..9fc36abe 100644 --- a/test_cases_bc/mta/succ_cxt_branch_5.c.bc +++ b/test_cases_bc/mta/succ_cxt_branch_5.c.bc @@ -255,4 +255,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_cand_1.c.bc b/test_cases_bc/mta/succ_cxt_cand_1.c.bc index 685ea086..ad5d2ec1 100644 --- a/test_cases_bc/mta/succ_cxt_cand_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_cand_1.c.bc @@ -248,4 +248,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_cand_2.c.bc b/test_cases_bc/mta/succ_cxt_cand_2.c.bc index 80bc5bc7..c36cfd52 100644 --- a/test_cases_bc/mta/succ_cxt_cand_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_cand_2.c.bc @@ -274,4 +274,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_cand_3.c.bc b/test_cases_bc/mta/succ_cxt_cand_3.c.bc index bb8ef2c4..c752a9d3 100644 --- a/test_cases_bc/mta/succ_cxt_cand_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_cand_3.c.bc @@ -304,4 +304,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_join_1.c.bc b/test_cases_bc/mta/succ_cxt_join_1.c.bc index a8b812db..8c29e95c 100644 --- a/test_cases_bc/mta/succ_cxt_join_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_join_1.c.bc @@ -294,4 +294,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_join_2.c.bc b/test_cases_bc/mta/succ_cxt_join_2.c.bc index 9e7d4944..4153674c 100644 --- a/test_cases_bc/mta/succ_cxt_join_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_join_2.c.bc @@ -399,4 +399,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_join_3.c.bc b/test_cases_bc/mta/succ_cxt_join_3.c.bc index 27285020..1645b410 100644 --- a/test_cases_bc/mta/succ_cxt_join_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_join_3.c.bc @@ -399,4 +399,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_loop_1.c.bc b/test_cases_bc/mta/succ_cxt_loop_1.c.bc index 2e98c94b..c71e923c 100644 --- a/test_cases_bc/mta/succ_cxt_loop_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_loop_1.c.bc @@ -317,7 +317,7 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/mta/succ_cxt_loop_2.c.bc b/test_cases_bc/mta/succ_cxt_loop_2.c.bc index d0f23743..f1df5a46 100644 --- a/test_cases_bc/mta/succ_cxt_loop_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_loop_2.c.bc @@ -366,7 +366,7 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/mta/succ_cxt_loop_3.c.bc b/test_cases_bc/mta/succ_cxt_loop_3.c.bc index d72a5333..25f20880 100644 --- a/test_cases_bc/mta/succ_cxt_loop_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_loop_3.c.bc @@ -366,7 +366,7 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/mta/succ_cxt_loop_6.c.bc b/test_cases_bc/mta/succ_cxt_loop_6.c.bc index 638f360e..d3acf83b 100644 --- a/test_cases_bc/mta/succ_cxt_loop_6.c.bc +++ b/test_cases_bc/mta/succ_cxt_loop_6.c.bc @@ -301,7 +301,7 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/mta/succ_cxt_loop_8.c.bc b/test_cases_bc/mta/succ_cxt_loop_8.c.bc index d9836701..74a80eb4 100644 --- a/test_cases_bc/mta/succ_cxt_loop_8.c.bc +++ b/test_cases_bc/mta/succ_cxt_loop_8.c.bc @@ -309,7 +309,7 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/mta/succ_cxt_offspring_1.c.bc b/test_cases_bc/mta/succ_cxt_offspring_1.c.bc index 67c06ed1..61538d0d 100644 --- a/test_cases_bc/mta/succ_cxt_offspring_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_offspring_1.c.bc @@ -256,4 +256,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_offspring_2.c.bc b/test_cases_bc/mta/succ_cxt_offspring_2.c.bc index 69ab9311..55af8f34 100644 --- a/test_cases_bc/mta/succ_cxt_offspring_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_offspring_2.c.bc @@ -255,4 +255,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_offspring_3.c.bc b/test_cases_bc/mta/succ_cxt_offspring_3.c.bc index 78de54c8..c6ddace8 100644 --- a/test_cases_bc/mta/succ_cxt_offspring_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_offspring_3.c.bc @@ -254,4 +254,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_offspring_4.c.bc b/test_cases_bc/mta/succ_cxt_offspring_4.c.bc index cf330f2b..6dec030e 100644 --- a/test_cases_bc/mta/succ_cxt_offspring_4.c.bc +++ b/test_cases_bc/mta/succ_cxt_offspring_4.c.bc @@ -272,4 +272,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_recur_4.c.bc b/test_cases_bc/mta/succ_cxt_recur_4.c.bc index 58d68e9c..00ac89fb 100644 --- a/test_cases_bc/mta/succ_cxt_recur_4.c.bc +++ b/test_cases_bc/mta/succ_cxt_recur_4.c.bc @@ -299,4 +299,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_recur_7.c.bc b/test_cases_bc/mta/succ_cxt_recur_7.c.bc index 4a1a9c58..6fa8f4a1 100644 --- a/test_cases_bc/mta/succ_cxt_recur_7.c.bc +++ b/test_cases_bc/mta/succ_cxt_recur_7.c.bc @@ -309,4 +309,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_recur_index_1.c.bc b/test_cases_bc/mta/succ_cxt_recur_index_1.c.bc index d265fcb3..d0c480ec 100644 --- a/test_cases_bc/mta/succ_cxt_recur_index_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_recur_index_1.c.bc @@ -294,4 +294,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_1.c.bc b/test_cases_bc/mta/succ_cxt_sibling_1.c.bc index 83d9b6fa..2aa8c039 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_1.c.bc @@ -316,4 +316,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_2.c.bc b/test_cases_bc/mta/succ_cxt_sibling_2.c.bc index 74ceb31f..5de0dec9 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_2.c.bc @@ -318,4 +318,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_3.c.bc b/test_cases_bc/mta/succ_cxt_sibling_3.c.bc index a5931844..f7790ac9 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_3.c.bc @@ -316,4 +316,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_4.c.bc b/test_cases_bc/mta/succ_cxt_sibling_4.c.bc index 59b142f9..69d6ae0a 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_4.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_4.c.bc @@ -315,4 +315,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_5.c.bc b/test_cases_bc/mta/succ_cxt_sibling_5.c.bc index c1789b81..e34bbb10 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_5.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_5.c.bc @@ -382,4 +382,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_6.c.bc b/test_cases_bc/mta/succ_cxt_sibling_6.c.bc index 4d8abc4a..e96ca0b8 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_6.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_6.c.bc @@ -383,4 +383,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_7.c.bc b/test_cases_bc/mta/succ_cxt_sibling_7.c.bc index 976c2d8d..63fbc781 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_7.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_7.c.bc @@ -381,4 +381,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_sibling_8.c.bc b/test_cases_bc/mta/succ_cxt_sibling_8.c.bc index a98c973d..ba43b466 100644 --- a/test_cases_bc/mta/succ_cxt_sibling_8.c.bc +++ b/test_cases_bc/mta/succ_cxt_sibling_8.c.bc @@ -381,4 +381,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_simple_1.c.bc b/test_cases_bc/mta/succ_cxt_simple_1.c.bc index 04546e2f..112d6a4e 100644 --- a/test_cases_bc/mta/succ_cxt_simple_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_simple_1.c.bc @@ -223,4 +223,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_simple_2.c.bc b/test_cases_bc/mta/succ_cxt_simple_2.c.bc index 4a298ed9..abd3d8b2 100644 --- a/test_cases_bc/mta/succ_cxt_simple_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_simple_2.c.bc @@ -261,4 +261,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_simple_3.c.bc b/test_cases_bc/mta/succ_cxt_simple_3.c.bc index b281de70..e593680c 100644 --- a/test_cases_bc/mta/succ_cxt_simple_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_simple_3.c.bc @@ -252,4 +252,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_synthesis_1.c.bc b/test_cases_bc/mta/succ_cxt_synthesis_1.c.bc index b3e76493..e5b5d5ca 100644 --- a/test_cases_bc/mta/succ_cxt_synthesis_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_synthesis_1.c.bc @@ -295,4 +295,4 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_thdindex_2.c.bc b/test_cases_bc/mta/succ_cxt_thdindex_2.c.bc index 3d4ce092..489fcd06 100644 --- a/test_cases_bc/mta/succ_cxt_thdindex_2.c.bc +++ b/test_cases_bc/mta/succ_cxt_thdindex_2.c.bc @@ -352,4 +352,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_thdindex_7.c.bc b/test_cases_bc/mta/succ_cxt_thdindex_7.c.bc index b74152e8..ee5629fc 100644 --- a/test_cases_bc/mta/succ_cxt_thdindex_7.c.bc +++ b/test_cases_bc/mta/succ_cxt_thdindex_7.c.bc @@ -298,4 +298,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_thdindex_8_1.c.bc b/test_cases_bc/mta/succ_cxt_thdindex_8_1.c.bc index 94ed6f1f..ceb4242e 100644 --- a/test_cases_bc/mta/succ_cxt_thdindex_8_1.c.bc +++ b/test_cases_bc/mta/succ_cxt_thdindex_8_1.c.bc @@ -299,4 +299,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_thdindex_8_3.c.bc b/test_cases_bc/mta/succ_cxt_thdindex_8_3.c.bc index 021e7809..f97cb6c5 100644 --- a/test_cases_bc/mta/succ_cxt_thdindex_8_3.c.bc +++ b/test_cases_bc/mta/succ_cxt_thdindex_8_3.c.bc @@ -299,4 +299,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/succ_cxt_thdindex_8_4.c.bc b/test_cases_bc/mta/succ_cxt_thdindex_8_4.c.bc index e41a6436..8c1baad0 100644 --- a/test_cases_bc/mta/succ_cxt_thdindex_8_4.c.bc +++ b/test_cases_bc/mta/succ_cxt_thdindex_8_4.c.bc @@ -302,4 +302,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/mta/unsound_cxt_loop_7.c.bc b/test_cases_bc/mta/unsound_cxt_loop_7.c.bc index a598c58e..9fd9b8f3 100644 --- a/test_cases_bc/mta/unsound_cxt_loop_7.c.bc +++ b/test_cases_bc/mta/unsound_cxt_loop_7.c.bc @@ -301,7 +301,7 @@ attributes #3 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} !8 = distinct !{!8, !7} diff --git a/test_cases_bc/mta/unsound_cxt_thdindex_6.c.bc b/test_cases_bc/mta/unsound_cxt_thdindex_6.c.bc index bf6b7e4c..6f18a338 100644 --- a/test_cases_bc/mta/unsound_cxt_thdindex_6.c.bc +++ b/test_cases_bc/mta/unsound_cxt_thdindex_6.c.bc @@ -299,4 +299,4 @@ attributes #5 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/objtype_tests/type-basic.c.bc b/test_cases_bc/objtype_tests/type-basic.c.bc index 138d31b0..9288158d 100644 --- a/test_cases_bc/objtype_tests/type-basic.c.bc +++ b/test_cases_bc/objtype_tests/type-basic.c.bc @@ -54,4 +54,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/objtype_tests/type-call.c.bc b/test_cases_bc/objtype_tests/type-call.c.bc index 3569b346..0c27c10f 100644 --- a/test_cases_bc/objtype_tests/type-call.c.bc +++ b/test_cases_bc/objtype_tests/type-call.c.bc @@ -64,4 +64,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/objtype_tests/type-copy.c.bc b/test_cases_bc/objtype_tests/type-copy.c.bc index 28049098..8dacda7c 100644 --- a/test_cases_bc/objtype_tests/type-copy.c.bc +++ b/test_cases_bc/objtype_tests/type-copy.c.bc @@ -57,4 +57,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/objtype_tests/type-ret.c.bc b/test_cases_bc/objtype_tests/type-ret.c.bc index 95ec8cec..a6212c1d 100644 --- a/test_cases_bc/objtype_tests/type-ret.c.bc +++ b/test_cases_bc/objtype_tests/type-ret.c.bc @@ -61,4 +61,4 @@ attributes #4 = { nounwind } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/objtype_tests/type-while.c.bc b/test_cases_bc/objtype_tests/type-while.c.bc index ea5239c9..733c8e94 100644 --- a/test_cases_bc/objtype_tests/type-while.c.bc +++ b/test_cases_bc/objtype_tests/type-while.c.bc @@ -74,6 +74,6 @@ attributes #2 = { nounwind allocsize(0) } !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} !6 = distinct !{!6, !7} !7 = !{!"llvm.loop.mustprogress"} diff --git a/test_cases_bc/path_tests/path1.c.bc b/test_cases_bc/path_tests/path1.c.bc index 97169943..aa7eba0a 100644 --- a/test_cases_bc/path_tests/path1.c.bc +++ b/test_cases_bc/path_tests/path1.c.bc @@ -205,4 +205,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path10.c.bc b/test_cases_bc/path_tests/path10.c.bc index fa04e12c..38f40baf 100644 --- a/test_cases_bc/path_tests/path10.c.bc +++ b/test_cases_bc/path_tests/path10.c.bc @@ -212,4 +212,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path11.c.bc b/test_cases_bc/path_tests/path11.c.bc index 2c1e3e99..a150699b 100644 --- a/test_cases_bc/path_tests/path11.c.bc +++ b/test_cases_bc/path_tests/path11.c.bc @@ -211,4 +211,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path12.c.bc b/test_cases_bc/path_tests/path12.c.bc index 01695766..1a990f13 100644 --- a/test_cases_bc/path_tests/path12.c.bc +++ b/test_cases_bc/path_tests/path12.c.bc @@ -206,4 +206,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path13.c.bc b/test_cases_bc/path_tests/path13.c.bc index 51530899..a4fb57e6 100644 --- a/test_cases_bc/path_tests/path13.c.bc +++ b/test_cases_bc/path_tests/path13.c.bc @@ -211,4 +211,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path14.c.bc b/test_cases_bc/path_tests/path14.c.bc index 3a9e9d41..6171100d 100644 --- a/test_cases_bc/path_tests/path14.c.bc +++ b/test_cases_bc/path_tests/path14.c.bc @@ -206,4 +206,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path15.c.bc b/test_cases_bc/path_tests/path15.c.bc index 77b93fd6..d0b15175 100644 --- a/test_cases_bc/path_tests/path15.c.bc +++ b/test_cases_bc/path_tests/path15.c.bc @@ -193,4 +193,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path16.c.bc b/test_cases_bc/path_tests/path16.c.bc index 4aaf16ab..afdc1504 100644 --- a/test_cases_bc/path_tests/path16.c.bc +++ b/test_cases_bc/path_tests/path16.c.bc @@ -208,4 +208,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path17.c.bc b/test_cases_bc/path_tests/path17.c.bc index d20cdd09..de70a137 100644 --- a/test_cases_bc/path_tests/path17.c.bc +++ b/test_cases_bc/path_tests/path17.c.bc @@ -217,4 +217,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path18.c.bc b/test_cases_bc/path_tests/path18.c.bc index 35c23709..99ef2e08 100644 --- a/test_cases_bc/path_tests/path18.c.bc +++ b/test_cases_bc/path_tests/path18.c.bc @@ -201,4 +201,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path19.c.bc b/test_cases_bc/path_tests/path19.c.bc index f0dc73d1..fcac7bff 100644 --- a/test_cases_bc/path_tests/path19.c.bc +++ b/test_cases_bc/path_tests/path19.c.bc @@ -214,4 +214,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path2.c.bc b/test_cases_bc/path_tests/path2.c.bc index 9739a34f..e07e8c52 100644 --- a/test_cases_bc/path_tests/path2.c.bc +++ b/test_cases_bc/path_tests/path2.c.bc @@ -203,4 +203,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path20.c.bc b/test_cases_bc/path_tests/path20.c.bc index bfe2b357..0902ad24 100644 --- a/test_cases_bc/path_tests/path20.c.bc +++ b/test_cases_bc/path_tests/path20.c.bc @@ -198,4 +198,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path21.c.bc b/test_cases_bc/path_tests/path21.c.bc index 898687dc..24f5068a 100644 --- a/test_cases_bc/path_tests/path21.c.bc +++ b/test_cases_bc/path_tests/path21.c.bc @@ -205,4 +205,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path22.c.bc b/test_cases_bc/path_tests/path22.c.bc index 9bc3ebf5..63c52bcb 100644 --- a/test_cases_bc/path_tests/path22.c.bc +++ b/test_cases_bc/path_tests/path22.c.bc @@ -218,4 +218,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path3.c.bc b/test_cases_bc/path_tests/path3.c.bc index 110410a8..79dcb0ce 100644 --- a/test_cases_bc/path_tests/path3.c.bc +++ b/test_cases_bc/path_tests/path3.c.bc @@ -201,4 +201,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path4.c.bc b/test_cases_bc/path_tests/path4.c.bc index 3b55dae5..13da4467 100644 --- a/test_cases_bc/path_tests/path4.c.bc +++ b/test_cases_bc/path_tests/path4.c.bc @@ -208,4 +208,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path5.c.bc b/test_cases_bc/path_tests/path5.c.bc index 0cc45d45..e5f38c55 100644 --- a/test_cases_bc/path_tests/path5.c.bc +++ b/test_cases_bc/path_tests/path5.c.bc @@ -207,4 +207,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path6.c.bc b/test_cases_bc/path_tests/path6.c.bc index 75860f83..6945184d 100644 --- a/test_cases_bc/path_tests/path6.c.bc +++ b/test_cases_bc/path_tests/path6.c.bc @@ -205,4 +205,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path7.c.bc b/test_cases_bc/path_tests/path7.c.bc index d7ff079d..d29a6e76 100644 --- a/test_cases_bc/path_tests/path7.c.bc +++ b/test_cases_bc/path_tests/path7.c.bc @@ -192,4 +192,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path8.c.bc b/test_cases_bc/path_tests/path8.c.bc index b6ce534f..aded4122 100644 --- a/test_cases_bc/path_tests/path8.c.bc +++ b/test_cases_bc/path_tests/path8.c.bc @@ -223,4 +223,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"} diff --git a/test_cases_bc/path_tests/path9.c.bc b/test_cases_bc/path_tests/path9.c.bc index 4428d6f9..8a06a3cd 100644 --- a/test_cases_bc/path_tests/path9.c.bc +++ b/test_cases_bc/path_tests/path9.c.bc @@ -206,4 +206,4 @@ attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 2} -!5 = !{!"clang version 16.0.0"} +!5 = !{!"clang version 16.0.4 (https://github.com/bjjwwang/LLVM-compile a0f79b14ca0360151ea799a9ad1d5932235bbee1)"}