@@ -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
@@ -3327,7 +3327,8 @@ void CheckOther::checkRedundantCopy()
33273327 const Token* varTok = fScope ->bodyEnd ->tokAt (-2 );
33283328 if (varTok->variable () && !varTok->variable ()->isGlobal () &&
33293329 (!varTok->variable ()->type () || !varTok->variable ()->type ()->classScope ||
3330- (varTok->variable ()->valueType () && ValueFlow::getSizeOf (*varTok->variable ()->valueType (), *mSettings , ValueFlow::Accuracy::LowerBound) > 2 * mSettings ->platform .sizeof_pointer )))
3330+ (varTok->variable ()->valueType () &&
3331+ varTok->variable ()->valueType ()->getSizeOf (*mSettings , ValueType::Accuracy::LowerBound, ValueType::SizeOf::Pointer) > 2 * mSettings ->platform .sizeof_pointer )))
33313332 redundantCopyError (startTok, startTok->str ());
33323333 }
33333334 }
@@ -3447,7 +3448,7 @@ void CheckOther::checkIncompleteArrayFill()
34473448 if (size == 0 && var->valueType ()->pointer )
34483449 size = mSettings ->platform .sizeof_pointer ;
34493450 else if (size == 0 && var->valueType ())
3450- size = ValueFlow::getSizeOf (* var->valueType (), *mSettings , ValueFlow ::Accuracy::LowerBound);
3451+ size = var->valueType ()-> getSizeOf ( *mSettings , ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
34513452 const Token* tok3 = tok->next ()->astOperand2 ()->astOperand1 ()->astOperand1 ();
34523453 if ((size != 1 && size != 100 && size != 0 ) || var->isPointer ()) {
34533454 if (printWarning)
@@ -4430,8 +4431,7 @@ static UnionMember parseUnionMember(const Variable &var,
44304431 if (var.isArray ()) {
44314432 size = var.dimension (0 );
44324433 } else if (vt != nullptr ) {
4433- size = ValueFlow::getSizeOf (*vt, settings,
4434- ValueFlow::Accuracy::ExactOrZero);
4434+ size = vt->getSizeOf (settings, ValueType::Accuracy::ExactOrZero, ValueType::SizeOf::Pointer);
44354435 }
44364436 return UnionMember (nameToken->str (), size);
44374437}
@@ -4523,7 +4523,7 @@ static bool getBufAndOffset(const Token *expr, const Token *&buf, MathLib::bigin
45234523 bufToken = expr->astOperand1 ()->astOperand1 ();
45244524 offsetToken = expr->astOperand1 ()->astOperand2 ();
45254525 if (expr->astOperand1 ()->valueType ())
4526- elementSize = ValueFlow::getSizeOf (* expr->astOperand1 ()->valueType (), settings, ValueFlow ::Accuracy::LowerBound);
4526+ elementSize = expr->astOperand1 ()->valueType ()-> getSizeOf ( settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45274527 } else if (Token::Match (expr, " +|-" ) && expr->isBinaryOp ()) {
45284528 const bool pointer1 = (expr->astOperand1 ()->valueType () && expr->astOperand1 ()->valueType ()->pointer > 0 );
45294529 const bool pointer2 = (expr->astOperand2 ()->valueType () && expr->astOperand2 ()->valueType ()->pointer > 0 );
@@ -4532,13 +4532,13 @@ static bool getBufAndOffset(const Token *expr, const Token *&buf, MathLib::bigin
45324532 offsetToken = expr->astOperand2 ();
45334533 auto vt = *expr->astOperand1 ()->valueType ();
45344534 --vt.pointer ;
4535- elementSize = ValueFlow:: getSizeOf (vt, settings, ValueFlow ::Accuracy::LowerBound);
4535+ elementSize = vt. getSizeOf (settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45364536 } else if (!pointer1 && pointer2) {
45374537 bufToken = expr->astOperand2 ();
45384538 offsetToken = expr->astOperand1 ();
45394539 auto vt = *expr->astOperand2 ()->valueType ();
45404540 --vt.pointer ;
4541- elementSize = ValueFlow:: getSizeOf (vt, settings, ValueFlow ::Accuracy::LowerBound);
4541+ elementSize = vt. getSizeOf (settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45424542 } else {
45434543 return false ;
45444544 }
@@ -4547,7 +4547,7 @@ static bool getBufAndOffset(const Token *expr, const Token *&buf, MathLib::bigin
45474547 *offset = 0 ;
45484548 auto vt = *expr->valueType ();
45494549 --vt.pointer ;
4550- elementSize = ValueFlow:: getSizeOf (vt, settings, ValueFlow ::Accuracy::LowerBound);
4550+ elementSize = vt. getSizeOf (settings, ValueType ::Accuracy::LowerBound, ValueType::SizeOf::Pointer );
45514551 if (elementSize > 0 ) {
45524552 *offset *= elementSize;
45534553 if (sizeValue)
0 commit comments