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

            Bug ID: 63380
           Summary: Wrong constant folding
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ishiura-compiler at ml dot kwansei.ac.jp

GCC 5.0.0 for x86_64 miscompiles the following code.

   $ cat test.c

    int a = 0, b = 1, c = 0, d = 1, e, f, g, h;
    int
    main ()
    {
      e = 1 >> d;
      f = ((31 / (1 > e)) || c) / 2;
      g = b || a;
      h = 31 / g;
      if (!h)
        __builtin_abort();
      return 0;
    }

   $ x86_64-unknown-linux-gnu-gcc-5.0.0 test.c -O2
   $ ./a.out
   Floating point exception (core dumped)

   $ x86_64-unknown-linux-gnu-gcc-5.0.0 -v
    Using built-in specs.
    COLLECT_GCC=x86_64-unknown-linux-gnu-gcc-5.0.0
    COLLECT_LTO_WRAPPER=/usr/local/x86_64-tools/gcc-
    5.0.0/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper
    Target: x86_64-unknown-linux-gnu
    Configured with: /home/orange3/gcc-master/configure --
    prefix=/usr/local/x86_64-tools/gcc-5.0.0/ --with-gmp=/usr/local/gmp-
    5.1.1/ --with-mpfr=/usr/local/mpfr-3.1.2/ --with-mpc=/usr/local/mpc-
    1.0.1/ --disable-multilib --disable-nls --enable-languages=c
    Thread model: posix
    gcc version 5.0.0 20140922 (experimental) (GCC)

Reply via email to