| ; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s |
| |
| .data |
| |
| dq_single_character BYTE "a" |
| ; CHECK-LABEL: dq_single_character: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NOT: .byte |
| |
| dq_join BYTE "ab", "cd" |
| ; CHECK-LABEL: dq_join: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NEXT: .byte 98 |
| ; CHECK-NEXT: .byte 99 |
| ; CHECK-NEXT: .byte 100 |
| ; CHECK-NOT: .byte |
| |
| dq_quote_escape BYTE "ab""""cd" |
| ; Intended result: ab""cd |
| ; CHECK-LABEL: dq_quote_escape: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NEXT: .byte 98 |
| ; CHECK-NEXT: .byte 34 |
| ; CHECK-NEXT: .byte 34 |
| ; CHECK-NEXT: .byte 99 |
| ; CHECK-NEXT: .byte 100 |
| ; CHECK-NOT: .byte |
| |
| dq_single_quote BYTE "ab''''cd" |
| ; Intended result: ab''''cd |
| ; CHECK-LABEL: dq_single_quote: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NEXT: .byte 98 |
| ; CHECK-NEXT: .byte 39 |
| ; CHECK-NEXT: .byte 39 |
| ; CHECK-NEXT: .byte 39 |
| ; CHECK-NEXT: .byte 39 |
| ; CHECK-NEXT: .byte 99 |
| ; CHECK-NEXT: .byte 100 |
| ; CHECK-NOT: .byte |
| |
| sq_single_character BYTE 'a' |
| ; CHECK-LABEL: sq_single_character: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NOT: .byte |
| |
| sq_join BYTE 'ab', 'cd' |
| ; CHECK-LABEL: sq_join: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NEXT: .byte 98 |
| ; CHECK-NEXT: .byte 99 |
| ; CHECK-NEXT: .byte 100 |
| ; CHECK-NOT: .byte |
| |
| sq_quote_escape BYTE 'ab''''cd' |
| ; Intended result: ab''cd |
| ; CHECK-LABEL: sq_quote_escape: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NEXT: .byte 98 |
| ; CHECK-NEXT: .byte 39 |
| ; CHECK-NEXT: .byte 39 |
| ; CHECK-NEXT: .byte 99 |
| ; CHECK-NEXT: .byte 100 |
| ; CHECK-NOT: .byte |
| |
| sq_double_quote BYTE 'ab""""cd' |
| ; Intended result: ab""""cd |
| ; CHECK-LABEL: sq_double_quote: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NEXT: .byte 98 |
| ; CHECK-NEXT: .byte 34 |
| ; CHECK-NEXT: .byte 34 |
| ; CHECK-NEXT: .byte 34 |
| ; CHECK-NEXT: .byte 34 |
| ; CHECK-NEXT: .byte 99 |
| ; CHECK-NEXT: .byte 100 |
| ; CHECK-NOT: .byte |
| |
| mixed_quotes_join BYTE "a'b", 'c"d' |
| ; Intended result: a'bc"d |
| ; CHECK-LABEL: mixed_quotes_join: |
| ; CHECK-NEXT: .byte 97 |
| ; CHECK-NEXT: .byte 39 |
| ; CHECK-NEXT: .byte 98 |
| ; CHECK-NEXT: .byte 99 |
| ; CHECK-NEXT: .byte 34 |
| ; CHECK-NEXT: .byte 100 |
| ; CHECK-NOT: .byte |
| |
| .code |
| |
| sq_char_test PROC |
| ; CHECK-LABEL: sq_char_test: |
| |
| mov eax, 'a' |
| ; CHECK: mov eax, 97 |
| |
| mov eax, '''' |
| ; CHECK: mov eax, 39 |
| |
| mov eax, '"' |
| ; CHECK: mov eax, 34 |
| |
| ret |
| sq_char_test ENDP |
| |
| dq_char_test PROC |
| ; CHECK-LABEL: dq_char_test: |
| |
| mov eax, "b" |
| ; CHECK: mov eax, 98 |
| |
| mov eax, """" |
| ; CHECK: mov eax, 34 |
| |
| mov eax, "'" |
| ; CHECK: mov eax, 39 |
| |
| ret |
| dq_char_test ENDP |
| |
| string_constant_test PROC |
| ; CHECK-LABEL: string_constant_test: |
| |
| mov eax, 'ab' |
| mov eax, "ab" |
| ; CHECK: mov eax, 24930 |
| ; CHECK: mov eax, 24930 |
| |
| mov eax, "abc" |
| mov eax, 'abc' |
| ; CHECK: mov eax, 6382179 |
| ; CHECK: mov eax, 6382179 |
| |
| mov eax, "abc""" |
| mov eax, 'abc''' |
| ; CHECK: mov eax, 1633837858 |
| ; CHECK: mov eax, 1633837863 |
| |
| ret |
| string_constant_test ENDP |
| |
| end |