https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109564
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #9)
> Simplified a bit more to:
> 
> struct libkeccak_generalised_spec {
>   int state_size;
>   int word_size;
> } main_gspec;
> 
> long gvar;
> 
> int libkeccak_degeneralise_spec(struct libkeccak_generalised_spec *spec) {
>   int state_size;
>   int have_state_size = spec->state_size != -1;
>   int have_word_size = spec->word_size;
> 
>   if (have_state_size)
>     state_size = spec->state_size;
>   if (have_word_size)
>     gvar = 12345;
>   if (have_state_size && state_size != spec->word_size)
>     return 1;
>   if (spec)
>     gvar++;
>   return 0;
> }
> 
> int main() {
>   main_gspec.state_size = -1;
>   if (libkeccak_degeneralise_spec(&main_gspec))
>     __builtin_abort();
> }

One difference is that this testcase is fixed with -fno-thread-jumps while
the attached reduced one is not (it requires -fno-tree-dominator-opts).

Reply via email to