blob: 47008e1b123546f7a6a693988ed364c360f6793e [file] [log] [blame]
# REQUIRES: aarch64-registered-target, amdgpu-registered-target
# RUN: split-file %s %t
# RUN: llc -mtriple=aarch64 -run-pass=none -o - %t/valid.mir
# RUN: not --crash llc -mtriple=aarch64 -run-pass=none -o - %t/lower.mir 2>&1 | FileCheck %t/lower.mir
# RUN: not --crash llc -mtriple=aarch64 -run-pass=none -o - %t/overlap.mir 2>&1 | FileCheck %t/overlap.mir
# RUN: not --crash llc -mtriple=amdgcn -run-pass=none -o - %t/higher.mir 2>&1 | FileCheck %t/higher.mir
;--- valid.mir
---
name: valid
frameInfo:
stackSize: 16
stackProtector: '%stack.1'
stack:
- { id: 0, offset: -24, size: 8, alignment: 8, stack-id: default }
- { id: 1, offset: -16, size: 8, alignment: 8, stack-id: default }
body: |
bb.0:
...
;--- lower.mir
# CHECK: *** Bad machine code: Stack protector is not the top-most object on the stack ***
---
name: lower
frameInfo:
stackSize: 16
stackProtector: '%stack.1'
stack:
- { id: 0, offset: -16, size: 8, alignment: 8, stack-id: default }
- { id: 1, offset: -24, size: 8, alignment: 8, stack-id: default }
body: |
bb.0:
...
;--- overlap.mir
# CHECK: *** Bad machine code: Stack protector overlaps with another stack object ***
---
name: overlap
frameInfo:
stackSize: 16
stackProtector: '%stack.1'
stack:
- { id: 0, offset: -20, size: 8, alignment: 4, stack-id: default }
- { id: 1, offset: -16, size: 8, alignment: 8, stack-id: default }
body: |
bb.0:
...
;--- higher.mir
# CHECK: *** Bad machine code: Stack protector is not the top-most object on the stack ***
---
name: higher
frameInfo:
stackSize: 16
stackProtector: '%stack.1'
stack:
- { id: 0, offset: 16, size: 8, alignment: 8, stack-id: default }
- { id: 1, offset: 24, size: 8, alignment: 8, stack-id: default }
body: |
bb.0:
...