zerodiv
Hi, I found a false negative in Cppcheck 2.21.0 when a zero stored in an aggregate member is used as the divisor.
Affected checker
Cppcheck zerodiv
Minimal reproducer
struct Value { int number; }; int divide_by_zero_initialized_member() { Value value{0}; return 1 / value.number; }
Reproduction command
cppcheck --version cppcheck --enable=warning --std=c++11 --checkers-report=checkers.txt --template='{file}:{line}:{column}: [{id}] {message}' cppcheck-zerodiv-fn-object-member.cpp
Current behavior
Cppcheck produces neither a zerodiv nor a zerodivcond diagnostic. The checker report lists CheckOther::checkZeroDivision as active.
zerodivcond
CheckOther::checkZeroDivision
Expected behavior
Cppcheck should report zerodiv at line 7 because aggregate initialization sets value.number to zero.
value.number
See https://trac.cppcheck.net/ticket/8832, https://trac.cppcheck.net/ticket/14049
Log in to post a comment.
FALSE NEGATIVE:
zerodivmisses a zero-initialized object memberHi, I found a false negative in Cppcheck 2.21.0 when a zero stored in an aggregate member is used as the divisor.
Affected checker
Cppcheck zerodivMinimal reproducer
Reproduction command
Current behavior
Cppcheck produces neither a
zerodivnor azerodivconddiagnostic. The checker report listsCheckOther::checkZeroDivisionas active.Expected behavior
Cppcheck should report
zerodivat line 7 because aggregate initialization setsvalue.numberto zero.See https://trac.cppcheck.net/ticket/8832, https://trac.cppcheck.net/ticket/14049