/* APPLE LOCAL file radar 5803600 */
/* Test that all global variables referenced in blocks are treated as 'byref' as default. */
/* { dg-do run { target *-*-darwin[1-2][0-9]* } } */
/* { dg-options "-mmacosx-version-min=10.5 -fblocks" { target *-*-darwin* } } */
/* { dg-skip-if "" { powerpc*-*-darwin* } { "-m64" } { "" } } */

#include <stdio.h>
void * _NSConcreteStackBlock;

void CallBlock (void (^voidvoidBlock)(void)) {
   voidvoidBlock();
}

int glob = 10;
static int stat = 10;

int foo() {
    static int local = 10;
    CallBlock( ^ { ++glob; ++stat; ++local; 
		  CallBlock(^ { ++glob; ++stat; ++local; }); 
		  ++glob; ++stat; ++local; });

    if (glob != 13 || stat != 13 || local != 13)
      return 1;
    return 0;
}

int main()
{
  return foo ();
}

