diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2010-09-11 01:27:29 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-09-11 01:27:29 +0000 |
| commit | 933c6723a43f26ff55cfa582a5826fc3c798bc7f (patch) | |
| tree | 2b4590dd012f9e2d4dcee5150ee78ca233648c41 /clang/test/CodeGenObjC | |
| parent | 8f22a243b743efee5cf94f5afc8461f70ce00fd2 (diff) | |
| download | bcm5719-llvm-933c6723a43f26ff55cfa582a5826fc3c798bc7f.tar.gz bcm5719-llvm-933c6723a43f26ff55cfa582a5826fc3c798bc7f.zip | |
Fixes an obscure bug in importd block variable layout
information when imported variable is used
more than once. Originally though to be a bug in importing
block varibles. Fixes radar 8417746.
llvm-svn: 113675
Diffstat (limited to 'clang/test/CodeGenObjC')
| -rw-r--r-- | clang/test/CodeGenObjC/block-var-layout.m | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/block-var-layout.m b/clang/test/CodeGenObjC/block-var-layout.m index f57d7d99cd5..c2a01d35fe0 100644 --- a/clang/test/CodeGenObjC/block-var-layout.m +++ b/clang/test/CodeGenObjC/block-var-layout.m @@ -107,6 +107,23 @@ c(); } +// rdar: //8417746 +void CFRelease(id); +void notifyBlock(id dependentBlock) { + id singleObservationToken; + id token; + void (^b)(); + void (^wrapperBlock)() = ^() { + CFRelease(singleObservationToken); + CFRelease(singleObservationToken); + CFRelease(token); + CFRelease(singleObservationToken); + b(); + }; + wrapperBlock(); +} + + // CHECK-LP64: L_OBJC_CLASS_NAME_: // CHECK-LP64-NEXT: .asciz "\0011\024" @@ -121,3 +138,6 @@ c(); // CHECK-LP64: L_OBJC_CLASS_NAME_14: // CHECK-LP64-NEXT: .asciz "\001A\021\022p" + +// CHECK-LP64: L_OBJC_CLASS_NAME_16: +// CHECK-LP64-NEXT: .asciz "\0013" |

