xref: /llvm-project/llvm/test/CodeGen/X86/cfi-inserter-noreturnblock.mir (revision 80aa2290fb02386579e5d7b0a1d8ce3691fd88da)
1# RUN: llc -o - %s -mtriple=x86_64-- -verify-cfiinstrs \
2# RUN:     -run-pass=cfi-instr-inserter
3
4# Test that CFI verifier does not report inconsistent offset for the
5# 'noreturn' block.
6---
7name: testNoreturnBlock
8body: |
9  bb.0:
10    CFI_INSTRUCTION def_cfa_offset 24
11    JCC_1 %bb.2, 5, implicit undef $eflags
12
13  bb.1:
14    CFI_INSTRUCTION def_cfa_offset 32
15
16  bb.2:
17    TRAP
18...
19
20# C code to reproduce the issue, built with
21# '-O2 -mllvm -tail-merge-size=1 -mllvm -verify-cfiinstrs':
22#
23# void foo1(int v) __attribute__((noreturn)) {
24#   if (v == 1) {
25#     __builtin_trap();
26#   }
27#   if (foo2(v)) {
28#     __builtin_trap();
29#   }
30# }
31