[Bug tree-optimization/95821] Failure to optimize strchr to use memchr for string constant

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Dec 22 07:39:37 GMT 2021


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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #2)
> Confirmed.
> auto f(char c)
> {
>   auto t = "123";
>   int t1;
>   switch (c)
>     {
>        case '1':
>          t1 = 1;
>        case '2':
>          t1 = 2;
>        case '3':
>          t1 = 3;
>        default:
>          t = 0;
>          return t;
>     }
>    return t+t1;
> }

I missed '\0' (and break's):

auto f(char c)
{
  auto t = "123";
  int t1;
  switch (c)
    {
       case '1':
         t1 = 1;
         break;
       case '2':
         t1 = 2;
         break;
       case '3':
         t1 = 3;
         break;
       case '\0':
         t1 = 4;
         break;
       default:
         t = 0;
         return t;
    }
   return t+t1;
}


More information about the Gcc-bugs mailing list