aboutsummaryrefslogtreecommitdiff
path: root/llvm/docs/tutorial/MyFirstLanguageFrontend
diff options
context:
space:
mode:
authorahatanak <ahatanaka@apple.com>2020-03-09 13:20:58 -0700
committerahatanak <ahatanaka@apple.com>2020-03-09 13:21:38 -0700
commit1f5b471b8bf4c6d22fb13d8e24bc31c75245b0d0 (patch)
tree13460a58da076553b71d5ccb20fb121bf5270c6b /llvm/docs/tutorial/MyFirstLanguageFrontend
parenta50c031fab6747438af1454354ab85123558f6aa (diff)
downloadllvm-1f5b471b8bf4c6d22fb13d8e24bc31c75245b0d0.zip
llvm-1f5b471b8bf4c6d22fb13d8e24bc31c75245b0d0.tar.gz
llvm-1f5b471b8bf4c6d22fb13d8e24bc31c75245b0d0.tar.bz2
[ObjC][ARC] Don't remove autoreleaseRV/retainRV pairs if the call isn't
a tail call Previosly ARC optimizer removed the autoreleaseRV/retainRV pair in the following code, which caused the object returned by @something to be placed in the autorelease pool because the call to @something isn't a tail call: ``` %call = call i8* @something(...) %2 = call i8* @objc_retainAutoreleasedReturnValue(i8* %call) %3 = call i8* @objc_autoreleaseReturnValue(i8* %2) ret i8* %3 ``` Fix the bug by checking whether @something is a tail call. rdar://problem/59275894
Diffstat (limited to 'llvm/docs/tutorial/MyFirstLanguageFrontend')
0 files changed, 0 insertions, 0 deletions