38 lines · plain
1; RUN: not opt -passes=verify < %s 2>&1 | FileCheck %s2 3; CHECK: !captures metadata can only be applied to store instructions4define void @wrong_instr_type(ptr %x) {5 load ptr, ptr %x, !captures !{!"address"}6 ret void7}8 9; CHECK: captures metadata can only be applied to store with value operand of pointer type10define void @wrong_op_type(i32 %x, ptr %y) {11 store i32 %x, ptr %y, !captures !{!"address"}12 ret void13}14 15; CHECK: !captures metadata cannot be empty16define void @empty(ptr %x, ptr %y) {17 store ptr %x, ptr %y, !captures !{}18 ret void19}20 21; CHECK: !captures metadata must be a list of strings22define void @not_string(ptr %x, ptr %y) {23 store ptr %x, ptr %y, !captures !{!{}}24 ret void25}26 27; CHECK: invalid entry in !captures metadata28define void @invalid_str(ptr %x, ptr %y) {29 store ptr %x, ptr %y, !captures !{!"foo"}30 ret void31}32 33; CHECK: invalid entry in !captures metadata34define void @invalid_none(ptr %x, ptr %y) {35 store ptr %x, ptr %y, !captures !{!"none"}36 ret void37}38