/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-thread3-details-blocks -fno-early-inlining -fno-tree-vrp -fno-tree-dominator-opts" } */

static int a;
static int b;
void test2 ();
void
test ()
{
  b = 7;
}

void
main (int argc)
{
  if (argc)
    {
      a = 7;
      test ();
    }
  else
    a = 0;
  if (a)
    test2 ();
  if (b)
    test2 ();
}
/* { dg-final { scan-tree-dump-times "Registering FSM jump thread" 2 "thread3" } } */
/* { dg-final { scan-tree-dump-not "Invalid sum" "thread3" } } */