// having an explicit constructor for attachable would
// make it harder to use and its a library internal anyways
noExplicitConstructor:libcaf_core/caf/attachable.hpp

// cppcheck complains about padding1 and padding2 not
// being initialized, which is silly (never used anywhere)
uninitMemberVar:libcaf_io/caf/io/basp/header.hpp

// converting raw pointers to intrusive pointers is
// a common operation (e.g. getting a smart pointer to self)
noExplicitConstructor:libcaf_core/caf/intrusive_ptr.hpp
noExplicitConstructor:libcaf_core/caf/weak_intrusive_ptr.hpp

// cppcheck complains about `node_id(const invalid_node_id_t&)`,
// which must not be explicit because `invalid_node_id_t` would
// be completely useless otherwise, the same is true for
// - `message_id(invalid_message_id_t)`
noExplicitConstructor:libcaf_core/caf/node_id.hpp
noExplicitConstructor:libcaf_core/caf/message_id.hpp

// the ctor `duration(std::chrono::duration<Rep, Period> d)`
// is not explicit on purpose
noExplicitConstructor:libcaf_core/caf/duration.hpp

// making this explicit only makes API worse
noExplicitConstructor:libcaf_core/caf/detail/scope_guard.hpp

// `operator=(const ref_counted&)` does not assign `rc_`
// on purpose because this would corrupt reference counting
operatorEqVarError:libcaf_core/src/ref_counted.cpp

// cppcheck complains about not initializing the pad members
uninitMemberVar:libcaf_core/caf/detail/double_ended_queue.hpp

// making the policy functions static is technically possible,
// but conceptionally questionable
functionStatic:libcaf_core/caf/policy/work_stealing.hpp

// 9 false positives
*:libcaf_core/caf/optional.hpp

// in theory always true, but the unit test still needs to check
knownConditionTrueFalse:libcaf_core/test/optional.cpp

// ignore warnings from any 3rd party module
*:*/third_party/*

// 6 false positives
*:libcaf_core/caf/detail/limited_vector.hpp

// `test_struct::test_value` is unused since this file tests `announce`
unusedStructMember:libcaf_io/test/uniform_type.cpp

// `exit_reason::as_string` is unused in this .cpp file, but part of the API,
// same is true for other falsely reported unused functions
unusedFunction:libcaf_core/src/exit_reason.cpp
unusedFunction:libcaf_core/src/shared_spinlock.cpp
unusedFunction:libcaf_io/src/interfaces.cpp
unusedFunction:libcaf_io/src/max_msg_size.cpp

// making only some overloads of `abstract_uniform_type_info::eq`
// static fails on MSVC
functionStatic:bcaf_core/caf/abstract_uniform_type_info.hpp

// functions are used in a macro in opencl/smart_ptr.hpp
unusedFunction:libcaf_opencl/src/global.cpp

// suppress false positives
unusedStructMember:libcaf_core/test/serialization.cpp
