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

            Bug ID: 84220
           Summary: rs6000 builtin __builtin_vec_sld() ICEs on invalid 3rd
                    argument
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bergner at gcc dot gnu.org
  Target Milestone: ---

Calling the __builtin_vec_sld() builtin with an invalid 3rd argument (should be
an int), we end up generating invalid gimple and we end up ICEing:

bergner@pike:~/gcc/BUGS/$
/home/bergner/gcc/build/gcc-fsf-mainline-base/gcc/xgcc
-B/home/bergner/gcc/build/gcc-fsf-mainline-base/gcc -S bug.i 
bug.i: In function ‘foo’:
bug.i:5:3: internal compiler error: in fold_convert_loc, at fold-const.c:2402
   return __builtin_vec_sld(a, b, c);
   ^~~~~~
0x105333e7 fold_convert_loc(unsigned int, tree_node*, tree_node*)
        /home/bergner/gcc/gcc-fsf-mainline-base/gcc/fold-const.c:2401
0x102d0f33 fully_fold_convert
       
/home/bergner/gcc/gcc-fsf-mainline-base/gcc/config/rs6000/rs6000-c.c:6000
0x102d119f altivec_build_resolved_builtin
       
/home/bergner/gcc/gcc-fsf-mainline-base/gcc/config/rs6000/rs6000-c.c:6067
0x102d5cb3 altivec_resolve_overloaded_builtin(unsigned int, tree_node*, void*)
       
/home/bergner/gcc/gcc-fsf-mainline-base/gcc/config/rs6000/rs6000-c.c:6951
0x1026612b resolve_overloaded_builtin(unsigned int, tree_node*, vec<tree_node*,
va_gc, vl_embed>*)
        /home/bergner/gcc/gcc-fsf-mainline-base/gcc/c-family/c-common.c:7101
0x101baebf c_build_function_call_vec(unsigned int, vec<unsigned int, va_heap,
vl_ptr>, tree_node*, vec<tree_node*, va_gc, vl_embed>*, vec<tree_node*, va_gc,
vl_embed>*)
        /home/bergner/gcc/gcc-fsf-mainline-base/gcc/c/c-typeck.c:3175

Reply via email to