2016
DOI: 10.1145/2980983.2908081
|View full text |Cite
|
Sign up to set email alerts
|

Into the depths of C: elaborating the de facto standards

Abstract: C remains central to our computing infrastructure. It is notionally defined by ISO standards, but in reality the properties of C assumed by systems code and those implemented by compilers have diverged, both from the ISO standards and from each other, and none of these are clearly understood. We make two contributions to help improve this errorprone situation. First, we describe an in-depth analysis of the design space for the semantics of pointers and memory in C as it is used in practice. We articulate many … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
7
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
4
3
2

Relationship

1
8

Authors

Journals

citations
Cited by 18 publications
(7 citation statements)
references
References 40 publications
0
7
0
Order By: Relevance
“…Several research groups have conducted the detection of undefined behavior for C, including Wang et al [5], Memarian et al [27], Hathhorn et al [8], Ellison et al [28], Kang et al [29], Nagarakatte et al [30], Brown et al [31], and Chisnall et al [32]. We divide these works into two categories, one is based on static analysis and the other is based on semantics.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Several research groups have conducted the detection of undefined behavior for C, including Wang et al [5], Memarian et al [27], Hathhorn et al [8], Ellison et al [28], Kang et al [29], Nagarakatte et al [30], Brown et al [31], and Chisnall et al [32]. We divide these works into two categories, one is based on static analysis and the other is based on semantics.…”
Section: Related Workmentioning
confidence: 99%
“…Memarian et al [27] presents an in-depth analysis of the design space for the semantics of pointers and memory in C, and a formal semantics named Cerberus, which is used to capture the ISO text for these aspects as clearly as possible. The authors applied the analysis to a C dialect supported by some processors that implement unforgeable and bounds-checked C pointers.…”
Section: B Semantics Based Approachesmentioning
confidence: 99%
“…Not supported C idioms. MPX does not work correctly with several common C idioms (see Table 4), especially when narrowing of bounds is applied and applications deviate from the standard memory model [8,31]. First, flexible array fields with array size of one (e.g., arr [1]) as well as variable-sized arrays (e.g., arr[]) get incorrect bounds under Intel MPX, which leads to false positives.…”
Section: Applicationsmentioning
confidence: 99%
“…All this is a considerable body of material: our designspace analysis alone is an 80+ page document; we refer to the extensive supplementary material [32] for that and for our test suite, survey results, and experimental data. We summarise selected design-space analysis in §2, apply it in §3 and §4, and summarise aspects of Cerberus in §5.…”
Section: Problem 1: the De Facto Standards Vs The Iso Standardmentioning
confidence: 99%