一句话:通过真实程序基准与代码惯用法微基准,揭示健全静态数据竞争验证工具的能力、局限与不健全性。
本文追问面向真实 C 程序的健全静态数据竞争验证是否已无望。作者选取真实程序基准,提取构成验证障碍的编码惯用法,将其做成微基准并贡献给 SV-COMP。随后评估健全自动验证工具在惯用法与真实程序上的表现。结果:20 个惯用法中 8 个可被某工具验证;但 Goblint、Deagle 等领先工具存在显著不健全性。在资源限制下,7 个工具中 5 个对真实基准无结果,余下仅验证 18 个程序中的 2 个,其余崩溃或不确定。作者指出,当前验证器存在表层与根本障碍,这些是推进该领域的开放问题。
Sound static data race freedom verification has been a long-standing challenge in the field of programming languages. While actively researched a decade ago, most practical data race detection tools have since abandoned soundness. Is sound static race freedom verification for real-world C programs a lost cause? In this work, we investigate the obstacles to making significant progress in automated race freedom verification. We selected a benchmark suite of real-world programs and, as our primary contribution, extracted a set of coding idioms that represent fundamental barriers to verification. We expressed these idioms as micro-benchmarks and contributed them as evaluation tasks for the International Competition on Software Verification, SV-COMP. To understand the current state, we measure how sound automated verification tools competing in SV-COMP perform on these idioms and also when used out of the box on the real-world programs. For 8 of the 20 coding idioms, there does exist an automated race freedom verifier that can verify it; however, we also found significant unsoundness in leading verifiers, including Goblint and Deagle. Five of the seven tools failed to return any result on any real-world benchmarks under our chosen resource limitations, with the remaining two tools verifying race freedom for 2 of the 18 programs and crashing or returning inconclusive results on the others. We thus show that state-of-the-art verifiers have both superficial and fundamental barriers to correctly analyzing real-world programs. These barriers constitute the open problems that must be solved to make progress on automated static data race freedom verification.
@article{HolterSLV25,
title = {Sound Static Data Race Verification for C: Is the Race Lost?},
author = {Karoliine Holter and Simmo Saan and Patrick Lam and Vesal Vojdani},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {47},
number = {3},
year = {2025},
doi = {10.1145/3732933}
}