发布时间:2025年05月06日
近日,由我所师生王博、陈冲、叶晨、林友芳,以及合作者天津大学陈俊洁,北卡州立大学徐博文,新加坡管理大学的董国良和孙军合作完成的论文Comprehensive Study of OOP-Related Bugs in C++ Compilers被 IEEE TSE (CCF-A类期刊,中科院1区)接收。该文为我所甚至是我院在TSE上的首篇论文。
文章系统分析了 C++ 编译器在处理OOP特性时的bug。从C++开源编译器 GCC/LLVM 中提取 788 个 OOP 相关 bug,构建了涵盖 6 大类、17 小类的bug分类体系。我们的论文主要发现有:
1. 对象构造/析构是编译器最容易出现缺陷的特性;
2. OOP相关 bug 平均 1856 天才被发现,远超一般编译器缺陷。一旦发现修复仅需 174 天;
3. 超半数的缺陷无需任何编译选项即可触发,少数需要提供指定 C++ 标准的编译选项。
基于这些发现,论文开发简单的OOP特定的变异算子工具 OOPFuzz,仅用 3 小时就在最新版 GCC/LLVM 中发现了 9 个 bug(含 1 个潜伏 13 年 的 LLVM bug)。
希望这项研究能为编译器测试、语言设计甚至 C++ 工程实践提供参考。