github / github/codeql

LGTM.com - false positive for C++ missing return statement

未关闭
#4,105 3 条评论 0 个 reaction 已指派 1 人 已被 @dbartol 认领 在 GitHub 查看
C++ false-positive
主要语言
CodeQL
星标
10.1k
派生
2.1k
平均合并
2 天 15 小时
30 天内合并 PR
141

描述

**Description of the false positive**

Hi, there! I'm trying to add a fatal logging level to the logging infra. `LOG(FATAL)` will abort hence won't return. The macro is a wrapper around a stream-like class, whose destructor will call `abort()`, so after printing out the fatal error message, the program will be ternminated (refer to [this](https://github.com/iovisor/bpftrace/pull/1449/commits/89e940313767b4bcd475d535a788f1f1f825e39a) for more context). The destructor is marked with C++ attribute `[[noreturn]]`, which will make the compiler happy. I've also tried to suppress the alert with `// lgtm[cpp/missing-return]` but it won't work (remind me if I have done it in the wrong way). My guess is "missing return" is taken as an error so it won't be suppressed. But I'd think that since C++ provides the `[[noreturn]]` attribute to reassure the compiler, it should be considered an accepted behavior. Any thoughts on this?

**URL to the alert on the project page on LGTM.com**
https://lgtm.com/projects/g/iovisor/bpftrace/snapshot/0c6cc31868a95d11756df15ba2a4540058de15b0/files/src/attached_probe.cpp?sort=name&dir=ASC&mode=heatmap#x119f230625cb95f3:1

https://lgtm.com/projects/g/iovisor/bpftrace/snapshot/0c6cc31868a95d11756df15ba2a4540058de15b0/files/src/types.cpp?sort=name&dir=ASC&mode=heatmap#x65ffd3725acdcabb:1

https://lgtm.com/projects/g/iovisor/bpftrace/snapshot/0c6cc31868a95d11756df15ba2a4540058de15b0/files/src/ast/ast.cpp?sort=name&dir=ASC&mode=heatmap#x38807acfecd9b7d1:1

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。