On Wed, Sep 7, 2022 at 12:58 PM Jan-Benedict Glaw <jbg...@lug-owl.de> wrote: > > Hi! > > On Wed, 2022-07-13 09:50:14 -0700, H.J. Lu via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > When memchr is applied on a constant string of no more than the bytes of > > a word, simplify memchr by checking each byte in the constant string. > > > > int f (int a) > > { > > return __builtin_memchr ("AE", a, 2) != 0; > > } > > > > is simplified to > > > > int f (int a) > > { > > return ((char) a == 'A' || (char) a == 'E') != 0; > > } > > Seems this caused a regression for --target=avr-elf, pru-elf and > rl78-elf: > > .../gcc/configure --prefix=... --enable-werror-always --enable-languages=all > --disable-gcov --disable-shared --disable-threads --target=pru-elf > --without-headers > [...] > make V=1 all-gcc > [...] > /usr/lib/gcc-snapshot/bin/g++ -fno-PIE -c -g -O2 -DIN_GCC > -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti > -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings > -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic > -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror > -fno-common -DHAVE_CONFIG_H -I. -I. -I../../gcc/gcc -I../../gcc/gcc/. > -I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include > -I../../gcc/gcc/../libcody -I../../gcc/gcc/../libdecnumber > -I../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber > -I../../gcc/gcc/../libbacktrace -o tree-ssa-forwprop.o -MT > tree-ssa-forwprop.o -MMD -MP -MF ./.deps/tree-ssa-forwprop.TPo > ../../gcc/gcc/tree-ssa-forwprop.cc > ../../gcc/gcc/tree-ssa-forwprop.cc: In function 'bool > simplify_builtin_call(gimple_stmt_iterator*, tree)': > ../../gcc/gcc/tree-ssa-forwprop.cc:1258:42: error: array subscript 1 is > outside array bounds of 'tree_node* [1]' [-Werror=array-bounds] > 1258 | op[i - 1] = fold_convert_loc (loc, boolean_type_node, > | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ > 1259 | fold_build2_loc (loc, > | ~~~~~~~~~~~~~~~~~~~~~ > 1260 | > BIT_IOR_EXPR, > | > ~~~~~~~~~~~~~ > 1261 | > boolean_type_node, > | > ~~~~~~~~~~~~~~~~~~ > 1262 | op[i - 1], > | ~~~~~~~~~~ > 1263 | op[i])); > | ~~~~~~~ > In file included from ../../gcc/gcc/system.h:707, > from ../../gcc/gcc/tree-ssa-forwprop.cc:21: > ../../gcc/gcc/../include/libiberty.h:733:36: note: at offset 8 into object of > size [0, 8] allocated by '__builtin_alloca' > 733 | # define alloca(x) __builtin_alloca(x) > | ~~~~~~~~~~~~~~~~^~~ > ../../gcc/gcc/../include/libiberty.h:365:40: note: in expansion of macro > 'alloca' > 365 | #define XALLOCAVEC(T, N) ((T *) alloca (sizeof (T) * (N))) > | ^~~~~~ > ../../gcc/gcc/tree-ssa-forwprop.cc:1250:22: note: in expansion of macro > 'XALLOCAVEC' > 1250 | tree *op = XALLOCAVEC (tree, isize); > | ^~~~~~~~~~ > cc1plus: all warnings being treated as errors > make[1]: *** [Makefile:1146: tree-ssa-forwprop.o] Error 1 > make[1]: Leaving directory > '/var/lib/laminar/run/gcc-pru-elf/1/toolchain-build/gcc' > make: *** [Makefile:4583: all-gcc] Error 2
can you open a bugreport please? > Thanks, > Jan-Benedict > > --