diff --git a/lib/checkother.cpp b/lib/checkother.cpp index abb323ed0d1..18407800aa3 100644 --- a/lib/checkother.cpp +++ b/lib/checkother.cpp @@ -1580,7 +1580,7 @@ void CheckOther::checkConstPointer() } } else { int argn = -1; - if (Token::Match(parent, "%oror%|%comp%|&&|?|!|-")) + if (Token::Match(parent, "%oror%|%comp%|&&|?|!|-|<<")) continue; if (Token::simpleMatch(parent, "(") && Token::Match(parent->astOperand1(), "if|while")) continue; diff --git a/test/testother.cpp b/test/testother.cpp index 0615492fbdb..3b04072e0e4 100644 --- a/test/testother.cpp +++ b/test/testother.cpp @@ -3882,6 +3882,13 @@ class TestOther : public TestFixture { ASSERT_EQUALS("[test.cpp:1]: (style) Parameter 'r' can be declared as pointer to const\n" "[test.cpp:1]: (style) Parameter 'b' can be declared as pointer to const\n", errout.str()); + + check("void f(int i) {\n" // #12185 + " void* p = &i;\n" + " std::cout << p << '\\n';\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:2]: (style) Variable 'p' can be declared as pointer to const\n", + errout.str()); } void switchRedundantAssignmentTest() { @@ -8436,7 +8443,7 @@ class TestOther : public TestFixture { " ptr = otherPtr;\n" " free(otherPtr - xx - 1);\n" "}"); - ASSERT_EQUALS("", errout.str()); + ASSERT_EQUALS("[test.cpp:2]: (style) Variable 'ptr' can be declared as pointer to const\n", errout.str()); } void checkRedundantCopy() {