在 catch 块中使用 g++ 或 clang++ 启用未引用的局部变量警告

Enable unreferenced local variable warning with g++ or clang++ in catch blocks

本文关键字:启用 引用 警告 局部变量 clang++ catch g++      更新时间:2023-10-16

用这个简单的代码

#include <stdexcept>
int main() {
  try {
  } catch (const std::runtime_error& anError) {
  }
} 

启用了 -Wextra 标志的 g++-4.9 和 clang++-3.5(其他未引用的局部变量问题通知需要)都没有检测到任何错误,而据报道 Visual Studio 正确发出 C4101 警告(我没有 vs 工具链,所以我无法确认这一点)。

这是一个问题,

因为我的静态分析工具配置了足够高的侵略性,将这些用法报告为问题。我宁愿在源代码级别解决它们,而不是影响我的静态分析工具的有效性。

有没有人知道从这两个编译器那里获得这些警告的方法?

谢谢!

你可以简单地写:

try {
} catch (const std::runtime_error&) {
}