首页 > 解决方案 > 是否有任何 C 编译器能够检测到违反“严格符合程序”的情况?

问题描述

是否有任何 C 编译器能够检测*违反“严格符合程序”的情况?

* 在某些选项下,例如,--accept-only-strictly-conforming-program

如果不是,那么使用哪些工具来检测违反“严格符合程序”的情况?

信息丰富(C11, 4. 一致性,p5):

严格遵守的程序应仅使用本国际标准中指定的语言和库的那些特性。3) 它不应产生依赖于任何未指定、未定义或实现定义的行为的输出,并且不应超过任何最小实现限制。

标签: cc11diagnosticsstandards-compliancec17

解决方案


  • 缓冲区溢出是未定义的行为。
  • 因此,此编译器必须检测每个可能的程序中的每个可能的缓冲区溢出。
  • 听起来太难或不可能
  • 听起来这样的编译器不存在:'(

推荐阅读