diff --git a/lib/check64bit.cpp b/lib/check64bit.cpp index 221aea0eb..7e4da9b11 100644 --- a/lib/check64bit.cpp +++ b/lib/check64bit.cpp @@ -39,7 +39,7 @@ static bool isaddr(const Variable *var) /** Is given variable an integer variable */ static bool isint(const Variable *var) { - return (var && var->isIntegralType() && !var->isArrayOrPointer()); + return (var && var->isIntegralType() && !var->isArrayOrPointer() && var->typeStartToken()->str() != "bool"); } void Check64BitPortability::pointerassignment() diff --git a/test/test64bit.cpp b/test/test64bit.cpp index 3913349fd..142b208c7 100644 --- a/test/test64bit.cpp +++ b/test/test64bit.cpp @@ -100,6 +100,12 @@ private: " return 6 + p[2] * 256;\n" "}"); ASSERT_EQUALS("", errout.str()); + + check("int foo(int *p) {\n" // #6096 + " bool a = p;\n" + " return a;\n" + "}"); + ASSERT_EQUALS("", errout.str()); } void structmember() {