xref: /aosp_15_r20/external/llvm/test/Transforms/ObjCARC/intrinsic-use-isolated.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -objc-arc-contract -S < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; This file makes sure that clang.arc.used is removed even if no other ARC
4*9880d681SAndroid Build Coastguard Worker; interesting calls are in the module.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdeclare void @clang.arc.use(...) nounwind
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker; Kill calls to @clang.arc.use(...)
9*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: define void @test0(
10*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: clang.arc.use
11*9880d681SAndroid Build Coastguard Worker; CHECK: }
12*9880d681SAndroid Build Coastguard Workerdefine void @test0(i8* %a, i8* %b) {
13*9880d681SAndroid Build Coastguard Worker  call void (...) @clang.arc.use(i8* %a, i8* %b) nounwind
14*9880d681SAndroid Build Coastguard Worker  ret void
15*9880d681SAndroid Build Coastguard Worker}
16*9880d681SAndroid Build Coastguard Worker
17