diff --git a/lib/checkclass.cpp b/lib/checkclass.cpp index 25314d6be4f..66ab3578560 100644 --- a/lib/checkclass.cpp +++ b/lib/checkclass.cpp @@ -3311,7 +3311,7 @@ static const Variable* getSingleReturnVar(const Scope* scope) { const Token* const end = Token::findsimplematch(start, ";", 1, scope->bodyEnd); if (!end || end->next() != scope->bodyEnd) return nullptr; - if (start->str() != "return") + if (!start->astOperand1() || start->str() != "return") return nullptr; return start->astOperand1()->variable(); } diff --git a/test/testclass.cpp b/test/testclass.cpp index e6fb80f002e..dc39d59b76f 100644 --- a/test/testclass.cpp +++ b/test/testclass.cpp @@ -8985,6 +8985,7 @@ class TestClass : public TestFixture { " T getT() const { return t; }" " int getI() const { return i; }" " std::string getS() const { return s; }" + " unknown_t f() { return; }" "};"); ASSERT_EQUALS("[test.cpp:1]: (performance) Function 'getT()' should return member 't' by const reference.\n" "[test.cpp:1]: (performance) Function 'getS()' should return member 's' by const reference.\n",