如何使GCC / Clang警告未初始化成员的使用?

时间:2019-06-28 17:40:31

标签: c++ gcc clang warnings

我正在编译背后的代码

class Test {
public:
    Test() {}

    int k;
};

int main() {
  Test t;
  std::cout << t.k << "\n";
}

喜欢

g/clang++ main.cpp -Wall -Wextra --std=c++14 -o exe; ./exe

为什么两个编译器都没有对整数的不确定值发出警告,这不是一个非常严重的潜在错误吗?如何为不确定的初始化启用警告?

1 个答案:

答案 0 :(得分:4)

在此示例中,当我将-O1(或更高版本)授予gives me the desired warning时。

大概它用来检测到这种情况的任何机制都以某种方式与优化工作量挂钩。 It's a notoriously hard thing to do

确保您同时注意发布生成警告和调试生成警告。