Key points are not available for this paper at this time.
Abstract The C programming language offers as a mechanism for nonlocal control flow. This mechanism has complicated semantics. As most developers do not encounter it day-to-day, they may be unfamiliar with all its intricacies – leading to subtle programming errors. At the same time, most static analyzers lack proper support, implying that otherwise sound tools miss whole classes of program deficiencies. We propose a concrete semantics of a subset of C with , where interprocedural s are performed directly, as well as an equivalent formulation where such jumps are implemented via stack-unwinding at the call-sites. Reflecting this semantic equivalence, we propose an approach for lifting existing interprocedural analyses to support and to flag their misuse. To deal with the nonlocal semantics, our approach leverages side-effecting transfer functions, which, when executed, may additionally trigger contributions for program points that are not static control-flow successors. We showcase our analysis on a real-world example and propose a set of litmus tests for other analyzers.
Building similarity graph...
Analyzing shared references across papers
Loading...
Julian Erhard
Michael Schwarz
Vesal Vojdani
International Journal on Software Tools for Technology Transfer
Technical University of Munich
University of Tartu
Building similarity graph...
Analyzing shared references across papers
Loading...
Erhard et al. (Thu,) studied this question.
www.synapsesocial.com/papers/68e5a5f5b6db643587540600 — DOI: https://doi.org/10.1007/s10009-024-00764-z
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: