Examples of errors detected by the V591 diagnostic
V591. Non-void function must return value.
Quake-III-Arena
V591 Non-void function should return a value. botlib q_shared.h 155
static ID_INLINE int BigLong(int l)
{ LongSwap(l); }
Need: { return LongSwap(l); }
Similar errors can be found in some other places:
- V591 Non-void function should return a value. botlib q_shared.h 157
Haiku Operation System
V591 Non-void function should return a value. pc.c 1031
ULONG
set_var(char *name, ULONG val)
{
variable *v;
v = lookup_var(name);
if (v != NULL)
v->value = val;
else
add_var(name, val);
}
SETI@home
V591 Non-void function should return a value. x86_float4.h 237
struct float4
{
....
inline float4 rsqrt() const {
}
inline float4 sqrt() const {
}
inline float4 recip() const {
}
....
};
Similar errors can be found in some other places:
- V591 Non-void function should return a value. x86_float4.h 239
- V591 Non-void function should return a value. x86_float4.h 241
Unreal Engine 4
V591 Non-void function should return a value. slistview.h 53
class FColumnHeaderSlot
{
public:
FColumnHeaderSlot& operator[](
const TSharedRef< SHeaderRow >& InColumnHeaders )
{
HeaderRow = InColumnHeaders;
}
....
}
Missing return *this.
Open X-Ray Engine
V591 Non-void function should return a value. _matrix33.h 435
template <class T>
struct _matrix33
{
public:
typedef _matrix33<T>Self;
typedef Self& SelfRef;
....
IC SelfRef sMTxV(Tvector& R, float s1, const Tvector& V1) const
{
R.x = s1*(m[0][0] * V1.x + m[1][0] * V1.y + m[2][0] * V1.z);
R.y = s1*(m[0][1] * V1.x + m[1][1] * V1.y + m[2][1] * V1.z);
R.z = s1*(m[0][2] * V1.x + m[1][2] * V1.y + m[2][2] * V1.z);
}
....
}
Chromium
V591 Non-void function should return a value. memory_allocator.h 39
CheckReturnValue& operator=(const CheckReturnValue& other) {
if (this != &other) {
DCHECK(checked_);
value_ = other.value_;
checked_ = other.checked_;
other.checked_ = true;
}
}
Missing return *this.
LLVM/Clang
V591 Non-void function should return a value. RPCUtils.h 719
SequenceNumberManager &operator=(SequenceNumberManager &&Other) {
NextSequenceNumber = std::move(Other.NextSequenceNumber);
FreeSequenceNumbers = std::move(Other.FreeSequenceNumbers);
}
Aspell
V591 Non-void function should return a value. lsort.hpp 159
template <class N>
static inline N * fix_links(N * cur)
{
N * prev = 0;
while (cur) {
cur->prev = prev;
prev = cur;
cur = cur->next;
}
}
EFL Core Libraries
V591 Non-void function should return a value. ecore_evas_extn.c 1526
static Eina_Bool
_ipc_server_data(void *data, int type EINA_UNUSED, void *event)
{
....
//TIZEN_ONLY(170317): add skipping indicator buffer logic
if (indicator_buffer_skip)
return;
//END
....
//TIZEN_ONLY(170317): add skipping indicator buffer logic
if (_ecore_evas_indicator_size_check(ee, &(extn->b[n].w)))
{
indicator_buffer_skip = EINA_TRUE;
return; // <=
}
else
indicator_buffer_skip = EINA_FALSE;
//END
....
}
Similar errors can be found in some other places:
- V591 Non-void function should return a value. ecore_evas_extn.c 1617
EFL Core Libraries
V591 Non-void function should return a value. eina_accessor.hh 330
_self_type& operator=(_self_type const& other)
{
_base_type::operator=(other);
}
Android
V591 CWE-393 Non-void function should return a value. linux_close.cpp 139
int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
struct sockaddr *from, int *fromlen) {
socklen_t socklen = *fromlen;
BLOCKING_IO_RETURN_INT(
s, recvfrom(s, buf, len, flags, from, &socklen) );
*fromlen = socklen;
}
Similar errors can be found in some other places:
- V591 CWE-393 Non-void function should return a value. linux_close.cpp 158
NCBI Genome Workbench
V591 Non-void function should return a value. bio_tree.hpp 266
/// Recursive assignment
CBioNode& operator=(const CBioNode& tree)
{
TParent::operator=(tree);
TBioTree* pt = (TBioTree*)tree.GetParentTree();
SetParentTree(pt);
}
Haiku Operation System
V591 Non-void function should return a value. Referenceable.h 228
BReference& operator=(const BReference<const Type>& other)
{
fReference = other.fReference;
}
Similar errors can be found in some other places:
- V591 Non-void function should return a value. Referenceable.h 233
- V591 Non-void function should return a value. Referenceable.h 239
Haiku Operation System
V591 Non-void function should return a value. main.c 1010
void errx(int, const char *, ...) ;
char *
getoptionvalue(const char *name)
{
struct option *c;
if (name == NULL)
errx(1, "getoptionvalue() invoked with NULL name");
c = getoption(name);
if (c != NULL)
return (c->value);
errx(1, "getoptionvalue() invoked with unknown option `%s'", name);
/* NOTREACHED */
}
'errx' doesn't contain noreturn attribute.
ROOT
V591 Non-void function should return a value. LogLikelihoodFCN.h 108
LogLikelihoodFCN & operator = (const LogLikelihoodFCN & rhs) {
SetData(rhs.DataPtr() );
SetModelFunction(rhs.ModelFunctionPtr() );
fNEffPoints = rhs.fNEffPoints;
fGrad = rhs.fGrad;
fIsExtended = rhs.fIsExtended;
fWeight = rhs.fWeight;
fExecutionPolicy = rhs.fExecutionPolicy;
}
Command & Conquer
V591 Non-void function should return a value. HEAP.H 123
int FixedHeapClass::Free(void * pointer);
template<class T>
class TFixedHeapClass : public FixedHeapClass
{
....
virtual int Free(T * pointer) {FixedHeapClass::Free(pointer);};
};
Strf
V591 Non-void function should return a value. numpunct.hpp 402
template <int Base>
class numpunct: private strf::digits_grouping
{
....
constexpr STRF_HD numpunct& operator=(const numpunct& other) noexcept
{
strf::digits_grouping::operator=(other);
decimal_point_ = other.decimal_point_;
thousands_sep_ = other.thousands_sep_;
}
....
};
Strf
V591 Non-void function should return a value. numpunct.hpp 528
template <int Base>
class no_grouping final
{
constexpr STRF_HD no_grouping& operator=(const no_grouping& other) noexcept
{
decimal_point_ = other.decimal_point_;
}
....
}
Chobo Single-Header Libraries
V591 Non-void function should return a value. vector_view.hpp 163
template <typename T, typename U, typename Alloc = std::allocator<T>>
class vector_view
{
....
vector_view& operator=(vector_view&& other)
{
m_vector = std::move(other.m_vector);
}
....
}
Chobo Single-Header Libraries
V591 Non-void function should return a value. vector_view.hpp 184
template <typename UAlloc>
vector_view& operator=(const std::vector<U, UAlloc>& other)
{
size_type n = other.size();
resize(n);
for (size_type i = 0; i < n; ++i)
{
this->at(i) = other[i];
}
}
PpluX
V591 Non-void function should return a value. px_render.h 398
struct DisplayList {
DisplayList& operator=(DisplayList &&d) {
data_ = d.data_;
d.data_ = nullptr;
}
....
}
Universal
V591 Non-void function should return a value. matrix.hpp 109
template<typename Scalar>
class matrix {
....
matrix& diagonal() {
}
....
};
manif
V591 Non-void function should return a value. lie_group_base.h 347
template <typename _Derived>
typename LieGroupBase<_Derived>::Scalar*
LieGroupBase<_Derived>::data()
{
return derived().coeffs().data(); // OK
}
template <typename _Derived>
const typename LieGroupBase<_Derived>::Scalar*
LieGroupBase<_Derived>::data() const
{
derived().coeffs().data(); // ERROR
}
qdEngine
V591 [CWE-393, CERT-MSC52-CPP] Non-void function should return a value. qd_sound.h 70
class qdSound : public qdNamedObject, public qdResource
{
....
float length() const {
#ifndef __QD_SYSLIB__
return sound_.length();
#endif
}
....
}
LLVM/Clang
V591 Non-void function should return a value. tools.cpp:1278
static bool StopAtComponentPre(const Symbol &component) {
if constexpr (componentKind == ComponentKind::Ordered) {
// Parent components need to be iterated upon after their
// sub-components in structure constructor analysis.
return !component.test(Symbol::Flag::ParentComp);
} else if constexpr (componentKind == ComponentKind::Direct) {
return true;
} else if constexpr (componentKind == ComponentKind::Ultimate) {
return component.has<ProcEntityDetails>() ||
IsAllocatableOrObjectPointer(&component) ||
(component.has<ObjectEntityDetails>() &&
component.get<ObjectEntityDetails>().type() &&
component.get<ObjectEntityDetails>().type()->AsIntrinsic());
} else if constexpr (componentKind == ComponentKind::Potential) {
return !IsPointer(component);
} else if constexpr (componentKind == ComponentKind::PotentialAndPointer) {
return true;
}
}
OpenVINO
V591 [CERT-MSC52-CPP] Non-void function should return a value. graph_iterator_flatbuffer.hpp 29
template <typename T>
std::basic_string<T> get_model_extension() {}
Similar errors can be found in some other places:
- V591 [CERT-MSC52-CPP] Non-void function should return a value. graph_iterator_meta.hpp 18
- V591 [CERT-MSC52-CPP] Non-void function should return a value. graph_iterator_saved_model.hpp 19
- V591 [CERT-MSC52-CPP] Non-void function should return a value. graph_iterator_saved_model.hpp 21
OpenVINO
V591 [CERT-MSC52-CPP] Non-void function should return a value. registers_pool.hpp 229
template <typename TReg>
int getFree(int requestedIdx)
{
if (std::is_base_of<Xbyak::Mmx, TReg>::value)
{
....
return idx;
}
else if (....)
{
....
return idx;
}
else if (std::is_same<TReg, Xbyak::Opmask>::value)
{
return getFreeOpmask(requestedIdx);
}
}