xref: /llvm-project/llvm/test/Verifier/branch-prot-attrs.ll (revision 1782810b8440144a0141c24192acbaeb55a1545d)
1; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
2
3define void @f() #0 {
4  ret void
5}
6
7define void @g() #1 {
8  ret void
9}
10
11define void @h() #2 {
12  ret void
13}
14
15attributes #0 = {
16; CHECK:  invalid value for 'sign-return-address' attribute: non-loaf
17  "sign-return-address"="non-loaf"
18; CHECK: invalid value for 'sign-return-address-key' attribute: bad-mkey
19  "sign-return-address-key"="bad-mkey"
20; CHECK:   invalid value for 'branch-target-enforcement' attribute: yes-please
21  "branch-target-enforcement"="yes-please" }
22
23attributes #1 = {
24; CHECK:  invalid value for 'sign-return-address' attribute: All
25  "sign-return-address"="All"
26; CHECK: invalid value for 'sign-return-address-key' attribute: B_Key
27  "sign-return-address-key"="B_Key"
28; CHECK:   invalid value for 'branch-target-enforcement' attribute: True
29  "branch-target-enforcement"="True"
30; CHECK:   invalid value for 'branch-protection-pauth-lr' attribute: Yes
31  "branch-protection-pauth-lr"="Yes"
32; CHECK:   invalid value for 'guarded-control-stack' attribute: True
33  "guarded-control-stack"="True"
34  }
35
36attributes #2 = {
37; CHECK:  'sign-return-address-key' present without `sign-return-address`
38  "sign-return-address-key"="a_key"
39  }
40