<div>Hi:</div><div>I'll admit I'm extraordinarily bad at Objective-C, but is there any reason that this piece of code crashes when not explicitly enabling optimization on macOS?</div><div><br></div><div>```</div><div><div>#import <Foundation/Foundation.h></div><div>NSArray* gooo(){</div><div>  int val=10;</div><div>  return [[NSArray alloc] initWithObjects:^{NSLog(@"%d",val);},^{NSLog(@"%d",val);},nil];</div><div>}</div><div><br></div><div>int main(int argc, char const *argv[]) {</div><div>  for(id blk in gooo()){</div><div>    NSLog(@"%@",blk);</div><div>  }</div><div>  return 0;</div><div>}</div></div><div>```</div><div><br></div><div>CFE has following version info:</div><div><br></div><div>```</div><div><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures"> ~/Downloads/clang+llvm-8.0.0-x86_64-apple-darwin/bin/clang -v</span></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">clang version 8.0.0 (tags/RELEASE_800/final)</span></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">Target: x86_64-apple-darwin18.2.0</span></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">Thread model: posix</span></p></div><div>```</div><div><br></div><div>Then when I do:</div><div><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">``clang 123.m -fobjc-arc -O0`` or </span>``clang 123.m -fobjc-arc -O1``</p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">I get various sort of crash like the following:</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures"><br></span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">```</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">2019-05-15 10:41:04.873 a.out[12425:668511] <__NSMallocBlock__: 0x7f8c464035a0></span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">
</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">[1]    12425 segmentation fault  ./a.out 0O1</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">```</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures"><br></span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">or </span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures"><br></span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">```</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">2019-05-15 10:40:59.454 a.out[12412:668167] <__NSMallocBlock__: 0x7f8824e03690></span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">objc[12412]: Attempt to use unknown class 0x7f8824e00000.</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">

</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">[1]    12412 abort      ./a.out 0O1</span></p><p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">```</span></p></div><div><br></div><div><br></div><div><br></div><div>However, when I turn on optimization with O2 or -O3</div><div><br></div><div>```</div><div><span style="font-family: Menlo; font-size: 11px;">clang 123.m -fobjc-arc -O2</span></div><div>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">2019-05-15 10:41:09.236 a.out[12435:668774] <__NSMallocBlock__: 0x7f8713505290></span></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures">2019-05-15 10:41:09.236 a.out[12435:668774] <__NSStackBlock__: 0x7ffee67c45e8></span></p></div><div>```</div><div>Initially I thought it was some issue related to missing objc_blockCopy, however after reading through the LLVM assembly I realized that either case only one of the two blocks used as argument are copied. So at this point I'm very lost</div><div><br></div><div><includetail><!--<![endif]--></includetail></div>