Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation 2016
DOI: 10.1145/2908080.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 s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
55
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
5
4

Relationship

1
8

Authors

Journals

citations
Cited by 62 publications
(57 citation statements)
references
References 40 publications
0
55
0
Order By: Relevance
“…For example, there is no tracking of pointer provenance [12]. Furthermore, the prototype implements some common "sloppy" [20] and "de facto" [26] extensions, such as (T *) to/from (void *) coercions. The final limitation relates to sub-object matching.…”
Section: Methodsmentioning
confidence: 99%
See 1 more Smart Citation
“…For example, there is no tracking of pointer provenance [12]. Furthermore, the prototype implements some common "sloppy" [20] and "de facto" [26] extensions, such as (T *) to/from (void *) coercions. The final limitation relates to sub-object matching.…”
Section: Methodsmentioning
confidence: 99%
“…Structure types with flexible array members; and 2. Automatic coercions between types allowable under the C, "sloppy" [20] or "de facto" [26] standards. .…”
Section: Dynamic Type Check Runtimementioning
confidence: 99%
“…The most frequently recurring problem is that sanitizers often implement a bug finding policy or mechanism which is stricter than either the language standard or the de facto standard. The de facto standard includes widely-followed programming practices that do not necessarily comply with the language standard, even though they result in bug-free code [94]. One could therefore argue that reporting behavior that does not comply with the de facto standard as a bug constitutes a false positive detection.…”
Section: A False Positivesmentioning
confidence: 99%
“…Our results are expected to help tool developers in prioritizing implementation effort, maintenance, and optimization of builtins. Thus, this study facilitates the development of compilers such as GCC, Clang [24], ICC, and the formally verified CompCert compiler [25,26]; of static-analysis tools such as the Clang Static Analyzer [66], splint [14,15], Frama-C [65], and uno [17]; of semantic models for C [23,31]; and of alternative execution environments and bug-finding tools such as KLEE [3], Sulong [52,56], the LLVM sanitizers [58,59], and SoftBound [36,37]. For reproducibility and verifiability, we provide the database with GCC builtin usage, test suite, tools used for the analysis, and a record of the manual decisions on https:// github.com/ jku-ssw/ gcc-builtin-study.…”
Section: Introductionmentioning
confidence: 99%