让gcc警告显式转换

时间:2018-02-12 13:45:58

标签: c gcc type-conversion explicit

如何让gcc(6.3)警告通过强制转换(C代码)完成的所有显式 64位到32位转换?

  • -Wconversion标志忽略显式转换。
  • 我即将把一个非常大的旧项目编译成64位,我知道有很多程序员误用了铸造而且不可能手动找到所有这些项目。
  • 解析代码是不够的,因为许多自定义定义和结构保存参数,它必须处于编译阶段。

e.g。 如何自动找到此类问题?

typedef long long my_type;
int foo()
{
  my_type f;
  ...
  return (int)f;
}

struct stat {
  ino_t st_ino;    /* 64bit Inode number */
... };

int foo2(){
  stat s;
  ...
  return (int)s.st_ino;
{

0 个答案:

没有答案