@@ -1524,7 +1524,7 @@ static bool isLargeContainer(const Variable* var, const Settings& settings)
15241524 return false ;
15251525 }
15261526 const ValueType vtElem = ValueType::parseDecl (vt->containerTypeToken , settings);
1527- const auto elemSize = std::max<std::size_t >(ValueFlow:: getSizeOf (vtElem, settings, ValueFlow ::Accuracy::LowerBound), 1 );
1527+ const auto elemSize = std::max<std::size_t >(vtElem. getSizeOf (settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer ), 1 );
15281528 const auto arraySize = var->dimension (0 ) * elemSize;
15291529 return arraySize > maxByValueSize;
15301530}
@@ -1564,7 +1564,7 @@ void CheckOther::checkPassByReference()
15641564 // Ensure that it is a large object.
15651565 if (!var->type ()->classScope )
15661566 inconclusive = true ;
1567- else if (!var->valueType () || ValueFlow::getSizeOf (* var->valueType (), *mSettings , ValueFlow ::Accuracy::LowerBound) <= 2 * mSettings ->platform .sizeof_pointer )
1567+ else if (!var->valueType () || var->valueType ()-> getSizeOf ( *mSettings , ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer ) <= 2 * mSettings ->platform .sizeof_pointer )
15681568 continue ;
15691569 }
15701570 else
@@ -3320,7 +3320,8 @@ void CheckOther::checkRedundantCopy()
33203320 const Token* varTok = fScope ->bodyEnd ->tokAt (-2 );
33213321 if (varTok->variable () && !varTok->variable ()->isGlobal () &&
33223322 (!varTok->variable ()->type () || !varTok->variable ()->type ()->classScope ||
3323- (varTok->variable ()->valueType () && ValueFlow::getSizeOf (*varTok->variable ()->valueType (), *mSettings , ValueFlow::Accuracy::LowerBound) > 2 * mSettings ->platform .sizeof_pointer )))
3323+ (varTok->variable ()->valueType () &&
3324+ varTok->variable ()->valueType ()->getSizeOf (*mSettings , ValueType::Accuracy::LowerBound, ValueType::SizeOf::Pointer) > 2 * mSettings ->platform .sizeof_pointer )))
33243325 redundantCopyError (startTok, startTok->str ());
33253326 }
33263327 }
@@ -3440,7 +3441,7 @@ void CheckOther::checkIncompleteArrayFill()
34403441 if (size == 0 && var->valueType ()->pointer )
34413442 size = mSettings ->platform .sizeof_pointer ;
34423443 else if (size == 0 && var->valueType ())
3443- size = ValueFlow::getSizeOf (* var->valueType (), *mSettings , ValueFlow ::Accuracy::LowerBound);
3444+ size = var->valueType ()-> getSizeOf ( *mSettings , ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
34443445 const Token* tok3 = tok->next ()->astOperand2 ()->astOperand1 ()->astOperand1 ();
34453446 if ((size != 1 && size != 100 && size != 0 ) || var->isPointer ()) {
34463447 if (printWarning)
@@ -4423,8 +4424,7 @@ static UnionMember parseUnionMember(const Variable &var,
44234424 if (var.isArray ()) {
44244425 size = var.dimension (0 );
44254426 } else if (vt != nullptr ) {
4426- size = ValueFlow::getSizeOf (*vt, settings,
4427- ValueFlow::Accuracy::ExactOrZero);
4427+ size = vt->getSizeOf (settings, ValueType::Accuracy::ExactOrZero, ValueType::SizeOf::Pointer);
44284428 }
44294429 return UnionMember (nameToken->str (), size);
44304430}
@@ -4516,7 +4516,7 @@ static bool getBufAndOffset(const Token *expr, const Token *&buf, MathLib::bigin
45164516 bufToken = expr->astOperand1 ()->astOperand1 ();
45174517 offsetToken = expr->astOperand1 ()->astOperand2 ();
45184518 if (expr->astOperand1 ()->valueType ())
4519- elementSize = ValueFlow::getSizeOf (* expr->astOperand1 ()->valueType (), settings, ValueFlow ::Accuracy::LowerBound);
4519+ elementSize = expr->astOperand1 ()->valueType ()-> getSizeOf ( settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45204520 } else if (Token::Match (expr, " +|-" ) && expr->isBinaryOp ()) {
45214521 const bool pointer1 = (expr->astOperand1 ()->valueType () && expr->astOperand1 ()->valueType ()->pointer > 0 );
45224522 const bool pointer2 = (expr->astOperand2 ()->valueType () && expr->astOperand2 ()->valueType ()->pointer > 0 );
@@ -4525,13 +4525,13 @@ static bool getBufAndOffset(const Token *expr, const Token *&buf, MathLib::bigin
45254525 offsetToken = expr->astOperand2 ();
45264526 auto vt = *expr->astOperand1 ()->valueType ();
45274527 --vt.pointer ;
4528- elementSize = ValueFlow:: getSizeOf (vt, settings, ValueFlow ::Accuracy::LowerBound);
4528+ elementSize = vt. getSizeOf (settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45294529 } else if (!pointer1 && pointer2) {
45304530 bufToken = expr->astOperand2 ();
45314531 offsetToken = expr->astOperand1 ();
45324532 auto vt = *expr->astOperand2 ()->valueType ();
45334533 --vt.pointer ;
4534- elementSize = ValueFlow:: getSizeOf (vt, settings, ValueFlow ::Accuracy::LowerBound);
4534+ elementSize = vt. getSizeOf (settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45354535 } else {
45364536 return false ;
45374537 }
@@ -4540,7 +4540,7 @@ static bool getBufAndOffset(const Token *expr, const Token *&buf, MathLib::bigin
45404540 *offset = 0 ;
45414541 auto vt = *expr->valueType ();
45424542 --vt.pointer ;
4543- elementSize = ValueFlow:: getSizeOf (vt, settings, ValueFlow ::Accuracy::LowerBound);
4543+ elementSize = vt. getSizeOf (settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45444544 if (elementSize > 0 ) {
45454545 *offset *= elementSize;
45464546 if (sizeValue)
0 commit comments