| ; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s |
| |
| define void @f() #0 { |
| ret void |
| } |
| |
| define void @g() #1 { |
| ret void |
| } |
| |
| define void @h() #2 { |
| ret void |
| } |
| |
| attributes #0 = { |
| ; CHECK: invalid value for 'sign-return-address' attribute: non-loaf |
| "sign-return-address"="non-loaf" |
| ; CHECK: invalid value for 'sign-return-address-key' attribute: bad-mkey |
| "sign-return-address-key"="bad-mkey" |
| ; CHECK: invalid value for 'branch-target-enforcement' attribute: yes-please |
| "branch-target-enforcement"="yes-please" } |
| |
| attributes #1 = { |
| ; CHECK: invalid value for 'sign-return-address' attribute: All |
| "sign-return-address"="All" |
| ; CHECK: invalid value for 'sign-return-address-key' attribute: B_Key |
| "sign-return-address-key"="B_Key" |
| ; CHECK: invalid value for 'branch-target-enforcement' attribute: True |
| "branch-target-enforcement"="True" |
| ; CHECK: invalid value for 'branch-protection-pauth-lr' attribute: Yes |
| "branch-protection-pauth-lr"="Yes" |
| ; CHECK: invalid value for 'guarded-control-stack' attribute: True |
| "guarded-control-stack"="True" |
| } |
| |
| attributes #2 = { |
| ; CHECK: 'sign-return-address-key' present without `sign-return-address` |
| "sign-return-address-key"="a_key" |
| } |