Ping.
Thanks,
Kyrill
2013-08-14 Kyrylo Tkachov
PR tree-optimization/58088
* fold-const.c (mask_with_trailing_zeros): New function.
(fold_binary_loc): Make sure we don't recurse infinitely
when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
> Also, the ChangeLog entries should be:
>
> 2013-08-08 Kyrylo Tkachov
>
> PR tree-optimization/58088
> * gcc/fold-const.c (mask_with_trailing_zeros): New function.
> (fold_binary_loc): Make sure we don't recurse infinitely
> when the X in (X & C1) | C2 is a tree of the
> Ok for trunk?
>
> Bootstrapped on x86_64-linux-gnu and tested arm-none-eabi on qemu.
>
>
> Thanks,
> Kyrill
> * gcc.c-torture/compile/pr58088.c: New test.
Also, the ChangeLog entries should be:
2013-08-08 Kyrylo Tkachov
PR tree-optimization/58088
* gcc/fold-const.c
> This issue is present in 4.8.1 as well as trunk. However, I think 4.8
> uses a different API for double_int, so this patch will need to be reworked
for
> 4.8.
Actually, I was confused. This patch applies to 4.8.1 as well and fixes the
issue. Passes bootstrap on x86_64-linux-gnu and testing arm-n