IEEE Access (Jan 2019)

Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns

  • Honglei Zhu,
  • Dahai Jin,
  • Yunzhan Gong,
  • Ying Xing,
  • Mingnan Zhou

DOI
https://doi.org/10.1109/ACCESS.2019.2894593
Journal volume & issue
Vol. 7
pp. 15040 – 15055

Abstract

Read online

The static analysis plays an important role in many software engineering activities. However, the existence of infeasible paths, which causes lower program test coverage and several false positives in the results of the static analysis, has become one of the biggest challenges for the static analysis. In this paper, based on unsatisfiable path constraint patterns, we present a new approach to detect interprocedural infeasible paths. In our approach, we first discover nine unsatisfiable path constraint patterns by mining the common path constraint features of a large number of infeasible paths. Then, we detect the interprocedural infeasible paths; a detected path is deemed to be an interprocedural infeasible path if its simplified constraint conditions match one of the nine unsatisfiable path constraint patterns. To illustrate and verify the approach, an experimental study is performed on five open source C projects. The results show that compared with the existing approach, our approach requires less time on average and detects more interprocedural infeasible paths among the given paths.

Keywords