Skip to main content

Trabalho em anais de eventoOpen Access

SMT-Based Refutation of Spurious Bug Reports in the Clang Static Analyzer

GADELHA, M. Y. R.; STEFFINLONGO, E.; CORDEIRO, L. C.; FISCHER, BERND; NICOLE, D

2019 • 41st ACM/IEEE International Conference on Software Engineering • 22 citações

Resumo

Resumo

We describe and evaluate a bug refutation extension for the Clang Static Analyzer (CSA) that addresses the limitations of the existing built-in constraint solver. In particular, we complement CSA's current heuristics for removing spurious bug reports. We encode the path constraints produced by CSA as Satisfiability Modulo Theories (SMT) problems, use SMT solvers to precisely check them for satisfiability, and remove bug reports whose associated path constraints are unsatisfiable. Our refutation extension refutes spurious bug reports in 8 out of 12 widely used open-source applications; on average, it refutes ca. 7% of all bug reports, and never refutes any true bug report. It incurs only negligible performance overheads, and on average adds 1.2% to the runtime of the full Clang/LLVM toolchain. A demonstration is available at https://www.youtube.com/watch?v=ylW5iRYNsGA.

palavras-chave

Palavras-chave

satisfiability modulo theoriespath constraintsconstraint solvingstatic analysisfalse positivesSMT solvers

Status

Published

links

Trabalho em anais de evento