Skip to content

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

@suyuee

Description

@suyuee

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 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

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions