diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 9a3e646a2..1887e9549 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -1985,6 +1985,8 @@ bool Variable::arrayDimensions(const Library* lib) } if (dim) dim = dim->next(); + if (dim && dim->str() == ")") + dim = dim->next(); bool arr = false; while (dim && dim->next() && dim->str() == "[") { diff --git a/test/testsymboldatabase.cpp b/test/testsymboldatabase.cpp index e0bafaf24..7b3fca60b 100644 --- a/test/testsymboldatabase.cpp +++ b/test/testsymboldatabase.cpp @@ -972,16 +972,16 @@ private: if (db) { ASSERT_EQUALS(10, db->getVariableListSize() - 1); - ASSERT_EQUALS(true, db->getVariableFromVarId(1) != nullptr); + ASSERT_EQUALS(true, db->getVariableFromVarId(1) && db->getVariableFromVarId(1)->dimensions().size() == 1); ASSERT_EQUALS(true, db->getVariableFromVarId(2) != nullptr); - ASSERT_EQUALS(true, db->getVariableFromVarId(3) != nullptr); + ASSERT_EQUALS(true, db->getVariableFromVarId(3) && db->getVariableFromVarId(3)->dimensions().size() == 0); ASSERT_EQUALS(true, db->getVariableFromVarId(4) != nullptr); ASSERT_EQUALS(true, db->getVariableFromVarId(5) != nullptr); - ASSERT_EQUALS(true, db->getVariableFromVarId(6) != nullptr); - ASSERT_EQUALS(true, db->getVariableFromVarId(7) != nullptr); - ASSERT_EQUALS(true, db->getVariableFromVarId(8) != nullptr); - ASSERT_EQUALS(true, db->getVariableFromVarId(9) != nullptr); - ASSERT_EQUALS(true, db->getVariableFromVarId(10) != nullptr); + ASSERT_EQUALS(true, db->getVariableFromVarId(6) && db->getVariableFromVarId(6)->dimensions().size() == 1); + ASSERT_EQUALS(true, db->getVariableFromVarId(7) && db->getVariableFromVarId(7)->dimensions().size() == 1); + ASSERT_EQUALS(true, db->getVariableFromVarId(8) && db->getVariableFromVarId(8)->dimensions().size() == 1); + ASSERT_EQUALS(true, db->getVariableFromVarId(9) && db->getVariableFromVarId(9)->dimensions().size() == 1); + ASSERT_EQUALS(true, db->getVariableFromVarId(10) && db->getVariableFromVarId(10)->dimensions().size() == 1); ASSERT_EQUALS("", errout.str()); } }