MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / isRaiiClass

Function isRaiiClass

lib/checkunusedvar.cpp:53–94  ·  view source on GitHub ↗

Is ValueType a raii class? */

Source from the content-addressed store, hash-verified

51
52/** Is ValueType a raii class? */
53static bool isRaiiClass(const ValueType *valueType, bool cpp, bool defaultReturn = true)
54{
55 if (!cpp)
56 return false;
57
58 if (!valueType)
59 return defaultReturn;
60
61 if ((valueType->smartPointerType && isRaiiClassScope(valueType->smartPointerType->classScope)) || (!valueType->smartPointerType && valueType->type == ValueType::Type::SMART_POINTER))
62 return true;
63
64 switch (valueType->type) {
65 case ValueType::Type::UNKNOWN_TYPE:
66 case ValueType::Type::NONSTD:
67 return defaultReturn;
68
69 case ValueType::Type::RECORD:
70 if (isRaiiClassScope(valueType->typeScope))
71 return true;
72 return defaultReturn;
73
74 case ValueType::Type::POD:
75 case ValueType::Type::SMART_POINTER:
76 case ValueType::Type::CONTAINER:
77 case ValueType::Type::ITERATOR:
78 case ValueType::Type::VOID:
79 case ValueType::Type::BOOL:
80 case ValueType::Type::CHAR:
81 case ValueType::Type::SHORT:
82 case ValueType::Type::WCHAR_T:
83 case ValueType::Type::INT:
84 case ValueType::Type::LONG:
85 case ValueType::Type::LONGLONG:
86 case ValueType::Type::UNKNOWN_INT:
87 case ValueType::Type::FLOAT:
88 case ValueType::Type::DOUBLE:
89 case ValueType::Type::LONGDOUBLE:
90 return false;
91 }
92
93 return defaultReturn;
94}
95
96/**
97 * @brief This class is used create a list of variables within a function.

Callers 1

Calls 1

isRaiiClassScopeFunction · 0.85

Tested by

no test coverage detected