1*9880d681SAndroid Build Coastguard Worker; RUN: opt %s -deadargelim -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker@block_addr = global i8* blockaddress(@varargs_func, %l1) 5*9880d681SAndroid Build Coastguard Worker; CHECK: @block_addr = global i8* blockaddress(@varargs_func, %l1) 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; This function is referenced by a "blockaddress" constant but it is 9*9880d681SAndroid Build Coastguard Worker; not address-taken, so the pass should be able to remove its unused 10*9880d681SAndroid Build Coastguard Worker; varargs. 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine internal i32 @varargs_func(i8* %addr, ...) { 13*9880d681SAndroid Build Coastguard Worker indirectbr i8* %addr, [ label %l1, label %l2 ] 14*9880d681SAndroid Build Coastguard Workerl1: 15*9880d681SAndroid Build Coastguard Worker ret i32 1 16*9880d681SAndroid Build Coastguard Workerl2: 17*9880d681SAndroid Build Coastguard Worker ret i32 2 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker; CHECK: define internal i32 @varargs_func(i8* %addr) { 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine i32 @caller(i8* %addr) { 22*9880d681SAndroid Build Coastguard Worker %r = call i32 (i8*, ...) @varargs_func(i8* %addr) 23*9880d681SAndroid Build Coastguard Worker ret i32 %r 24*9880d681SAndroid Build Coastguard Worker} 25*9880d681SAndroid Build Coastguard Worker; CHECK: %r = call i32 @varargs_func(i8* %addr) 26