问题标签 [forced-unwind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
164 浏览

c++ - 如何在保持 UBSan 开心的同时捕捉 `abi::__forced_unwind`?

像 libstdc++ 一样,我们在某些地方检查abi::__forced_unwind,然后重新抛出它,而不是采取其他行动。像 libstdc++ 一样,我们通过引用来捕获它:

但是如果我们真的 pthread_cancel 来执行代码,ubsan 会抱怨:

运行时错误:引用绑定到“struct __forced_unwind”类型的空指针

在这里,我们是通过 const-ref 还是通过 mutable ref 捕获并不重要。

我们(和 libstdc++)是否真的在这里遇到了 UB,或者它是 GCC 的 UBSan 实现中的误报?