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
>
> --

Reply via email to