gpt4 book ai didi

c++ - 如何让叮当警告非常简单的缩小

转载 作者:行者123 更新时间:2023-12-04 11:58:19 24 4
gpt4 key购买 nike

如果我正在使用 clang 工具,那么推荐的方法是获取 clang 或 clang 工具链的某些部分来告诉我,例如将 int 传递给采用 short 的函数可能是个坏主意?
鉴于这个非常简单的程序

static short sus = 0;
void foo(short us) {
sus = us;
}

int main() {
int i = 500000;
foo(i); // any indication from clang this might be a bad idea
return 0;
}
  • 我试过 -Wall 和 -Wextra,
  • 我已经用 cppcoreguidelines-narrowing-conversions
  • 尝试了clang-tidy
  • 我试过 clang -analyze

  • 我一定在这里遗漏了一些非常简单的东西,对吧?

    最佳答案

    -Weverything option 在这种情况下很有用。它启用了 clang 的每个警告选项,包括许多 -Wall -Wextra不包括。其中许多是无用的或适得其反的,但是如果有一个警告您认为有问题的代码,这会让您找到它,并告诉您哪个选项可以专门启用它。 Try it on godbolt .
    在这种情况下,使用 -Weverything向我们展示:

    <source>:8:7: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wimplicit-int-conversion]
    foo(i); // any indication from clang this might be a bad idea
    ~~~ ^
    所以你想要的选项是 -Wimplicit-int-conversion .

    关于c++ - 如何让叮当警告非常简单的缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69547984/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com