C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了-fcatch-undefined-behavior仅捕获超过大小1个元素的本地数组访问大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_489_0@
@H_489_0@
我有一个关于clang中catch-undefined-behavior标志的问题.
我在一个用C编写的大项目中尝试过,在一个点上,用户提供的整数值(i)到达.然后我添加了以下代码

int arr[3]
arr[i] = 1234;

但是当我用gdb运行代码时,它只在变量i的值为4或更大时停止.因此,当我将值3传递给i时,它仍会在不停止的情况下访问其边界之外的数组.

这是-fcatch-undefined-behavior的已知限制吗?
或者它只检查访问是否在堆栈框架之外,而不是在本地数组之外?

最好的祝福
基督教

P.s.:我使用clang llvm 3.0作为编译器/链接器.目标是x86.该程序在Windows XP盒子上的xubuntu 12.04虚拟机内运行.

解决方法

ISO C标准的附录J列出了与您的问题相关的以下未定义行为:

>将指针加到或减去数组对象和数组对象
整数类型产生的结果不会指向同一个数组,或者只是指向同一个数组
对象(6.5.6).
>将指针加到或减去数组对象和数组对象
整数类型产生的结果指向数组对象之外并用作
被评估的一元*运算符的操作数(6.5.6).

根据你的帖子,Clang的-fcatch-undefined-behavior似乎只能抓住这两个中的第一个.

@H_489_0@

大佬总结

以上是大佬教程为你收集整理的-fcatch-undefined-behavior仅捕获超过大小1个元素的本地数组访问全部内容,希望文章能够帮你解决-fcatch-undefined-behavior仅捕获超过大小1个元素的本地数组访问所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:1behaviorundefined元素大小捕获数组本地访问超过
猜你在找的C&C++相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap