English

C11Tester: A Race Detector for C/C++ Atomics Technical Report

Programming Languages 2021-02-26 v2

Abstract

Writing correct concurrent code that uses atomics under the C/C++ memory model is extremely difficult. We present C11Tester, a race detector for the C/C++ memory model that can explore executions in a larger fragment of the C/C++ memory model than previous race detector tools. Relative to previous work, C11Tester's larger fragment includes behaviors that are exhibited by ARM processors. C11Tester uses a new constraint-based algorithm to implement modification order that is optimized to allow C11Tester to make decisions in terms of application-visible behaviors. We evaluate C11Tester on several benchmark applications, and compare C11Tester's performance to both tsan11rec, the state of the art tool that controls scheduling for C/C++; and tsan11, the state of the art tool that does not control scheduling.

Cite

@article{arxiv.2102.07901,
  title  = {C11Tester: A Race Detector for C/C++ Atomics Technical Report},
  author = {Weiyu Luo and Brian Demsky},
  journal= {arXiv preprint arXiv:2102.07901},
  year   = {2021}
}

Comments

This is the technical report for the paper titled C11Tester: A Race Detector for C/C++ Atomics published at Architectural Support for Programming Languages and Operating Systems (ASPLOS 2021)

R2 v1 2026-06-23T23:11:39.797Z