Nicola added a comment.

Looking at "Example 4" in the standard it looks like this should also be 
illegal.

  int (^block1)(void) = ^int {return 1;};
  int foo() { return block1(); }
  
  __kernel void k(global int *z)
  {
   int (^block2)(void) = ^int {
    return foo(); // expected-error {{cannot refer to a block inside block}}
   }; 
  }

Unless I missed something it's not erroring in this case.


https://reviews.llvm.org/D29764



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to