#include <stdlib.h>

extern void foo (void);
extern void bar (void);

void test_1 (int flag, int n);

void caller_1_of_test_1 (int n)
{
  test_1 (1, n); /* { dg-bogus "test_1" } */
  test_1 (0, n); /* { dg-bogus "test_1" } */
}

void __attribute__((noinline))
test_1 (int flag, int n)
{
  int *ptr = (int *)malloc (sizeof (int));

  if (flag)
    {
      int i;
      for (i = 0; i < n; i++)
	foo ();
    }
  else
    bar ();

  free (ptr);
  free (ptr); /* { dg-warning "double-'free'" } */
  /* FIXME: we get duplicates intraprocedurally, as there are two paths
     through the function.
     The calls in test_2 also generate additional duplicates.
     How to verify lack of duplicates?
     Putting a bogus on the interprocedual one detects that, at least.  */

  if (flag)
    foo ();
  else
    bar ();
}

void caller_2_of_test_1 (int n)
{
  test_1 (1, n); /* { dg-bogus "test_1" } */
  test_1 (0, n); /* { dg-bogus "test_1" } */
}
