You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clang CFI sanitizer与函数指针的不一致误报问题咨询

这是Clang的已知版本bug
  • 你碰到的是Clang 11至15版本特有的兼容性问题,在Clang 18中已被修复。该bug仅在同时启用-fsanitize=cfi和-fcf-protection=full编译选项时触发。
  • 你的代码本身没有问题:无非法类型转换,且开启-std=c89 -Wpedantic -Wall -Werror无任何警告,完全符合类型安全规范,排除了代码自身导致CFI报错的可能。
  • 代码修改(添加static/const修饰、调整优化级别)会改变故障表现,原因在于旧版本Clang在LTO(链接时优化)流程中,对结构体数组内函数指针的CFI校验逻辑存在缺陷——不同的代码修饰和优化选项会影响编译器生成的中间表示,进而导致bug触发时机或位置变化。

内容的提问来源于stack exchange,提问作者Anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:04:52