如何让 gcc 警告缩小函数参数

How to make gcc warn about narrowing function parameters

下面的程序涉及隐式缩小的函数参数。信息可能会丢失。

void func(short) {}

int main()
{
    int i = 0x7fffffff;
    func(i);
}

如果我使用 gcc 使用 -Wall -Wextra 编译此程序(作为 C 或 C++),我收到 没有警告

当然,这种行为通常会被认为是不可取的。

是否有一些 gcc 命令行参数会在发生这些缩小转换时触发诊断消息?

对 gcc/clang 使用 -Wconversion/W4 可用于 VC++。

online compiler