https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68816
Bug ID: 68816
Summary: gcc fails to detect pointer overflow leading to
undefined behaviour
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
extern void g( const char *);
void
f( const char * start, unsigned long ul)
{
if (start + ul < start)
g( start);
}
Here is cppcheck detecting the problem:
[dec4a.cc:15]: (warning) Invalid test for overflow 'start+ul<start'. Condition
is always false unless there is overflow, and overflow is Undefined Behaviour.