This is a major release:
- Significant refactoring of SVF code to decouple SVF from LLVM
- New features for abstract execution
- Build system upgrade
- NPM upgrade
- Many other bug fixing and improvement
What's Changed
- update Dockerfile: lldb -> gdb by @jumormt in #1471
- 16.0.0->16.0.4 by @jumormt in #1472
- fix Dockerfile to support both x86 and arm64 by @bjjwwang in #1474
- Fix namespace by @Kaiqi-Liang in #1476
- remove const reference when iterating a range by @jumormt in #1477
- fixed an SFR bug by @kisslune in #1479
- add LF check by @jumormt in #1480
- Fix issue of global representation by @LeoneChen in #1484
- fix #1490 Successors of BranchStmt are llvm intrinsic instructions by @yuleisui in #1492
- fix issue 1493 by @junmeiRong in #1494
- fix "int a[2] = {2, 2};" case by @bjjwwang in #1500
- Fix bit wise operator for bounded double by @jumormt in #1508
- Refactor IntervalValue by @bjjwwang in #1510
- Try to call compiler built-in functions in
countTrailingZeros
by @cubicYYY in #1512 - upgrade codecov version by @JasonZhongZexin in #1515
- fix obj type inference for c++ indirect call in constructors by @jumormt in #1514
- Fix handling of llvm intrinsic instruction PCG.cpp by @JoelYYoung in #1517
- fixed enum types of GenericBug implementations by @mxHuber in #1521
- Stage1 : move Ass3 to SVF by @bjjwwang in #1519
- step1: remove preAbstrace and use use a temporary state to collect st… by @jumormt in #1523
- rename PTACallGraph->CallGraph by @yuleisui in #1526
- Refactor SVFInstruction in MTA by @yuleisui in #1527
- refactor SVFInstruction stage 5 by @yuleisui in #1528
- Stage2 : refactor buffer overflow by @bjjwwang in #1531
- add icfgnodelist field in basic block by @jumormt in #1529
- Refactoring SVFInstruction: stage 6 by @yuleisui in #1532
- Refactoring SVFInstruction: stage 7 by @yuleisui in #1534
- refactor extAPIMap by @bjjwwang in #1533
- Remove CallSite : stage 1 by @yuleisui in #1535
- Remove getCallee in AE by @yuleisui in #1537
- stage 3: fix svf_assert, and make test cases more robust by @bjjwwang in #1542
- remove svfinstruction in isheapalloc by @jumormt in #1538
- refactor AE, make new module of extapi handler by @bjjwwang in #1545
- fix for assignment by @bjjwwang in #1546
- fix cdg null deref by @jumormt in #1551
- Refactor pta by @JoelYYoung in #1552
- Remove SVFInstruction to node maps in ICFG by @jumormt in #1547
- remove inst in intranode && remove some getCallsite by @jumormt in #1556
- remove a redundant statement in setup.sh by @Rexxar-Jack-Remar in #1559
- remove virtual by @jumormt in #1561
- add frontendValueToString by @jumormt in #1562
- remove callsite in icfgnode by @jumormt in #1563
- move icfg building to llvmmodule by @jumormt in #1566
- Callgraph by @Geoffrey1014 in #1570
- change condition value to svfvar in intracfgedge by @jumormt in #1572
- rename CallGraph to PTACallGraph by @Geoffrey1014 in #1579
- Create callgraph by @Geoffrey1014 in #1580
- fix CallCHI doc by @tttturtle-russ in #1593
- fix npd issue#1591 by @jumormt in #1594
- remove casting to intraicfgnode when allocating branch condition by @jumormt in #1595
- add funcvar by @jumormt in #1598
- fix using getvalue when dumping constraintgraph by @jumormt in #1601
- remove SVFFunction in AbstractInterpretation.h by @Geoffrey1014 in #1604
- refactor icfgbuilder by @jumormt in #1605
- add heap and stack obj var and fix CI by @jumormt in #1608
- add value back for heap/stack/fun by @jumormt in #1611
- 12.19fix by @jumormt in #1614
- Add "ALLOC_STACK_RET" annotation in extapi.c by @shuangxiangkan in #1616
- use ubuntu latest by @jumormt in #1615
- add process unreachable bbs by @jumormt in #1619
- refactor Global/Constant Val/Obj by @bjjwwang in #1621
- fix a bug of int128 by @bjjwwang in #1624
- remove svfvalue in pagedge and svfg by @jumormt in #1625
- add argvalvar by @jumormt in #1626
- change position of param to make it more logical by @jumormt in #1627
- remove MemObj in SVFIR by @bjjwwang in #1631
- remove gnode in base object by @jumormt in #1633
- remove some getvalue/hasvalue by @jumormt in #1635
- remove SVFFileSystem by @bjjwwang in #1638
- remove value in svfvar by @jumormt in #1636
- add SVFBasicBlock. BasicBlockEdge, Graph by @bjjwwang in #1639
- remove some svfvalue in svfcore by @jumormt in #1641
- move symboltableinfo to irgraph by @jumormt in #1642
- move svfvalue in irgraph to llvmmodule by @jumormt in #1643
- svfargument->argvalvar by @jumormt in #1644
- fix incorrect implementation of getting CallGraphSCCRevTopoOrder by @canliture in #1640
- simplify PR 1640 by @bjjwwang in #1645
- remove callgraph by @jumormt in #1647
- rename ptacallgraph to callgraph by @jumormt in #1648
- svffunction -> funobjvar by @jumormt in #1649
- remove svfmodule and value in svfcore by @jumormt in #1651
- 2.11.2 by @jumormt in #1654
- remove svfconstantint,fp,null by @jumormt in #1655
- fix build.sh to support shared lib and llvm RTTI by @bjjwwang in #1656
- remove svfconstant and svfcall by @jumormt in #1659
- refactor valueonlytostring by @jumormt in #1660
- fix getbasevalueforextarg by @jumormt in #1652
- Prebuilt LLVM16 RTTI, and SVF-Lib NPM Publish shared lib by @bjjwwang in #1663
- fix llvm download path by @bjjwwang in #1665
- remove svfinstruction by @jumormt in #1666
- Fix Arm64 toolkit by @bjjwwang in #1667
- fix indentation by @bjjwwang in #1669
- fix bugs in git push from CI by @bjjwwang in #1670
- make SVFLLVM.so link standalone libLLVM.so by @bjjwwang in #1672
- remove svffunction by @jumormt in #1671
- add param types in svffuntype by @jumormt in #1673
- make modelConst modelArray and UsePreCompFieldSensitive to be non-const by @bjjwwang in #1676
- refactor: change the value type in FunToExitBBMap from svfbb to bb to simplify code by @jumormt in #1677
- Speedup verifier by @Frankenween in #1675
- add isVarArg function type by @jumormt in #1683
- 3.30fix by @jumormt in #1684
- Expose version info to parent CMake project by @adriaanjacobs in #1686
- Recursion impl by @bjjwwang in #1694
- Remove "ALLOC_STACK_RET" from external APIs returning static objects. by @shuangxiangkan in #1696
- Set BlackHole and ConstObj field-insensitive by @yuleisui in #1698
- refine NumOfElem in BlackHoleObj and FunObj by @bjjwwang in #1699
- nullptr dereference by @MingxiuWang in #1687
- fix comments by @bjjwwang in #1700
- add comments by @bjjwwang in #1701
- CI, Formatting, API & SVFG Builder Improvements by @Johanmyst in #1702
- remove header files in options.h by @bjjwwang in #1707
- more precise struct type modeling by @jumormt in #1706
- Various build system fixes and improvements by @Johanmyst in #1703
- fix svf npm by @bjjwwang in #1709
- fix svf npm by @bjjwwang in #1710
- fix svf npm by @bjjwwang in #1711
- fix install path by @bjjwwang in #1712
- Changed types of SVF install prefix configuration parameters to STRING to avoid absolute path prefixes by @Johanmyst in #1713
- remove Release-build from SVF-npm install dir by @bjjwwang in #1714
- Default Off RTTI and Exception, Sync build dir with install dir by @bjjwwang in #1716
- set RTTI and Exceptions default ON by @bjjwwang in #1717
- resume SVF_LLVM_INCLUDE_PATH by @bjjwwang in #1718
- fix extapi finding by @bjjwwang in #1719
- fix ExtAPI by @bjjwwang in #1720
- fix some coding minor bugs by @bjjwwang in #1722
New Contributors
- @Kaiqi-Liang made their first contribution in #1476
- @LeoneChen made their first contribution in #1484
- @junmeiRong made their first contribution in #1494
- @cubicYYY made their first contribution in #1512
- @mxHuber made their first contribution in #1521
- @Rexxar-Jack-Remar made their first contribution in #1559
- @Geoffrey1014 made their first contribution in #1570
- @tttturtle-russ made their first contribution in #1593
- @Frankenween made their first contribution in #1675
- @MingxiuWang made their first contribution in #1687
Full Changelog: SVF-3.0...SVF-3.1