Changes from CPAchecker 2.2 to CPAchecker 2.3 --------------------------------------------- * Java 17 or later is required now. * More precise heap encoding in predicate analysis. The predicate analysis now optionally supports sound modeling of aliasing with char pointers as well as functions like memset/memcmp. So far this is not turned on by default yet, but can be enabled with `cpa.predicate.enableMemoryAssignmentFunctions = true` and `cpa.predicate.useByteArrayForHeap = true`. * New analysis for memory safety based on memory graphs. Because the existing analysis for this has some hard-to-fix problems, a new analysis has been added that can be used with `-smg2`. * New termination analysis. In addition to the existing LassoRanker-based analysis CPAchecker now has an analysis for termination that is based on transforming the property to a safety property. This analysis can be used with `-predicateAnalysis--termination`. - New YAML-based witness format. CPAchecker now supports [version 2.0 of the witness format](https://gitlab.com/sosy-lab/benchmarking/sv-witnesses/-/blob/main/doc/README-YAML.md) (both as output and input). - More functions from standard library supported. We have continued to extend our support for extern standard functions and now for example have support for standard `fscanf` uses.