有没有办法在gcc中激活一个警告,表示存在整数浮点运算? 我有一个带有许多算术运算的旧代码,我注意到有很多这样的情况:
int a, b, c;
double x, y, z;
y = a + x*b + c/z;
使用我的ide的“搜索”工具跟踪所有这些情况并不容易,因为代码非常冗长,含糊不清且错综复杂(前面的例子只是为了弄清楚问题)!所以,我想知道gcc中是否有 “ - Wsomenthing” 可以帮助我解决这个苦差事。
添加
我没有收到任何有关-Wconversion活动的警告
答案 0 :(得分:3)
可能没有这种方式,但你的问题是GCC扩展或插件的规范案例。
您可以使用C语言编写的插件扩展GCC(版本4.6或更高版本)。您可以使用高级域特定语言MELT更轻松地扩展GCC以扩展GCC。
GCC 4.5可以使用插件扩展,但插件支持在4.5中较差,在4.6或4.7或更快发布时更好4.8
如果您使用MELT,您可能想要使用其walk_gimple_seq_unique_tree
,然后将当前的gimple与gimple_assign_cast
匹配。
编写这样的MELT扩展可能需要一天以上;问题是GCC很复杂,你需要部分理解它的内部表示(Gimple)及其传递机制。如果你有一个大的代码库自定义编译器仍然值得努力。
上询问MELT特定问题