我有一个带有许多类型转换和强制转换的遗留 c 项目。通常为了检查溢出动态行为,gcc(和 C 语言)为此定义了一个内置函数:
内置函数:bool __builtin_add_overflow (type1 a, type2 b, type3 *res)
如果结果溢出,则函数返回 true。然后我的程序可能会捕捉到这种情况并采取相应的行动。
为了在不更改任何遗留代码的情况下拥有相同的功能,是否可以指示 gcc 使用此类内置函数并在内置函数返回 true 时调用提供的函数作为捕手?我希望我能找到类似的东西:
无效_cyg_add_overflow_catcher(A, B, __FILE , LINE );
GCC 已经可以检测功能,用于可追溯性和分析,所以这个概念并不奇怪。有任何想法吗?