{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,11]],"date-time":"2026-04-11T02:12:59Z","timestamp":1775873579694,"version":"3.50.1"},"reference-count":35,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2024,10,8]],"date-time":"2024-10-08T00:00:00Z","timestamp":1728345600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2024,10,8]]},"abstract":"<jats:p>\n                    Compilers are at the core of all computer architecture. Their middle-end and back-end are full of subtle code that is easy to get wrong. At the same time, the consequences of compiler bugs can be severe. Therefore, it is important that we develop techniques to increase our confidence in compiler correctness, and to help find the bugs that inevitably happen. One promising such technique that has successfully found many compiler bugs in the past is\n                    <jats:italic toggle=\"yes\">randomized differential testing<\/jats:italic>\n                    , a fuzzing approach whereby the same program is executed with different compilers or different compiler settings to detect any unexpected differences in behavior.\n                  <\/jats:p>\n                  <jats:p>\n                    We present\n                    <jats:italic toggle=\"yes\">Rustlantis<\/jats:italic>\n                    , the first fuzzer for the Rust programming language that is able to find new correctness bugs in the official Rust compiler. To avoid having to deal with Rust\u2019s strict type and borrow checker, Rustlantis directly generates MIR, the central IR of the Rust compiler for optimizations. The program generation strategy of Rustlantis is a combination of statically tracking the state of the program, obscuring the program state for the compiler, and\n                    <jats:italic toggle=\"yes\">decoy blocks<\/jats:italic>\n                    to lead optimizations astray. This has allowed us to identify 22 previously unknown bugs in the Rust compiler, most of which have been fixed.\n                  <\/jats:p>","DOI":"10.1145\/3689780","type":"journal-article","created":{"date-parts":[[2024,10,8]],"date-time":"2024-10-08T03:23:04Z","timestamp":1728357784000},"page":"1955-1981","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["Rustlantis: Randomized Differential Testing of the Rust Compiler"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0009-0006-0779-8651","authenticated-orcid":false,"given":"Qian","family":"Wang","sequence":"first","affiliation":[{"name":"ETH Zurich, Z\u00fcrich, Switzerland"},{"name":"Imperial College London, London, United Kingdom"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7669-6348","authenticated-orcid":false,"given":"Ralf","family":"Jung","sequence":"additional","affiliation":[{"name":"ETH Zurich, Z\u00fcrich, Switzerland"}]}],"member":"320","published-online":{"date-parts":[[2024,10,8]]},"reference":[{"key":"e_1_3_1_2_2","unstructured":"Bytecode Alliance. 2018. Cranelift Code Generator. https:\/\/github.com\/bytecodealliance\/wasmtime\/tree\/main\/cranelift"},{"key":"e_1_3_1_3_2","unstructured":"Rust Fuzzing Authority. 2017. rust-fuzz. https:\/\/github.com\/rust-fuzz\/trophy-case"},{"key":"e_1_3_1_4_2","doi-asserted-by":"crossref","unstructured":"Marcel B\u00f6hme Laszlo Szekeres and Jonathan Metzman. 2022. On the Reliability of Coverage-Based Fuzzer Benchmarking. In Proceedings of the 44th International Conference on Software Engineering (ICSE\u201922). http:\/\/seclab.cs.stonybrook.edu\/lszekeres\/Papers\/ICSE22.pdf","DOI":"10.1145\/3510003.3510230"},{"issue":"1","key":"e_1_3_1_5_2","article-title":"A Survey of Compiler Testing","volume":"53","author":"Chen Junjie","year":"2020","unstructured":"Junjie Chen, Jibesh Patra, Michael Pradel, Yingfei Xiong, Hongyu Zhang, Dan Hao, and Lu Zhang. 2020. A Survey of Compiler Testing. ACM Comput. Surv. 53, 1, Article 4 (2 2020), 36 pages. https:\/\/doi.org\/10.1145\/3363562 10.1145\/3363562","journal-title":"ACM Comput. Surv."},{"key":"e_1_3_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213848"},{"key":"e_1_3_1_7_2","doi-asserted-by":"crossref","first-page":"482","DOI":"10.1109\/ASE.2015.65","article-title":"Fuzzing the Rust Typechecker Using CLP (T)","author":"Dewey Kyle","year":"2015","unstructured":"Kyle Dewey, Jared Roesch, and Ben Hardekopf. 2015. Fuzzing the Rust Typechecker Using CLP (T). In 2015 30th IEEE\/ACM International Conference on Automated Software Engineering (ASE). 482-493. https:\/\/doi.org\/10.1109\/ASE.2015.65 10.1109\/ASE.2015.65","journal-title":"2015 30th IEEE\/ACM International Conference on Automated Software Engineering (ASE)"},{"key":"e_1_3_1_8_2","first-page":"255","volume-title":"Proceedings of the 8th ACM & IEEE International conference on Embedded software, EMSOFT 2008, Atlanta, GA, USA, October 19-24, 2008","author":"Eide Eric","year":"2008","unstructured":"Eric Eide and John Regehr. 2008. Volatiles are miscompiled, and what to do about it. In Proceedings of the 8th ACM & IEEE International conference on Embedded software, EMSOFT 2008, Atlanta, GA, USA, October 19-24, 2008, Luca de Alfaro and Jens Palsberg (Eds.). ACM, 255-264. https:\/\/doi.org\/10.1145\/1450058.1450093 10.1145\/1450058.1450093"},{"issue":"6","key":"e_1_3_1_9_2","doi-asserted-by":"crossref","first-page":"129","DOI":"10.1007\/s10664-022-10146-1","article-title":"CsmithEdge: more effective compiler testing by handling undefined behaviour less conservatively","volume":"27","author":"Even-Mendoza Karine","year":"2022","unstructured":"Karine Even-Mendoza, Cristian Cadar, and Alastair F. Donaldson. 2022. CsmithEdge: more effective compiler testing by handling undefined behaviour less conservatively. Empir. Softw. Eng. 27, 6 (2022), 129. https:\/\/doi.org\/10.1007\/S10664-022-10146-1 10.1007\/S10664-022-10146-1","journal-title":"Empir. Softw. Eng."},{"key":"e_1_3_1_10_2","unstructured":"Diego Trevino Ferrer. 2019. LLVM-Reduce for testcase reduction. (2019). https:\/\/llvm.org\/devmtg\/2019-10\/talk-abstracts.html#tech22 2019 LLVM Developers\u2019 Meeting."},{"key":"e_1_3_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/2338965.2336763"},{"key":"e_1_3_1_12_2","unstructured":"Bevin Hansson. 2015. Random Testing of Code Generation in Compilers. Master\u2019s thesis. Royal Institute of Technology Stockholm. https:\/\/robcasloz.github.io\/teaching\/BevinHansson_2015.pdf"},{"key":"e_1_3_1_13_2","article-title":"Stacked borrows: an aliasing model for Rust","volume":"4","author":"Jung Ralf","year":"2019","unstructured":"Ralf Jung, Hoang-Hai Dang, Jeehoon Kang, and Derek Dreyer. 2019. Stacked borrows: an aliasing model for Rust. Proc. ACM Program. Lang. 4, POPL, Article 41 (dec 2019), 32 pages. https:\/\/doi.org\/10.1145\/3371109 10.1145\/3371109","journal-title":"Proc. ACM Program. Lang."},{"key":"e_1_3_1_14_2","unstructured":"Matthias Kr\u00fcger. 2020. icemaker. https:\/\/github.com\/matthiaskrgr\/icemaker"},{"key":"e_1_3_1_15_2","first-page":"179","volume-title":"The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL \u201814, San Diego, CA, USA, January 20-21, 2014","author":"Kumar Ramana","year":"2014","unstructured":"Ramana Kumar, Magnus O. Myreen, Michael Norrish, and Scott Owens. 2014. CakeML: a verified implementation of ML. In The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL \u201814, San Diego, CA, USA, January 20-21, 2014, Suresh Jagannathan and Peter Sewell (Eds.). ACM, 179-192. https:\/\/doi.org\/10.1145\/2535838.2535841 10.1145\/2535838.2535841"},{"key":"e_1_3_1_16_2","first-page":"216","volume-title":"Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (Edinburgh, United Kingdom) (PLDI \u201814)","author":"Le Vu","year":"2014","unstructured":"Vu Le, Mehrdad Afshari, and Zhendong Su. 2014. Compiler Validation via Equivalence modulo Inputs. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (Edinburgh, United Kingdom) (PLDI \u201814). Association for Computing Machinery, New York, NY, USA, 216-226. https:\/\/doi.org\/10.1145\/2594291.2594334 10.1145\/2594291.2594334"},{"key":"e_1_3_1_17_2","first-page":"386","volume-title":"Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015, part of SPLASH 2015, Pittsburgh, PA, USA, October 25-30, 2015","author":"Le Vu","year":"2015","unstructured":"Vu Le, Chengnian Sun, and Zhendong Su. 2015. Finding deep compiler bugs via guided stochastic program mutation. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015, part of SPLASH 2015, Pittsburgh, PA, USA, October 25-30, 2015, Jonathan Aldrich and Patrick Eugster (Eds.). ACM, 386-399. https:\/\/doi.org\/10.1145\/2814270.2814319 10.1145\/2814270.2814319"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10817-009-9155-4"},{"key":"e_1_3_1_19_2","unstructured":"Xavier Leroy. 2023. The CompCert C verified compiler - Documentation and user\u2019s manual. https:\/\/compcert.org\/man\/manual.pdf"},{"key":"e_1_3_1_20_2","first-page":"1044","volume-title":"The Thirty-Third AAAI Conference on Artificial Intelligence, AAAI 2019, The Thirty-First Innovative Applications of Artificial Intelligence Conference, IAAI 2019, The Ninth AAAI Symposium on Educational Advances in Artificial Intelligence, EAAI 2019, Honolulu, Hawaii, USA, January 27 - February 1, 2019","author":"Liu Xiao","year":"2019","unstructured":"Xiao Liu, Xiaoting Li, Rupesh Prajapati, and Dinghao Wu. 2019. DeepFuzz: Automatic Generation of Syntax Valid C Programs for Fuzz Testing. In The Thirty-Third AAAI Conference on Artificial Intelligence, AAAI 2019, The Thirty-First Innovative Applications of Artificial Intelligence Conference, IAAI 2019, The Ninth AAAI Symposium on Educational Advances in Artificial Intelligence, EAAI 2019, Honolulu, Hawaii, USA, January 27 - February 1, 2019. AAAI Press, 1044-1051. https:\/\/doi.org\/10.1609\/AAAI.V33I01.33011044 10.1609\/AAAI.V33I01.33011044"},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3428264"},{"key":"e_1_3_1_22_2","article-title":"Compiler fuzzing: how much does it matter?","volume":"3","author":"Marcozzi Micha\u00ebl","year":"2019","unstructured":"Micha\u00ebl Marcozzi, Qiyi Tang, Alastair F. Donaldson, and Cristian Cadar. 2019. Compiler fuzzing: how much does it matter? Proc. ACM Program. Lang. 3, OOPSLA, Article 155 (oct 2019), 29 pages. https:\/\/doi.org\/10.1145\/3360581 10.1145\/3360581","journal-title":"Proc. ACM Program. Lang."},{"issue":"1","key":"e_1_3_1_23_2","first-page":"100","article-title":"Differential testing for software","volume":"10","author":"McKeeman William M","year":"1998","unstructured":"William M McKeeman. 1998. Differential testing for software. Digital Technical Journal 10, 1 (1998), 100-107.","journal-title":"Digital Technical Journal"},{"key":"e_1_3_1_24_2","doi-asserted-by":"crossref","unstructured":"Eriko Nagai Atsushi Hashimoto and Nagisa Ishiura. 2014. Reinforcing Random Testing of Arithmetic Optimization of C Compilers by Scaling up Size and Number of Expressions. IPSJ Trans. Syst. LSI Des. Methodol. 7 (2014) 91-100. https:\/\/doi.org\/10.2197\/IPSJTSLDM.7.91 10.2197\/IPSJTSLDM.7.91","DOI":"10.2197\/ipsjtsldm.7.91"},{"key":"e_1_3_1_25_2","doi-asserted-by":"crossref","first-page":"21","DOI":"10.1145\/2998392.2998397","volume-title":"Proceedings of the 7th ACM SIGPLAN Symposium on Scala, SCALA@SPLASH 2016, Amsterdam, Netherlands, October 30 - November 4, 2016","author":"Ofenbeck Georg","year":"2016","unstructured":"Georg Ofenbeck, Tiark Rompf, and Markus P\u00fcschel. 2016. RandIR: differential testing for embedded compilers. In Proceedings of the 7th ACM SIGPLAN Symposium on Scala, SCALA@SPLASH 2016, Amsterdam, Netherlands, October 30 - November 4, 2016, Aggelos Biboudis, Manohar Jonnalagedda, Sandro Stucki, and Vlad Ureche (Eds.). ACM, 21-30. https:\/\/doi.org\/10.1145\/2998392.2998397 10.1145\/2998392.2998397"},{"issue":"1","key":"e_1_3_1_26_2","first-page":"3:1","article-title":"A Lightweight Formalism for Reference Lifetimes and Borrowing in Rust","volume":"43","author":"Pearce David J.","year":"2021","unstructured":"David J. Pearce. 2021. A Lightweight Formalism for Reference Lifetimes and Borrowing in Rust. ACM Trans. Program. Lang. Syst. 43, 1 (2021), 3:1-3:73. https:\/\/doi.org\/10.1145\/3443420 10.1145\/3443420","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"e_1_3_1_27_2","unstructured":"The Rust Project. [n. d.]. Miri. https:\/\/github.com\/rust-lang\/miri."},{"key":"e_1_3_1_28_2","first-page":"335","volume-title":"ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI \u201812, Beijing, China - June 11 - 16, 2012","author":"Regehr John","year":"2012","unstructured":"John Regehr, Yang Chen, Pascal Cuoq, Eric Eide, Chucky Ellison, and Xuejun Yang. 2012. Test-case reduction for C compiler bugs. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI \u201812, Beijing, China - June 11 - 16, 2012, Jan Vitek, Haibo Lin, and Frank Tip (Eds.). ACM, 335-346. https:\/\/doi.org\/10.1145\/2254064.2254104 10.1145\/2254064.2254104"},{"key":"e_1_3_1_29_2","doi-asserted-by":"crossref","first-page":"1483","DOI":"10.1145\/3597926.3604919","volume-title":"Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (Seattle, WA, USA) (ISSTA 2023)","author":"Sharma Mayank","year":"2023","unstructured":"Mayank Sharma, Pingshi Yu, and Alastair F. Donaldson. 2023. RustSmith: Random Differential Compiler Testing for Rust. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (Seattle, WA, USA) (ISSTA 2023). Association for Computing Machinery, New York, NY, USA, 1483-1486. https:\/\/doi.org\/10.1145\/3597926.3604919 10.1145\/3597926.3604919"},{"key":"e_1_3_1_30_2","first-page":"849","volume-title":"Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016, part of SPLASH 2016, Amsterdam, The Netherlands, October 30 - November 4, 2016","author":"Sun Chengnian","year":"2016","unstructured":"Chengnian Sun, Vu Le, and Zhendong Su. 2016. Finding compiler bugs via live code mutation. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016, part of SPLASH 2016, Amsterdam, The Netherlands, October 30 - November 4, 2016, Eelco Visser and Yannis Smaragdakis (Eds.). ACM, 849-863. https:\/\/doi.org\/10.1145\/2983990.2984038 10.1145\/2983990.2984038"},{"key":"e_1_3_1_31_2","unstructured":"Ole Tange. 2023. GNU Parallel 20230822 (\u2018Chandrayaan\u2019). https:\/\/doi.org\/10.5281\/zenodo.8278274 10.5281\/zenodo.8278274 GNU Parallel is a general parallelizer to run multiple serial command line programs in parallel without changing them.."},{"key":"e_1_3_1_32_2","unstructured":"Neven Villani. 2023. Tree Borrows. Master\u2019s thesis. ENS Paris-Saclay. https:\/\/github.com\/Vanille-N\/tree-borrows\/blob\/eeb44c2509a6fa3f6e55f4bd75f5fd416a576676\/half\/main.pdf"},{"key":"e_1_3_1_33_2","unstructured":"Andy Wang. 2023. Rustlantis. https:\/\/github.com\/cbeuw\/rustlantis"},{"key":"e_1_3_1_34_2","unstructured":"Andy Wang and Ralf Jung. 2024. Reproduction Image for Article \u2018Rustlantis: Randomized Differential Testing of the Rust Compiler\u2019. https:\/\/doi.org\/10.5281\/zenodo.12670660 10.5281\/zenodo.12670660"},{"key":"e_1_3_1_35_2","first-page":"1","volume-title":"2020 International Joint Conference on Neural Networks, IJCNN 2020, Glasgow, United Kingdom, July 19-24, 2020","author":"Xu Haoran","year":"2020","unstructured":"Haoran Xu, Yongjun Wang, Shuhui Fan, Peidai Xie, and Aizhi Liu. 2020. DSmith: Compiler Fuzzing through Generative Deep Learning Model with Attention. In 2020 International Joint Conference on Neural Networks, IJCNN 2020, Glasgow, United Kingdom, July 19-24, 2020. IEEE, 1-9. https:\/\/doi.org\/10.1109\/IJCNN48605.2020.9206911 10.1109\/IJCNN48605.2020.9206911"},{"key":"e_1_3_1_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/1993316.1993532"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3689780","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3689780","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,2,4]],"date-time":"2026-02-04T09:08:54Z","timestamp":1770196134000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3689780"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,10,8]]},"references-count":35,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2024,10,8]]}},"alternative-id":["10.1145\/3689780"],"URL":"https:\/\/doi.org\/10.1145\/3689780","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,10,8]]},"assertion":[{"value":"2024-04-06","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-08-18","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-10-08","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}