Skip to content

Commit cd0451a

Browse files
authored
fix #26719 (#26720)
* fix #26719 * add new tests for all arhcs
1 parent 3c85e35 commit cd0451a

2 files changed

Lines changed: 100 additions & 1 deletion

File tree

vlib/v/gen/c/cgen.v

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3494,6 +3494,9 @@ fn (mut g Gen) asm_stmt(stmt ast.AsmStmt) {
34943494
}
34953495
g.writeln(' (')
34963496
g.indent++
3497+
if stmt.templates.len == 0 {
3498+
g.writeln('""')
3499+
}
34973500
for template_tmp in stmt.templates {
34983501
mut template := template_tmp
34993502
g.write('"')
Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,104 @@
11
// vtest build: !msvc
2-
fn test_empty_asm_statements() {
2+
3+
fn test_empty_inline_block() {
4+
// must compile
35
asm amd64 {
6+
; ; ; memory
47
}
8+
9+
asm volatile amd64 {
10+
; ; ; memory
11+
}
12+
13+
asm amd64 {
14+
}
15+
16+
asm volatile amd64 {
17+
}
18+
19+
asm arm64 {
20+
; ; ; memory
21+
}
22+
23+
asm volatile arm64 {
24+
; ; ; memory
25+
}
26+
527
asm arm64 {
628
}
29+
30+
asm volatile arm64 {
31+
}
32+
33+
asm i386 {
34+
; ; ; memory
35+
}
36+
37+
asm volatile i386 {
38+
; ; ; memory
39+
}
40+
41+
asm i386 {
42+
}
43+
44+
asm volatile i386 {
45+
}
46+
47+
asm rv64 {
48+
; ; ; memory
49+
}
50+
51+
asm volatile rv64 {
52+
; ; ; memory
53+
}
54+
55+
asm rv64 {
56+
}
57+
58+
asm volatile rv64 {
59+
}
60+
61+
asm loongarch64 {
62+
; ; ; memory
63+
}
64+
65+
asm volatile loongarch64 {
66+
; ; ; memory
67+
}
68+
69+
asm loongarch64 {
70+
}
71+
72+
asm volatile loongarch64 {
73+
}
74+
75+
asm ppc64le {
76+
; ; ; memory
77+
}
78+
79+
asm volatile ppc64le {
80+
; ; ; memory
81+
}
82+
83+
asm ppc64le {
84+
}
85+
86+
asm volatile ppc64le {
87+
}
88+
89+
asm s390x {
90+
; ; ; memory
91+
}
92+
93+
asm volatile s390x {
94+
; ; ; memory
95+
}
96+
97+
asm s390x {
98+
}
99+
100+
asm volatile s390x {
101+
}
102+
7103
assert true
8104
}

0 commit comments

Comments
 (0)