BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend
The compiler serves as a bridge connecting hardware architecture and application software, converting source code into executable files and optimizing code. Fuzz testing is an automated testing technology that evaluates software reliability by providing a large amount of random or mutated input data...
Saved in:
| Main Authors: | , , , |
|---|---|
| Format: | Article |
| Language: | English |
| Published: |
MDPI AG
2025-05-01
|
| Series: | Applied Sciences |
| Subjects: | |
| Online Access: | https://www.mdpi.com/2076-3417/15/11/5935 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| _version_ | 1850160482536652800 |
|---|---|
| author | Hui Liu Hanbin Guo Peng Liu Tongding Hou |
| author_facet | Hui Liu Hanbin Guo Peng Liu Tongding Hou |
| author_sort | Hui Liu |
| collection | DOAJ |
| description | The compiler serves as a bridge connecting hardware architecture and application software, converting source code into executable files and optimizing code. Fuzz testing is an automated testing technology that evaluates software reliability by providing a large amount of random or mutated input data to the target system to trigger abnormal program behavior. When existing fuzz testing methods are applied to compiler testing, although they can detect common errors like lexical and syntax errors, there are issues such as insufficient pertinence in constructing the input corpus, limited support for structured Intermediate Representation (IR) node manipulation, and limited perfection of the mutation strategy. This study proposes a deep fuzz testing framework named BoostPolyGlot for GCC compiler frontend IR generation, which effectively covers the code-execution paths and improves the code-coverage rate through constructing an input corpus, employing translation by a master–slave IR translator, conducting operations on structured program characteristic IR nodes, and implementing an IR mutation strategy with dynamic weight adjustment. This study evaluates the fuzz testing capabilities of BoostPolyGlot based on dependency relationships, loop structures, and their synergistic effect. The experimental outcomes confirm that, when measured against five crucial performance indicators including total paths, count coverage, favored paths rate, new edges on rate, and level, BoostPolyGlot demonstrated statistically significant improvements compared with American Fuzzy Lop (AFL) and PolyGlot. These findings validate the effectiveness and practicality of the proposed framework. |
| format | Article |
| id | doaj-art-756c17cbec534698857c2acd080ef87e |
| institution | OA Journals |
| issn | 2076-3417 |
| language | English |
| publishDate | 2025-05-01 |
| publisher | MDPI AG |
| record_format | Article |
| series | Applied Sciences |
| spelling | doaj-art-756c17cbec534698857c2acd080ef87e2025-08-20T02:23:08ZengMDPI AGApplied Sciences2076-34172025-05-011511593510.3390/app15115935BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler FrontendHui Liu0Hanbin Guo1Peng Liu2Tongding Hou3School of Computer and Information Engineering, Henan Normal University, Xinxiang 453007, ChinaSchool of Computer and Information Engineering, Henan Normal University, Xinxiang 453007, ChinaPurple Mountain Laboratories, Nanjing 211111, ChinaSchool of Computer and Information Engineering, Henan Normal University, Xinxiang 453007, ChinaThe compiler serves as a bridge connecting hardware architecture and application software, converting source code into executable files and optimizing code. Fuzz testing is an automated testing technology that evaluates software reliability by providing a large amount of random or mutated input data to the target system to trigger abnormal program behavior. When existing fuzz testing methods are applied to compiler testing, although they can detect common errors like lexical and syntax errors, there are issues such as insufficient pertinence in constructing the input corpus, limited support for structured Intermediate Representation (IR) node manipulation, and limited perfection of the mutation strategy. This study proposes a deep fuzz testing framework named BoostPolyGlot for GCC compiler frontend IR generation, which effectively covers the code-execution paths and improves the code-coverage rate through constructing an input corpus, employing translation by a master–slave IR translator, conducting operations on structured program characteristic IR nodes, and implementing an IR mutation strategy with dynamic weight adjustment. This study evaluates the fuzz testing capabilities of BoostPolyGlot based on dependency relationships, loop structures, and their synergistic effect. The experimental outcomes confirm that, when measured against five crucial performance indicators including total paths, count coverage, favored paths rate, new edges on rate, and level, BoostPolyGlot demonstrated statistically significant improvements compared with American Fuzzy Lop (AFL) and PolyGlot. These findings validate the effectiveness and practicality of the proposed framework.https://www.mdpi.com/2076-3417/15/11/5935fuzz testingIR generationdependency relationshiploop structureIR mutation strategy |
| spellingShingle | Hui Liu Hanbin Guo Peng Liu Tongding Hou BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend Applied Sciences fuzz testing IR generation dependency relationship loop structure IR mutation strategy |
| title | BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend |
| title_full | BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend |
| title_fullStr | BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend |
| title_full_unstemmed | BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend |
| title_short | BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend |
| title_sort | boostpolyglot a structured ir generation based fuzz testing framework for gcc compiler frontend |
| topic | fuzz testing IR generation dependency relationship loop structure IR mutation strategy |
| url | https://www.mdpi.com/2076-3417/15/11/5935 |
| work_keys_str_mv | AT huiliu boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend AT hanbinguo boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend AT pengliu boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend AT tongdinghou boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend |