【发布时间】:2016-04-13 11:15:22
【问题描述】:
如何让 gcc 编译器报告从整数到无符号整数的转换? 是否有我可以传递给 gcc 编译器的选项/参数来标记此类转换?
【问题讨论】:
-
您指的是哪些转化?
unsigned int u = 0;也是无符号整数吗?
标签: c static-analysis lint
如何让 gcc 编译器报告从整数到无符号整数的转换? 是否有我可以传递给 gcc 编译器的选项/参数来标记此类转换?
【问题讨论】:
unsigned int u = 0; 也是无符号整数吗?
标签: c static-analysis lint
使用标志:-Wconversion,它将警告有符号和无符号整数之间的转换可能会更改值。
【讨论】:
-Wsign-conversion
-Wconversion 包含-Wsign-conversion
-Wconversion 抱怨的不仅仅是-Wsign-conversion,它应该会捕获所有signed->unsigned。
你可以使用-Wconversion:
-Wconversion对可能改变值的隐式转换发出警告。 这包括......;有符号和无符号之间的转换,例如 无符号 ui = -1。
或者,更具体地说,-Wsign-conversion:
-Wsign-conversion对可能改变整数值符号的隐式转换发出警告,例如分配有符号整数表达式 到一个无符号整数变量。明确的演员表使 警告。在 C 中,-Wconversion也启用了此选项。
参考:https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
【讨论】: