请考虑以下无用的代码,特别是int k
子句中的catch
:
int main()
{
try
{
throw 0;
}
catch(int k)
{
}
return 0;
}
当使用带有-Wall -Wextra
的g ++(版本8.3.0)和clang ++(8.0.0)进行编译时,尽管未使用k
变量,也不会发出警告。 Visual Studio确实会发出警告,这就是我在我的项目中发现这种差异的方式。
这是GCC和Clang中的错误,还是我误解了-Wunused
标志集?
答案 0 :(得分:0)
错误报告:https://bugs.llvm.org/show_bug.cgi?id=41746
事实证明,叮当提示-Wunused-exception-parameter
,尽管-Wall
,-Wextra
或-Wunused
中的任何组都未激活它。
错误报告:https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90353
如对此问题的注释以及错误报告中所述,所有catch参数始终标记为已使用。链接的错误报告正在对此进行调查。