Proceedings of the 25th International Symposium on Software Testing and Analysis 2016
DOI: 10.1145/2931037.2931074
|View full text |Cite
|
Sign up to set email alerts
|

Toward understanding compiler bugs in GCC and LLVM

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

2
39
0
1

Year Published

2017
2017
2022
2022

Publication Types

Select...
4
4
1

Relationship

1
8

Authors

Journals

citations
Cited by 92 publications
(42 citation statements)
references
References 29 publications
2
39
0
1
Order By: Relevance
“…Understanding Compiler Bugs. A recent empirical study provides an in-depth analysis of bugs in the GCC and LLVM compilers [Sun et al 2016b], focusing on aspects such as the distribution of bugs across compiler components, the sizes of triggering test cases associated with bug reports, the lifetime of bug reports from filing to closing, and the developer-assigned priority levels for bugs and how these correlate to compiler components. The study is complementary to ours: beyond a discussion of bug priorities, it is not concerned with the extent to which compiler bugs affect realworld applications, and it does not focus on whether the bugs under analysis are miscompilations, nor whether the bugs were found in the wild or via automated tools such as fuzzers.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Understanding Compiler Bugs. A recent empirical study provides an in-depth analysis of bugs in the GCC and LLVM compilers [Sun et al 2016b], focusing on aspects such as the distribution of bugs across compiler components, the sizes of triggering test cases associated with bug reports, the lifetime of bug reports from filing to closing, and the developer-assigned priority levels for bugs and how these correlate to compiler components. The study is complementary to ours: beyond a discussion of bug priorities, it is not concerned with the extent to which compiler bugs affect realworld applications, and it does not focus on whether the bugs under analysis are miscompilations, nor whether the bugs were found in the wild or via automated tools such as fuzzers.…”
Section: Related Workmentioning
confidence: 99%
“…29 Automated Compiler Testing. The idea of randomly generating or mutating programs to induce errors in production compilers and interpreters has a long history, with grammar-or mutationbased fuzzers having been designed to test implementations of languages such as COBOL [Sauder 1962], PL/I [Hanford 1970], FORTRAN [Burgess and Saidi 1996], Ada and Pascal [Wichmann 1998], and more recently C [Le et al 2014[Le et al , 2015aNagai et al 2014;Nakamura and Ishiura 2016;Sun et al 2016a;Yang et al 2011;Yarpgen 2018], JavaScript and PHP [Holler et al 2012], Java byte-code [Chen et al 2016], OpenCL [Lidbury et al 2015], GLSL [Donaldson et al 2017;Donaldson and Lascu 2016] and C++ [Sun et al 2016b] (see also two surveys on the topic [Boujarwah and Saleh 1997;Kossatchev and Posypkin 2005]). Related approaches have been used to test other programming language processors, such as static analysers , refactoring engines [Daniel et al 2007], and symbolic executors [Kapus and Cadar 2017].…”
Section: Related Workmentioning
confidence: 99%
“…For example, for GCC in Table 10, four of ten are tree-optimization-related files, and we can find that a large number of GCC bugs occurring at tree optimization parts from GCC Bugzilla 11 . Similarly, for LLVM in Table 11, "X86ISelLowering.cpp" and "SemaExprCXX.cpp" are reported as the two of top-10 files containing the largest number of bugs [34]. The highly accurate prediction for such files facilitates to separate test programs triggering more different bugs into different groups, so that COP accelerates compiler testing to a larger extent.…”
Section: Why Cop Workmentioning
confidence: 99%
“…Without anyways for solving this problemdevelopers have to make «The assumption of the correctness of the compiler». According to a study [4] conducted in 2016, the total number of bugs found in GCC+LLVM are more than 50000. This is one of the main reasons why this assumption may not be sufficient for critical systems.…”
Section: Introductionmentioning
confidence: 99%