GoannaSMT — a static analyzer with SMT-based refinement

We present an industrial strength static analysis tool for automated bug detection in C/C++ source code called GoannaSMT. The underlying technology of GoannaSMT is an automata-based approach to static analysis, where high-level syntactic source code abstractions are subjected to a custom-built explicit state model checker. Resulting error traces are then subjected to an SMT solver in a path-refinement loop for closer inspection of their feasibility. As a result GoannaSMT is highly precise while at the same time scaling to millions of lines of code. We present the core technology, architecture, and experiences.