diff --git a/lib/checkunusedvar.cpp b/lib/checkunusedvar.cpp index 3a38fe28e3ca..55e152ea4bb2 100644 --- a/lib/checkunusedvar.cpp +++ b/lib/checkunusedvar.cpp @@ -1536,14 +1536,10 @@ void CheckUnusedVar::checkStructMemberUsage() // Bailout if struct is used in structured binding for (const Variable *var : symbolDatabase->variableList()) { - if (!var || !Token::simpleMatch(var->typeStartToken(), "auto")) + if (!var || !Token::Match(var->typeStartToken(), "auto &|&&| [ %varid%", var->declarationId())) continue; - const Token *tok = var->nameToken()->previous(); - if (!Token::simpleMatch(tok, "[")) - continue; - - tok = tok->link(); + const Token *tok = var->nameToken()->previous()->link(); if (!Token::Match(tok, "] %assign%")) continue;