gpt4 book ai didi

c++ - 没有警告的返回语句后的代码

转载 作者:太空狗 更新时间:2023-10-29 20:50:51 25 4
gpt4 key购买 nike

我们刚刚在我们的代码库中发现了一个问题,其中一条语句位于 return 语句之后。

例如

std::string MyClass::addElement(Type1 &item, const std::string &param2)
{
if (param2.empty())
{
// logging
return "";
}

return m_database->addElement(item, param2, item.status, true);

// here I would expect an unreachable code warning
m_database->updateTableA(item.p1, item.p2, item.p3, AType::AType23);
}

我不明白的是,为什么我们的编译器(GCC 4.8.5 和 7)不发出警告?

我们用-std=c++0x -Wall -Wextra -Wsign-compare -Wunknown-pragmas -Wold-style-cast -Wshadow -Wfatal-errors

编译

最佳答案

GCC 不能发出死代码警告,因为 Wunreachable-code 标志/功能在 4.4 版后被删除,您可以阅读 here .

Clang 版本 4(head 现在是 8,所以我不建议这样做),当使用 [-Wunreachable-code 标志编译代码时,也会发出警告:

warning: code will never be executed [-Wunreachable-code]


你可以试试静态分析工具,里面有很多list .

关于c++ - 没有警告的返回语句后的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52944991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com