diff options
Diffstat (limited to 'test/Transforms/ObjCARC/rv.ll')
-rw-r--r-- | test/Transforms/ObjCARC/rv.ll | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/test/Transforms/ObjCARC/rv.ll b/test/Transforms/ObjCARC/rv.ll index da53a86..9353a19 100644 --- a/test/Transforms/ObjCARC/rv.ll +++ b/test/Transforms/ObjCARC/rv.ll @@ -329,3 +329,14 @@ define void @test23(i8* %p) { call i8* @objc_autoreleaseReturnValue(i8* %p) ret void } + +; Don't convert autoreleaseRV to autorelease if the result is returned, +; even through a bitcast. + +; CHECK: define {}* @test24( +; CHECK: tail call i8* @objc_autoreleaseReturnValue(i8* %p) +define {}* @test24(i8* %p) { + %t = call i8* @objc_autoreleaseReturnValue(i8* %p) + %s = bitcast i8* %p to {}* + ret {}* %s +} |