我想找出 g++ (4.7) 中最极端的错误检查标志组合。我们没有使用新的 C++11 规范,因为我们需要使用旧编译器交叉编译代码,而这些旧编译器(主要是 g++ 4.0)经常会导致 g++4.7 忽略的问题。
现在我们使用以下一组标志:
-Wall -Wcomment -Wformat -Winit-self -ansi -pedantic-errors \
-Wno-long-long -Wmissing-include-dirs -Werror -Wextra
但是这种组合不能识别诸如将 double 传递给需要 int 的函数的问题,或者有符号和无符号 int 之间的比较,这会导致旧编译器阻塞它。
我已经阅读了文档并且-Wsign-compare
应该启用,-Wextra
但实际上似乎并非如此,所以我可能错过了一些东西......