rustc++: Facilitating Advanced Analysis of Rust Code
Rust is a popular programming language with strong memory-safety guarantees, achieved through its ownership and borrowing model. Rust allows a programmer to escape memory safety using explicitly marked unsafe code in order to facilitate integration with existing C/C++ code. Such safe code is not immune to typical memory errors. To avoid such bugs researchers try to provide both static and dynamic analysis tools and incorporate C/C++ hardening techniques for unsafe Rust. However, such analysis is not always trivial as Rust uses multiple intermediate representations (IR), and when lowering a higher level IR to a lower level IR, all information that marks a specific block of code as unsafe is lost. Since the two worlds of Rust, safe and unsafe, are built on different assumptions many analysis tools and techniques can benefit from knowing where the safe context changes to unsafe and vice-versa.
Authors
- Georgios Portokalidis (ORCID: https://orcid.org/0000-0002-1665-803X)
- Antonis Louka (ORCID: https://orcid.org/0009-0006-1501-4933)
- Ηλίας Αθανασόπουλος (ORCID: https://orcid.org/0000-0002-8759-3261)
Institutions
- University of Cyprus (CY)
- IMDEA Software Institute (ES)
Publication Details
- Published
- 2025-03-30
- DOI
- https://doi.org/10.1145/3722041.3723102
- Primary Topic
- Software Testing and Debugging Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- European Commission
- HORIZON EUROPE Framework Programme