Skip to content

Commit db20b0d

Browse files
committed
ObjCARC: Add regressed testcase from #134275
1 parent ce01e4e commit db20b0d

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

llvm/test/Transforms/ObjCARC/contract.ll

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,22 @@ define void @test14(ptr %a, ptr %b) {
234234
ret void
235235
}
236236

237+
define void @test15(ptr %x) {
238+
; CHECK-LABEL: define void @test15(
239+
; CHECK-SAME: ptr [[X:%.*]]) {
240+
; CHECK-NEXT: [[Y:%.*]] = getelementptr inbounds ptr, ptr [[X]], i32 0
241+
; CHECK-NEXT: [[V0:%.*]] = call ptr @llvm.objc.retain(ptr [[Y]]) #[[ATTR0:[0-9]+]]
242+
; CHECK-NEXT: call void @use_pointer(ptr [[V0]])
243+
; CHECK-NEXT: call void @use_pointer(ptr [[V0]])
244+
; CHECK-NEXT: ret void
245+
;
246+
%y = getelementptr inbounds ptr, ptr %x, i32 0
247+
%v0 = call ptr @llvm.objc.retain(ptr %y) nounwind
248+
call void @use_pointer(ptr %x)
249+
call void @use_pointer(ptr %y)
250+
ret void
251+
}
252+
237253
declare void @llvm.objc.clang.arc.use(...) nounwind
238254
declare void @llvm.objc.clang.arc.noop.use(...) nounwind
239255

0 commit comments

Comments
 (0)