Mingwei Zheng
Author directory2026
Benchmarking Explainable Vulnerability Detection with Calling Contexts
Jinyao Guo | Yaoyang Ye | Zhihao Guo | Mingwei Zheng | Tiantai Zhang | Xuwei Liu | Xiaolong Jin | Congyu Liu | Xiangzhe Xu | Zian Su | Ziyun Song | Zhou Xuan | Xiao Cheng | Chengpeng Wang | Xiangyu Zhang
Findings of the Association for Computational Linguistics: EMNLP 2026
Jinyao Guo | Yaoyang Ye | Zhihao Guo | Mingwei Zheng | Tiantai Zhang | Xuwei Liu | Xiaolong Jin | Congyu Liu | Xiangzhe Xu | Zian Su | Ziyun Song | Zhou Xuan | Xiao Cheng | Chengpeng Wang | Xiangyu Zhang
Findings of the Association for Computational Linguistics: EMNLP 2026
Large language models (LLMs) are increasingly applied to vulnerability detection in real-world software systems, where the task goes beyond binary classification and requires calling context exploration over large code repositories. However, existing benchmarks primarily formulate the vulnerability detection as a classification problem without calling contexts and provide no formalized explanations, making them inadequate for evaluating LLM-driven vulnerability detectors upon repositories. To fill the gap, we introduce ManBo, a benchmark designed to assess the capability of LLM-driven vulnerability detectors in the real-world scenarios. Specifically, ManBo provides human-verified vulnerability explanations together with calling contexts, enabling principled evaluation of the ability to both identify vulnerabilities and explain root causes. It contains 205 vulnerable instances and 164 safe instances collected from 74 high-profile C/C++ projects, covering three critical types of memory corruption. We evaluate a broad spectrum of LLM-driven detectors on ManBo, and find that effective calling context retrieval is essential for repository-level vulnerability detection, exposing a fundamental gap between the capabilities of existing LLM-driven detectors and real-world requirements. ManBo is publicly available at https://github.com/jinyaoguo/ManBo.
Raw Pointer Rewriting with LLMs for Translating C to Safer Rust
Yifei Gao | Chengpeng Wang | Pengxiang Huang | Xuwei Liu | Mingwei Zheng | Xiangyu Zhang
Findings of the Association for Computational Linguistics: ACL 2026
Yifei Gao | Chengpeng Wang | Pengxiang Huang | Xuwei Liu | Mingwei Zheng | Xiangyu Zhang
Findings of the Association for Computational Linguistics: ACL 2026
There has been a growing interest in translating C code to Rust due to Rust’s robust memory and thread safety guarantees. Tools such as C2Rust enable syntax-guided transpilation from C to semantically equivalent Rust code. However, the resulting Rust programs often rely heavily on unsafe constructs, particularly raw pointers, which undermines Rust’s safety guarantees. This paper aims to improve the memory safety of Rust programs generated by C2Rust by eliminating raw pointers. Specifically, we propose a raw pointer rewriting technique that lifts raw pointers in individual functions to appropriate Rust data structures. Technically, PR2 employs decision-tree-based prompting to guide the pointer lifting process. It also leverages code change analysis to guide the repair of errors introduced during rewriting, effectively addressing errors encountered during compilation and test case execution.We implement PR2 and evaluate it using gpt-4o-mini on 28 real-world C projects. It is shown that PR2 successfully eliminates 18.57% of local raw pointers across these projects, significantly enhancing the safety of the translated Rust code. On average, PR2 completes the transformation of a project in 5.02 hours, at a cost of $1.13. Our code is available at https://github.com/bhcsayx/PR2.