[Bug sanitizer/64906] New: -fsanitize=integer-divide-by-zero creates false -Wmaybe-uninitialized warning

sirl at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Feb 2 18:25:00 GMT 2015


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

            Bug ID: 64906
           Summary: -fsanitize=integer-divide-by-zero creates false
                    -Wmaybe-uninitialized warning
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sirl at gcc dot gnu.org
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org

This testcase produces a false warning when compiled with -O2
-fsanitize=integer-divide-by-zero -Wmaybe-uninitialized:

struct s {
    __SIZE_TYPE__ size;
    unsigned int flags;
};

int testf(struct s * source)
{
    __SIZE_TYPE__ msize = 0;
    if ((source->flags & 88) ? (__SIZE_TYPE__) 43 * 8 : 0)
        msize = source->size / ((source->flags & 88) ? (__SIZE_TYPE__) 43 * 8:
0);
    return msize;
}

test.c: In function 'testf':
test.c:11:8: warning: 'iftmp.1' may be used uninitialized in this function
[-Wmaybe-uninitialized]
  msize = source->size / ((source->flags & 88) ? (__SIZE_TYPE__) 43 * 8: 0);
        ^



More information about the Gcc-bugs mailing list