@@ -2885,15 +2885,6 @@ static void valueFlowReverse(TokenList* tokenlist,
28852885 valueFlowReverse (tok, nullptr , varToken, values, tokenlist, settings);
28862886}
28872887
2888- static bool isUniqueSmartPointer (const Token* tok)
2889- {
2890- if (!astIsSmartPointer (tok))
2891- return false ;
2892- if (!tok->valueType ()->smartPointer )
2893- return false ;
2894- return tok->valueType ()->smartPointer ->unique ;
2895- }
2896-
28972888std::string lifetimeType (const Token *tok, const ValueFlow::Value *val)
28982889{
28992890 std::string result;
@@ -3090,8 +3081,7 @@ static std::vector<LifetimeToken> getLifetimeTokens(const Token* tok,
30903081 return {{tok, std::move (errorPath)}};
30913082 const Variable *tokvar = vartok->variable ();
30923083 const bool isContainer = astIsContainer (vartok) && !astIsPointer (vartok);
3093- if (!isUniqueSmartPointer (vartok) && !isContainer &&
3094- !(tokvar && tokvar->isArray () && !tokvar->isArgument ()) &&
3084+ if (!astIsUniqueSmartPointer (vartok) && !isContainer && !(tokvar && tokvar->isArray () && !tokvar->isArgument ()) &&
30953085 (Token::Match (vartok->astParent (), " [|*" ) || vartok->astParent ()->originalName () == " ->" )) {
30963086 for (const ValueFlow::Value &v : vartok->values ()) {
30973087 if (!v.isLocalLifetimeValue ())
@@ -4158,7 +4148,7 @@ static void valueFlowLifetime(TokenList *tokenlist, SymbolDatabase*, ErrorLogger
41584148 valueFlowLifetimeFunction (tok, tokenlist, errorLogger, settings);
41594149 }
41604150 // Unique pointer lifetimes
4161- else if (isUniqueSmartPointer (tok) && astIsLHS (tok) && Token::simpleMatch (tok->astParent (), " . get ( )" )) {
4151+ else if (astIsUniqueSmartPointer (tok) && astIsLHS (tok) && Token::simpleMatch (tok->astParent (), " . get ( )" )) {
41624152 Token* ptok = tok->astParent ()->tokAt (2 );
41634153 ErrorPath errorPath = {{ptok, " Raw pointer to smart pointer created here." }};
41644154 ValueFlow::Value value;
0 commit comments