GCC和Clang未警告未使用的异常变量

时间:2019-05-03 21:41:38

标签: c++ visual-studio gcc clang

请考虑以下无用的代码,特别是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标志集?

1 个答案:

答案 0 :(得分:0)

C语

错误报告: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参数始终标记为已使用。链接的错误报告正在对此进行调查。