/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-final { scan-assembler-not "unnecesary_static_initialized_variable" } } */

static int unnecesary_static_initialized_variable;
static int *unnecesary_static_initialized_variable2 =
  &unnecesary_static_initialized_variable;
static inline int
simplify_after_inline (int param1, int *param2)
{
  if (unnecesary_static_initialized_variable != param1)
    return unnecesary_static_initialized_variable;
  if (unnecesary_static_initialized_variable2 != param2)
    return unnecesary_static_initialized_variable;
}

int
main ()
{
  return simplify_after_inline (unnecesary_static_initialized_variable,
				unnecesary_static_initialized_variable2) +
    simplify_after_inline (unnecesary_static_initialized_variable,
			   unnecesary_static_initialized_variable2);
}
