/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-icf -fno-inline"  } */

void destroy (void)
{
  __asm__ __volatile__ ("" : : : "memory");
}

void remove (void)
{
  __asm__ __volatile__ ("" : : : "memory");
}

void remove2 (void)
{
  __asm__ __volatile__ ("" : : : );
}

int main()
{
  destroy ();
  remove ();
  remove2 ();

  return 0;
}

/* { dg-final { scan-ipa-dump "Semantic equality hit:destroy->remove" "icf"  } } */
/* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf"  } } */
