c - 是否有任何 C 编译器能够检测到违反“严格符合程序”的情况?
问题描述
是否有任何 C 编译器能够检测*违反“严格符合程序”的情况?
* 在某些选项下,例如,--accept-only-strictly-conforming-program
如果不是,那么使用哪些工具来检测违反“严格符合程序”的情况?
信息丰富(C11, 4. 一致性,p5):
严格遵守的程序应仅使用本国际标准中指定的语言和库的那些特性。3) 它不应产生依赖于任何未指定、未定义或实现定义的行为的输出,并且不应超过任何最小实现限制。
解决方案
- 缓冲区溢出是未定义的行为。
- 因此,此编译器必须检测每个可能的程序中的每个可能的缓冲区溢出。
- 听起来太难或不可能
- 听起来这样的编译器不存在:'(
推荐阅读
- gatsby - 如何在没有任何开销的情况下使用 Gatsby 渲染(几乎)空白页面?
- angular - 使用 Domino 数据服务将 Angular 前端连接到 Lotus Notes
- excel - WinHttpRequest.Option(EnableCertificateRevocationCheck) 给出“5:无效的过程调用或参数 (-2417210492)”
- kubernetes - dockerfile 中的 EXPOSE 和服务 YAML 中的 TARGETPORT 与 Pod 中实际运行的端口之间有什么关系?
- python - 从我的静态文件夹中检索图像时如何防止 404 错误
- ios - 打开电话拨号盘
- ios - 如何处理 FaceTime 通话失败?
- javascript - 画布线宽太粗
- javascript - 使用 Gradle 在 IntelliJ 中具有多个源集的 2 个项目的未解决依赖关系
- amazon-web-services - 创建 EKS 工作节点时如何在云形成模板中指定现有节点安全组