This paper proposes a model for detecting dependence on the evaluation order of subexpressions in C programs. The model represents the C11 sequenced-before relation as a hierarchical structure that enables efficient dynamic search for unsequenced and indeterminately-sequenced modifications at run time. A software implementation of the model as a sanitizer for GCC fired on 139 of 4526 Alpine Linux 3.23 packages, mostly flagging indeterminately-sequenced evaluations.





