在gcc中激活int-float操作的警告

时间:2013-02-10 11:22:57

标签: c gcc

有没有办法在gcc中激活一个警告,表示存在整数浮点运算? 我有一个带有许多算术运算的旧代码,我注意到有很多这样的情况:

int a, b, c;
double x, y, z;
y = a + x*b + c/z;

使用我的ide的“搜索”工具跟踪所有这些情况并不容易,因为代码非常冗长,含糊不清且错综复杂(前面的例子只是为了弄清楚问题)!所以,我想知道gcc中是否有 “ - Wsomenthing” 可以帮助我解决这个苦差事。

添加

我没有收到任何有关-Wconversion活动的警告

1 个答案:

答案 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)及其传递机制。如果你有一个大的代码库自定义编译器仍然值得努力。

gcc-melt@googlegroups.com

上询问MELT特定问题