xref: /llvm-project/llvm/test/tools/llvm-ml/variable_redef.asm (revision 00ebbedd1c92f7461f81e79bd1474e894fd25378)
1; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s
2
3.data
4
5; <var> = <expression> can be redefined at any time.
6assigned_number = 1
7t1_original BYTE assigned_number
8assigned_number = 1
9t1_reset BYTE assigned_number
10assigned_number = 2
11t1_changed BYTE assigned_number
12
13; CHECK-LABEL: t1_original:
14; CHECK-NEXT: .byte 1
15
16; CHECK-LABEL: t1_reset:
17; CHECK-NEXT: .byte 1
18
19; CHECK-LABEL: t1_changed:
20; CHECK-NEXT: .byte 2
21
22; <var> EQU <expression> can be redundantly set, but can't be changed.
23equated_number equ 3
24t2_original BYTE equated_number
25equated_number equ 3
26t2_reset BYTE equated_number
27
28; CHECK-LABEL: t2_original:
29; CHECK-NEXT: .byte 3
30
31; CHECK-LABEL: t2_reset:
32; CHECK-NEXT: .byte 3
33
34; <var> EQU <text> can be redefined at any time.
35equated_text equ <4, 5>
36t3_original BYTE equated_text
37equated_text equ <4, 5>
38t3_reset BYTE equated_text
39equated_text equ <5, 6>
40t3_changed BYTE equated_text
41
42; CHECK-LABEL: t3_original:
43; CHECK-NEXT: .byte 4
44; CHECK-NEXT: .byte 5
45
46; CHECK-LABEL: t3_reset:
47; CHECK-NEXT: .byte 4
48; CHECK-NEXT: .byte 5
49
50; CHECK-LABEL: t3_changed:
51; CHECK-NEXT: .byte 5
52; CHECK-NEXT: .byte 6
53
54; <var> TEXTEQU <text> can be redefined at any time.
55textequated_text textequ <7, 8>
56t4_original BYTE textequated_text
57textequated_text textequ <7, 8>
58t4_reset BYTE textequated_text
59textequated_text textequ <9, 10>
60t4_changed BYTE textequated_text
61
62; CHECK-LABEL: t4_original:
63; CHECK-NEXT: .byte 7
64; CHECK-NEXT: .byte 8
65
66; CHECK-LABEL: t4_reset:
67; CHECK-NEXT: .byte 7
68; CHECK-NEXT: .byte 8
69
70; CHECK-LABEL: t4_changed:
71; CHECK-NEXT: .byte 9
72; CHECK-NEXT: .byte 10
73
74.code
75
76end
77