[PATCH] D71301: [clang][IFS] Prevent Clang-IFS from Leaking symbols from inside a block.

Puyan Lotfi via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 11 19:33:50 PST 2019


plotfi added a comment.

In D71301#1778834 <https://reviews.llvm.org/D71301#1778834>, @compnerd wrote:

> Should probably add a check for `__block` variables.


I looked into it, I am not sure if anything special needs to be done for block. ie:

  echo "void f() { __block int x = 42; void (^sum)(int) = ^(int y) { x = x + y; }; }" | clang -x c -fblocks -o - - -c  | llvm-nm -
                   U _Block_object_assignecho "void f() { __block int x = 42; void (^sum)(int) = ^(int y) { x = x + y; }; }" | clang -x c -fblocks -o - - -c  | llvm-nm -
                   U _Block_object_assign
                   U _Block_object_dispose
                   U _NSConcreteStackBlock
  0000000000000000 r __block_descriptor_tmp
  00000000000000c0 W __copy_helper_block_8_32r
  00000000000000f0 W __destroy_helper_block_8_32r
  0000000000000090 t __f_block_invoke
  0000000000000000 T 
                   U _Block_object_dispose
                   U _NSConcreteStackBlock
  0000000000000000 r __block_descriptor_tmp
  00000000000000c0 W __copy_helper_block_8_32r
  00000000000000f0 W __destroy_helper_block_8_32r
  0000000000000090 t __f_block_invoke
  0000000000000000 T 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71301/new/

https://reviews.llvm.org/D71301





More information about the cfe-commits mailing list