Skip to content

Commit

Permalink
Fix #12252 Regression: constParameterPointer (danmar#5819)
Browse files Browse the repository at this point in the history
  • Loading branch information
chrchr-github authored Jan 2, 2024
1 parent 14627ca commit 8d64d12
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/astutils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1020,7 +1020,7 @@ bool isAliasOf(const Token* tok, const Token* expr, int* indirect, bool* inconcl
if (val.isLocalLifetimeValue() || (pointer && val.isSymbolicValue() && val.intvalue == 0)) {
if (findAstNode(val.tokvalue,
[&](const Token* aliasTok) {
return aliasTok->exprId() == childTok->exprId();
return aliasTok != childTok && aliasTok->exprId() == childTok->exprId();
})) {
if (val.isInconclusive() && inconclusive != nullptr) {
value = &val;
Expand Down
9 changes: 9 additions & 0 deletions test/testother.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3991,6 +3991,15 @@ class TestOther : public TestFixture {
"}\n");
ASSERT_EQUALS("[test.cpp:2]: (style) Parameter 's' can be declared as pointer to const\n",
errout.str());

check("void f(char *a1, char *a2) {\n" // #12252
" char* b = new char[strlen(a1) + strlen(a2) + 2];\n"
" sprintf(b, \"%s_%s\", a1, a2);\n"
" delete[] b;\n"
"}\n");
ASSERT_EQUALS("[test.cpp:1]: (style) Parameter 'a1' can be declared as pointer to const\n"
"[test.cpp:1]: (style) Parameter 'a2' can be declared as pointer to const\n",
errout.str());
}

void switchRedundantAssignmentTest() {
Expand Down

0 comments on commit 8d64d12

Please sign in to comment.