http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56759



             Bug #: 56759

           Summary: result of __builtin_constant_p( ) is not constant

                    enough for __builtin_choose_expr( )

    Classification: Unclassified

           Product: gcc

           Version: 4.8.1

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: middle-end

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: gcc-bugzi...@codyps.com





Testcase:

---

static inline int x(int y)

{

    return __builtin_choose_expr(__builtin_constant_p(y), 1, 0);

}



int foo(void)

{

    return x(3);

}

---





$ i386-linux-gcc constant_not_constant.c  -O3 -c

constant_not_constant.c: In function 'x':

constant_not_constant.c:4:9: error: first argument to '__builtin_choose_expr'

not a constant

  return __builtin_choose_expr(__builtin_constant_p(y), 1, 0);

         ^



$ i386-linux-gcc -v

Using built-in specs.

COLLECT_GCC=i386-linux-gcc

COLLECT_LTO_WRAPPER=/home/cody/x-buildall/libexec/gcc/i386-linux/4.8.1/lto-wrapper

Target: i386-linux

Configured with: /home/cody/g/gcc/configure --target=i386-linux

--enable-targets=all --prefix=/home/cody/x-buildall --enable-languages=c

--without-headers --enable-sjlj-exceptions --with-system-libunwind

--disable-nls --disable-threads --disable-shared --disable-libmudflap

--disable-libssp --disable-libgomp --disable-decimal-float

--disable-libquadmath --enable-checking=release --disable-libatomic :

(reconfigured) /home/cody/g/gcc/configure --target=i386-linux

--enable-targets=all --prefix=/home/cody/x-buildall --enable-languages=c

--without-headers --enable-sjlj-exceptions --with-system-libunwind

--disable-nls --disable-threads --disable-shared --disable-libmudflap

--disable-libssp --disable-libgomp --disable-decimal-float

--disable-libquadmath --enable-checking=release --disable-libatomic :

(reconfigured) /home/cody/g/gcc/configure --target=i386-linux

--enable-targets=all --prefix=/home/cody/x-buildall --enable-languages=c

--without-headers --enable-sjlj-exceptions --with-system-libunwind

--disable-nls --disable-threads --disable-shared --disable-libmudflap

--disable-libssp --disable-libgomp --disable-decimal-float

--disable-libquadmath --enable-checking=release --disable-libatomic :

(reconfigured) /home/cody/g/gcc/configure --target=i386-linux

--enable-targets=all --prefix=/home/cody/x-buildall --enable-languages=c

--without-headers --enable-sjlj-exceptions --with-system-libunwind

--disable-nls --disable-threads --disable-shared --disable-libmudflap

--disable-libssp --disable-libgomp --disable-decimal-float

--disable-libquadmath --enable-checking=release --disable-libatomic

Thread model: single

gcc version 4.8.1 20130328 (prerelease) (GCC)

Reply via email to