2012
DOI: 10.1145/2345156.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...
1
1
1
1

Citation Types

0
112
0
1

Year Published

2014
2014
2022
2022

Publication Types

Select...
4
2
1

Relationship

1
6

Authors

Journals

citations
Cited by 102 publications
(113 citation statements)
references
References 16 publications
0
112
0
1
Order By: Relevance
“…Our approach takes advantage of the recent work on testing compilers [22], [23], [34], especially the work of Regehr et al on program generation [34] and reduction [27]. Combined with our technique for generating program variants in three different modes and a set of appropriate oracles, we show that these techniques are effective at finding bugs in symbolic execution engines.…”
Section: Related Workmentioning
confidence: 94%
See 3 more Smart Citations
“…Our approach takes advantage of the recent work on testing compilers [22], [23], [34], especially the work of Regehr et al on program generation [34] and reduction [27]. Combined with our technique for generating program variants in three different modes and a set of appropriate oracles, we show that these techniques are effective at finding bugs in symbolic execution engines.…”
Section: Related Workmentioning
confidence: 94%
“…These different versions are run and crosschecked using our four oracle types: crash detection, and output, function calls and coverage comparison (Employ oracles). Any programs exposing mismatches (as flagged by our oracles) between the native and symbolic execution runs (Gather mismatches) are then reduced using the C-Reduce tool [27] (Reduce programs) and reported to developers.…”
Section: Testing Approachmentioning
confidence: 99%
See 2 more Smart Citations
“…Delta [34] uses a separate tool to flatten tree structures found in programs before applying delta debugging. Regehr et al [39] exploit the syntax and semantics of C for four delta-debugging based algorithms to minimize C programs that trigger compiler bugs.…”
Section: Rq3: Observational Sensitivity To Inadequate Testingmentioning
confidence: 99%