Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation 2012
DOI: 10.1145/2254064.2254104
|View full text |Cite
|
Sign up to set email alerts
|

Test-case reduction for C compiler bugs

Abstract: To report a compiler bug, one must often find a small test case that triggers the bug. The existing approach to automated test-case reduction, delta debugging, works by removing substrings of the original input; the result is a concatenation of substrings that delta cannot remove. We have found this approach less than ideal for reducing C programs because it typically yields test cases that are too large or even invalid (relying on undefined behavior). To obtain small and valid test cases consistently, we desi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
35
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
4
4
1

Relationship

0
9

Authors

Journals

citations
Cited by 198 publications
(35 citation statements)
references
References 15 publications
0
35
0
Order By: Relevance
“…Our approach combines the speed of delta debugging with the power of QuickCheck to randomly discover structurally smaller counterexamples. The idea of randomization in test-case reduction was independently developed at approximately the same time as SmartCheck and first published in the domain of reducing C programs that demonstrate compiler bugs [17]. We believe our work is the first to explore the idea of counterexample generalization.…”
Section: Related Workmentioning
confidence: 95%
“…Our approach combines the speed of delta debugging with the power of QuickCheck to randomly discover structurally smaller counterexamples. The idea of randomization in test-case reduction was independently developed at approximately the same time as SmartCheck and first published in the domain of reducing C programs that demonstrate compiler bugs [17]. We believe our work is the first to explore the idea of counterexample generalization.…”
Section: Related Workmentioning
confidence: 95%
“…At a high-level, delta-debugging works by gradually reducing the input program and ensuring that the reduced program still triggers the bug and is valid (i.e., does not contain undefined behavior). State-of-the art delta-debugging reducers include Berkeley Delta [13] and C-Reduce [19]. Unfortunately, these reducers support reducing only a single file.…”
Section: Bug Reductionmentioning
confidence: 99%
“…CCG is a random C program generator that focuses on finding compiler crashing bugs [3]. Csmith is another C program generator that can find both crashing and miscompilation bugs [4,19,25]. Based on the idea of differential testing [12], Csmith randomly generates C programs and checks for deviant behavior across compilers or compiler versions.…”
Section: Related Workmentioning
confidence: 99%
“…Regehr et al [13] have suggested to generalize test-case minimization problem as a generic search problem which can be tuned with various fitness functions. They have introduced three new reducers and applied their framework for the reduction of C compiler bugs.…”
Section: Related Workmentioning
confidence: 99%