9.3 编译器模糊测试 (Fuzzing) 9.3 编译器模糊测试(Fuzzing):在IR层构筑可信编译的免疫防线 你是否曾想过——当一个看似无害的 被送入优化器,却在某次 下悄然触发未定义行为、生成跳转至非法地址的机器码,而静态分析工具沉默,单元测试遗漏,CI流水线照常通过?这不是虚构的惊悚桥段,而是LLVM 14中真实修复的Bug #56287:一条合法的、语法无误、语义自洽的LLVM IR片段,在 与 协同作用下,意外消除了对符号位的防护检查,使有符号整数左移溢出路径暴露于运行时崩溃边缘。 这类缺陷不源于语法错误,不显于类型系统,更难被传统测试捕获——它们蛰伏于语义等价性边界模糊的灰色地带,游走于优化器对IR抽象的“合理假设”与实际硬件/语言标准的“刚性约束”之间。