1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fobjc-runtime=macosx-fragile-10.5 -emit-llvm %s -o %t-64.ll 2*f4a2713aSLionel Sambuc// RUN: FileCheck -check-prefix CHECK-LP64 --input-file=%t-64.ll %s 3*f4a2713aSLionel Sambuc// rdar: // 8390455 4*f4a2713aSLionel Sambuc 5*f4a2713aSLionel Sambuc@class NSArray; 6*f4a2713aSLionel Sambuc 7*f4a2713aSLionel Sambucstatic NSArray *(^ArrayRecurs)(NSArray *addresses, unsigned long level) = ^(NSArray *addresses, unsigned long level) { 8*f4a2713aSLionel Sambuc 9*f4a2713aSLionel Sambuc for(id rawAddress in addresses) 10*f4a2713aSLionel Sambuc { 11*f4a2713aSLionel Sambuc NSArray *separatedAddresses = ((NSArray*)0); 12*f4a2713aSLionel Sambuc separatedAddresses = ArrayRecurs((NSArray *)rawAddress, level+1); 13*f4a2713aSLionel Sambuc } 14*f4a2713aSLionel Sambuc return (NSArray *)0; 15*f4a2713aSLionel Sambuc}; 16*f4a2713aSLionel Sambuc 17*f4a2713aSLionel Sambucvoid FUNC() 18*f4a2713aSLionel Sambuc{ 19*f4a2713aSLionel Sambuc static NSArray *(^ArrayRecurs)(NSArray *addresses, unsigned long level) = ^(NSArray *addresses, unsigned long level) { 20*f4a2713aSLionel Sambuc 21*f4a2713aSLionel Sambuc for(id rawAddress in addresses) 22*f4a2713aSLionel Sambuc { 23*f4a2713aSLionel Sambuc NSArray *separatedAddresses = ((NSArray*)0); 24*f4a2713aSLionel Sambuc separatedAddresses = ArrayRecurs((NSArray *)rawAddress, level+1); 25*f4a2713aSLionel Sambuc } 26*f4a2713aSLionel Sambuc return (NSArray *)0; 27*f4a2713aSLionel Sambuc }; 28*f4a2713aSLionel Sambuc 29*f4a2713aSLionel Sambuc if (ArrayRecurs) { 30*f4a2713aSLionel Sambuc static NSArray *(^ArrayRecurs)(NSArray *addresses, unsigned long level) = ^(NSArray *addresses, unsigned long level) { 31*f4a2713aSLionel Sambuc 32*f4a2713aSLionel Sambuc for(id rawAddress in addresses) 33*f4a2713aSLionel Sambuc { 34*f4a2713aSLionel Sambuc NSArray *separatedAddresses = ((NSArray*)0); 35*f4a2713aSLionel Sambuc separatedAddresses = ArrayRecurs((NSArray *)rawAddress, level+1); 36*f4a2713aSLionel Sambuc } 37*f4a2713aSLionel Sambuc return (NSArray *)0; 38*f4a2713aSLionel Sambuc }; 39*f4a2713aSLionel Sambuc } 40*f4a2713aSLionel Sambuc} 41*f4a2713aSLionel Sambuc 42*f4a2713aSLionel Sambucvoid FUNC1() 43*f4a2713aSLionel Sambuc{ 44*f4a2713aSLionel Sambuc static NSArray *(^ArrayRecurs)(NSArray *addresses, unsigned long level) = ^(NSArray *addresses, unsigned long level) { 45*f4a2713aSLionel Sambuc 46*f4a2713aSLionel Sambuc for(id rawAddress in addresses) 47*f4a2713aSLionel Sambuc { 48*f4a2713aSLionel Sambuc NSArray *separatedAddresses = ((NSArray*)0); 49*f4a2713aSLionel Sambuc separatedAddresses = ArrayRecurs((NSArray *)rawAddress, level+1); 50*f4a2713aSLionel Sambuc } 51*f4a2713aSLionel Sambuc return (NSArray *)0; 52*f4a2713aSLionel Sambuc }; 53*f4a2713aSLionel Sambuc} 54*f4a2713aSLionel Sambuc// CHECK-LP64: @ArrayRecurs = internal global 55*f4a2713aSLionel Sambuc// CHECK-LP64: @FUNC.ArrayRecurs = internal global 56*f4a2713aSLionel Sambuc// CHECK-LP64: @FUNC.ArrayRecurs3 = internal global 57*f4a2713aSLionel Sambuc// CHECK-LP64: @FUNC1.ArrayRecurs = internal global 58