https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81694

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amonakov at gcc dot gnu.org
         Resolution|WONTFIX                     |INVALID

--- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
(Andrew, the correct resolution here is INVALID, not WONTFIX)

The value assigned to m_index is computed in a signed type:

static int ReadNumber(BStream& strm)
{
    int code;
    int val = 0;

    do {
        code = strm.getByte();
    }
    while( !isdigit( code ));

    do {
        val = val*10 + code;
        code = strm.getByte();
    }
    while( isdigit(code));

    return val;
}

and therefore overflowing 'val' invokes undefined behavior.

Reply via email to