forked from OSchip/llvm-project
[AsmParser] Recognize more escaped characters between single quotes
The GNU AS manual states the following about single-character constants enclosed within single quotes: > Some backslash escapes apply to characters, \b, \f, \n, \r, \t, and \" with the same meaning as for strings, plus \' for a single quote. Add two more characters to the switch handling this case to match GAS behaviour, plus a test to make sure nothing regresses. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D99609
This commit is contained in:
parent
6b64c662c7
commit
edb18ea5a9
|
@ -597,6 +597,8 @@ AsmToken AsmLexer::LexSingleQuote() {
|
|||
case 't': Value = '\t'; break;
|
||||
case 'n': Value = '\n'; break;
|
||||
case 'b': Value = '\b'; break;
|
||||
case 'f': Value = '\f'; break;
|
||||
case 'r': Value = '\r'; break;
|
||||
}
|
||||
} else
|
||||
Value = TokStart[1];
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
|
||||
|
||||
# CHECK: TEST0:
|
||||
# CHECK: .byte 0
|
||||
# CHECK-NEXT: .byte 0
|
||||
TEST0:
|
||||
.byte 0
|
||||
|
||||
# CHECK: TEST1:
|
||||
# CHECK: .short 3
|
||||
# CHECK-NEXT: .short 3
|
||||
TEST1:
|
||||
.short 3
|
||||
|
||||
# CHECK: TEST2:
|
||||
# CHECK: .long 8
|
||||
# CHECK-NEXT: .long 8
|
||||
TEST2:
|
||||
.long 8
|
||||
|
||||
# CHECK: TEST3:
|
||||
# CHECK: .quad 9
|
||||
# CHECK-NEXT: .quad 9
|
||||
TEST3:
|
||||
.quad 9
|
||||
|
||||
|
@ -29,17 +29,17 @@ TEST4:
|
|||
.quad 4294967295LL+1
|
||||
.quad 0b10LL + 07ULL + 0x42AULL
|
||||
# CHECK: TEST4
|
||||
# CHECK: .quad 4
|
||||
# CHECK: .quad 4294967295
|
||||
# CHECK: .quad 4294967296
|
||||
# CHECK: .quad 4294967296
|
||||
# CHECK: .quad 1075
|
||||
# CHECK-NEXT: .quad 4
|
||||
# CHECK-NEXT: .quad 4294967295
|
||||
# CHECK-NEXT: .quad 4294967296
|
||||
# CHECK-NEXT: .quad 4294967296
|
||||
# CHECK-NEXT: .quad 1075
|
||||
|
||||
|
||||
TEST5:
|
||||
.value 8
|
||||
# CHECK: TEST5:
|
||||
# CHECK: .short 8
|
||||
# CHECK-NEXT: .short 8
|
||||
|
||||
TEST6:
|
||||
.byte 'c'
|
||||
|
@ -48,18 +48,25 @@ TEST6:
|
|||
.byte '\#'
|
||||
.byte '\t'
|
||||
.byte '\n'
|
||||
.byte '\r'
|
||||
.byte '\f'
|
||||
.byte '\"'
|
||||
|
||||
# CHECK: TEST6
|
||||
# CHECK: .byte 99
|
||||
# CHECK: .byte 39
|
||||
# CHECK: .byte 92
|
||||
# CHECK: .byte 35
|
||||
# CHECK: .byte 9
|
||||
# CHECK: .byte 10
|
||||
# CHECK-NEXT: .byte 99
|
||||
# CHECK-NEXT: .byte 39
|
||||
# CHECK-NEXT: .byte 92
|
||||
# CHECK-NEXT: .byte 35
|
||||
# CHECK-NEXT: .byte 9
|
||||
# CHECK-NEXT: .byte 10
|
||||
# CHECK-NEXT: .byte 13
|
||||
# CHECK-NEXT: .byte 12
|
||||
# CHECK-NEXT: .byte 34
|
||||
|
||||
TEST7:
|
||||
.byte 1, 2, 3, 4
|
||||
# CHECK: .byte 1
|
||||
# CHECK: TEST7
|
||||
# CHECK-NEXT: .byte 1
|
||||
# CHECK-NEXT: .byte 2
|
||||
# CHECK-NEXT: .byte 3
|
||||
# CHECK-NEXT: .byte 4
|
||||
|
@ -67,17 +74,18 @@ TEST7:
|
|||
TEST8:
|
||||
.long 0x200000UL+1
|
||||
.long 0x200000L+1
|
||||
# CHECK: .long 2097153
|
||||
# CHECK: .long 2097153
|
||||
# CHECK: TEST8
|
||||
# CHECK-NEXT: .long 2097153
|
||||
# CHECK-NEXT: .long 2097153
|
||||
|
||||
TEST9:
|
||||
.octa 0x1234567812345678abcdef, 340282366920938463463374607431768211455
|
||||
.octa 0b00111010010110100101101001011010010110100101101001011010010110100101101001011010010110100101101001011010010110100101101001011010
|
||||
# CHECK: TEST9
|
||||
# CHECK: .quad 8652035380128501231
|
||||
# CHECK: .quad 1193046
|
||||
# CHECK: .quad -1
|
||||
# CHECK: .quad -1
|
||||
# CHECK: .quad 6510615555426900570
|
||||
# CHECK: .quad 4204772546213206618
|
||||
# CHECK-NEXT: .quad 8652035380128501231
|
||||
# CHECK-NEXT: .quad 1193046
|
||||
# CHECK-NEXT: .quad -1
|
||||
# CHECK-NEXT: .quad -1
|
||||
# CHECK-NEXT: .quad 6510615555426900570
|
||||
# CHECK-NEXT: .quad 4204772546213206618
|
||||
|
||||
|
|
Loading…
Reference in New Issue