如何让gcc警告缩小功能参数

时间:2018-01-05 19:31:11

标签: c++ c gcc compiler-warnings

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

WITH new_transactions AS (
       select * from transactions
       where merchant_id = 1 and inserted_at > date '2017-11-01'
     ), older_transactions AS (
        select * from transactions
        where merchant_id = 1 and inserted_at < date '2017-11-01'
     )
SELECT * from new_transactions
WHERE user_id NOT IN (select user_id from older_transactions);

如果我使用void func(short) {} int main() { int i = 0x7fffffff; func(i); } 使用gcc编译此程序(使用C或C ++),我会收到没有警告

当然,这种行为通常被认为是不合需要的。

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

1 个答案:

答案 0 :(得分:6)

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

online compiler