26 lines · plain
1; RUN: opt %s -passes=deadargelim -S | FileCheck %s2 3 4@block_addr = global ptr blockaddress(@varargs_func, %l1)5; CHECK: @block_addr = global ptr blockaddress(@varargs_func, %l1)6 7 8; This function is referenced by a "blockaddress" constant but it is9; not address-taken, so the pass should be able to remove its unused10; varargs.11 12define internal i32 @varargs_func(ptr %addr, ...) {13 indirectbr ptr %addr, [ label %l1, label %l2 ]14l1:15 ret i32 116l2:17 ret i32 218}19; CHECK: define internal i32 @varargs_func(ptr %addr) {20 21define i32 @caller(ptr %addr) {22 %r = call i32 (ptr, ...) @varargs_func(ptr %addr)23 ret i32 %r24}25; CHECK: %r = call i32 @varargs_func(ptr %addr)26