-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
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