Skip to content

Commit 347823d

Browse files
committed
vf_settokenvalue.cpp: void unnecessary copy in setTokenValue()
1 parent bd75fca commit 347823d

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

lib/vf_settokenvalue.cpp

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -346,27 +346,26 @@ namespace ValueFlow
346346
setTokenValue(parent, std::move(value), settings);
347347
return;
348348
}
349-
Value pvalue = value;
350349
if (!value.subexpressions.empty() && Token::Match(parent, ". %var%")) {
351350
if (contains(value.subexpressions, parent->strAt(1)))
352-
pvalue.subexpressions.clear();
351+
value.subexpressions.clear();
353352
else
354353
return;
355354
}
356355
if (parent->isUnaryOp("&")) {
357-
pvalue.indirect++;
358-
setTokenValue(parent, std::move(pvalue), settings);
356+
value.indirect++;
357+
setTokenValue(parent, std::move(value), settings);
359358
} else if (Token::Match(parent, ". %var%") && parent->astOperand1() == tok && parent->astOperand2()) {
360-
if (parent->originalName() == "->" && pvalue.indirect > 0)
361-
pvalue.indirect--;
362-
setTokenValue(parent->astOperand2(), std::move(pvalue), settings);
359+
if (parent->originalName() == "->" && value.indirect > 0)
360+
value.indirect--;
361+
setTokenValue(parent->astOperand2(), std::move(value), settings);
363362
} else if (Token::Match(parent->astParent(), ". %var%") && parent->astParent()->astOperand1() == parent) {
364-
if (parent->astParent()->originalName() == "->" && pvalue.indirect > 0)
365-
pvalue.indirect--;
366-
setTokenValue(parent->astParent()->astOperand2(), std::move(pvalue), settings);
367-
} else if (parent->isUnaryOp("*") && pvalue.indirect > 0) {
368-
pvalue.indirect--;
369-
setTokenValue(parent, std::move(pvalue), settings);
363+
if (parent->astParent()->originalName() == "->" && value.indirect > 0)
364+
value.indirect--;
365+
setTokenValue(parent->astParent()->astOperand2(), std::move(value), settings);
366+
} else if (parent->isUnaryOp("*") && value.indirect > 0) {
367+
value.indirect--;
368+
setTokenValue(parent, std::move(value), settings);
370369
}
371370
return;
372371
}

0 commit comments

Comments
 (0)