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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Sam James from comment #2)
> Changing it to:
> ```
> int a, b;
> 
> int c(int f, int g) {
>   for (int d = 0; d <= 4; d++) {
>     int e = 1 << f;
>     if (g & e)
>       return d;
>   }
>   return 5;
> }
> 
> int h(int f, int g) {
>   if ((c(g - 50, g) + g + g) & 1);
>   else if (f)
>       a = 1;
>   return a;
> }
> 
> int main() {
>   if (h(b + 5, b + 63) != 0)
>       __builtin_abort();
>   return 0;
> }
> ```
> 
> it works at -O3.
Just mark h as noinline.

Reply via email to