[MIR] Fix CFI_INSTRUCTION escape printing

Summary:
The printer seems to intend to not print the trailing comma but has a
copy-paste error for the last value in the escape, and the parser
enforces having no trailing comma, but somehow a test was never included
to actually confirm it.

Reviewers: thegameg, arsenm

Reviewed By: thegameg, arsenm

Subscribers: wdng, arsenm, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D82478
This commit is contained in:
Scott Linder 2020-06-24 18:15:27 -04:00
parent 1f4236d82d
commit 0dbcb0ca32
3 changed files with 13 additions and 2 deletions

View File

@ -670,7 +670,7 @@ static void printCFI(raw_ostream &OS, const MCCFIInstruction &CFI,
size_t e = CFI.getValues().size() - 1;
for (size_t i = 0; i < e; ++i)
OS << format("0x%02x", uint8_t(CFI.getValues()[i])) << ", ";
OS << format("0x%02x", uint8_t(CFI.getValues()[e])) << ", ";
OS << format("0x%02x", uint8_t(CFI.getValues()[e]));
}
break;
}

View File

@ -42,7 +42,7 @@ body: |
CFI_INSTRUCTION restore_state
; CHECK: CFI_INSTRUCTION restore_state
CFI_INSTRUCTION escape 0x61, 0x62, 0x63
; CHECK: CFI_INSTRUCTION escape 0x61, 0x62, 0x63
; CHECK: CFI_INSTRUCTION escape 0x61, 0x62, 0x63{{$}}
CFI_INSTRUCTION window_save
; CHECK: CFI_INSTRUCTION window_save
CFI_INSTRUCTION negate_ra_sign_state

View File

@ -0,0 +1,11 @@
# RUN: llc -run-pass none -o - %s | llc -x=mir -run-pass none -o - | FileCheck %s
# Check that we don't print a trailing comma for CFI escape indices, and that
# in general we can round trip them.
name: func
# CHECK-LABEL: name: func
body: |
bb.0:
CFI_INSTRUCTION escape 0x61, 0x62, 0x63
; CHECK: CFI_INSTRUCTION escape 0x61, 0x62, 0x63{{$}}