186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//
286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//                     The LLVM Compiler Infrastructure
386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//
486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// This file is distributed under the University of Illinois Open Source
586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// License. See LICENSE.TXT for details.
686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// CONFIG C++ GC RR open rdar://6347910
886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
1086d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
1186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garststruct MyStruct {
1286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    int something;
1386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst};
1486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
1586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garststruct TestObject {
1686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
1786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst        void test(void){
1886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst            {
1986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst                MyStruct first;   // works
2086d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst            }
2186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst            void (^b)(void) = ^{
2286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst                MyStruct inner;  // fails to compile!
2386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst            };
2486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst        }
2586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst};
2686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
2786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
2886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
2986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garstint main(int argc, char *argv[]) {
3086d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    printf("%s: Success\n", argv[0]);
3186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    return 0;
3286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst}
33