/* APPLE LOCAL file radar 6083129 byref escapes */
/* { dg-do run { target *-*-darwin[1-2][0-9]* } } */
/* { dg-options "-fblocks" } */
/* { dg-skip-if "" { powerpc*-*-darwin* } { "-m64" } { "" } } */

#include <stdio.h>

extern "C" void abort(void);

static int count;
static void _Block_object_dispose(void * arg, int flag) {
  printf ("%p\n", arg);
  ++count;
}

int main() {
  {
    __block int O1;
    int i;
    int p;
    for (i = 1; i <= 5; i++) {
      __block int I1;
      p = 0;
      while (p != 10) {
	__block int II1;
	if (p == 2)
	  break;
	++p;
      }
    }
  }
  return count-21;
}
