New Features
- Add format check for command-line arguments.
- Add performance monitoring (CPU and memory usage) functionality to
Monitor. - Pointer analysis
- Add special handling for zero-length arrays to enhance PTA precision.
- Add may-alias-pair client to count may-alias variable pairs.
- Model
Arrays.copyOffor non-functional arrays for soundness. - Model
jdk.internal.misc.Unsafeto obtain sound results forConcurrentHashMap. - Improve the performance of
Obj.getType()by cachingObj's type.
- Side-effect analysis
- Improve
SideEffectAnalysisprecision using context-sensitive information and more efficient algorithms.
- Improve
- Class hierarchy analysis (CHA)
- Improve
CHABuilderprecision via resolving callees using the type of the receiver variable.
- Improve
Fixes
- Fix NPE in Zipper-e pre-analysis.
- Fix the behavior of
UnionFindSet.setCount()when used concurrently. - Fix the k-value setup for the CustomEntryPoint testcase.
- Fix
ReflectionAnalysisplugin to enableAnnotationModelonly for Java 5+. - Fix static fields handling in
UnsafeModelto prevent invalid instance field access. - Fix the missing
STATICmodifier of static phantom fields inClassHierarchyImpl. - Fix NPE in Exception Analysis.
- Fix
SideEffectAnalysisincorrect behavior whenonly-appis false. - Fix Mahjong's
FieldPointsToGraphby handling non-functionalMockObjinPointerAnalysisResultImpl. - Fix the detection of jar files in
BenchmarkRunner. - Fix
CHABuildermethod resolution for static and special methods. - Fix shadowed instance fields in dumped points-to set.
- Fix missing edges when converting context-sensitive call graph to context-insensitive call graph.
- Escape special characters in
StringLiteral.
Contributors
We would like to thank the following community members for their contributions to this release: cs-cat, Jinpeng Wang, FoggyDawn, Zhenyu Yan, RacerZ, Chenxi Li, Teng Zhang, Zhiwei Zhang.