Published March 16, 2026 | Version v1

Verification Blind Spots: When Branchless Code Defeats Static Analysis

Authors/Creators

Description

We identify and characterize a class of verification blind spots in AST-pattern-based static analysis tools: safety-critical constraints that become invisible when program semantics shift from control flow to arithmetic. Using three benchmark programs that encode division-by-zero protection, forbidden-value filtering, and bounded state cycling without any conditional branching, we demonstrate that a representative constraint scanner -- which successfully detects all three constraints in their branched equivalents -- finds zero constraints in the branchless forms. Z3 SMT proofs confirm mathematical equivalence between each branchless program and its branched counterpart, establishing that the constraints are preserved in the code's semantics but lost in the tool's detection model. We formalize the control-flow assumption, present a taxonomy of constraint survivability, survey five widely-used tools that share the blind spot, and demonstrate a dual-sort AST-to-Z3 conversion technique that recovers full constraint visibility.

Files

verification-blind-spots.pdf

Files (119.8 kB)

Name Size Download all
md5:c73b816de1fbbfb20f7d67ee306199b2
119.8 kB Preview Download