| /* 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 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 p = 0; |
| do { |
| __block int I1; |
| do { |
| __block int J1; |
| if (p == 2) |
| break; |
| } while ( ++p < 3); |
| if (p == 4) |
| break; |
| } while (++p != 5); |
| } |
| |
| return count-7; |
| } |