cgen: fix blank ident in for_c_stmt (#12931)
parent
cb65f2ff44
commit
6a4fa6096e
|
@ -202,6 +202,8 @@ fn (mut g Gen) gen_assign_stmt(node ast.AssignStmt) {
|
|||
g.is_void_expr_stmt = true
|
||||
g.expr(val)
|
||||
g.is_void_expr_stmt = old_is_void_expr_stmt
|
||||
} else if g.inside_for_c_stmt {
|
||||
g.expr(val)
|
||||
} else {
|
||||
g.write('{$styp _ = ')
|
||||
g.expr(val)
|
||||
|
|
|
@ -111,6 +111,7 @@ mut:
|
|||
inside_return bool
|
||||
inside_or_block bool
|
||||
inside_call bool
|
||||
inside_for_c_stmt bool
|
||||
inside_cast_in_heap int // inside cast to interface type in heap (resolve recursive calls)
|
||||
inside_const bool
|
||||
inside_lambda bool
|
||||
|
@ -1857,6 +1858,7 @@ fn (mut g Gen) for_c_stmt(node ast.ForCStmt) {
|
|||
g.loop_depth++
|
||||
if node.is_multi {
|
||||
g.is_vlines_enabled = false
|
||||
g.inside_for_c_stmt = true
|
||||
if node.label.len > 0 {
|
||||
g.writeln('$node.label:')
|
||||
}
|
||||
|
@ -1883,6 +1885,7 @@ fn (mut g Gen) for_c_stmt(node ast.ForCStmt) {
|
|||
g.writeln(')) break;')
|
||||
}
|
||||
g.is_vlines_enabled = true
|
||||
g.inside_for_c_stmt = false
|
||||
g.stmts(node.stmts)
|
||||
if node.label.len > 0 {
|
||||
g.writeln('${node.label}__continue: {}')
|
||||
|
@ -1895,6 +1898,7 @@ fn (mut g Gen) for_c_stmt(node ast.ForCStmt) {
|
|||
}
|
||||
} else {
|
||||
g.is_vlines_enabled = false
|
||||
g.inside_for_c_stmt = true
|
||||
if node.label.len > 0 {
|
||||
g.writeln('$node.label:')
|
||||
}
|
||||
|
@ -1919,6 +1923,7 @@ fn (mut g Gen) for_c_stmt(node ast.ForCStmt) {
|
|||
}
|
||||
g.writeln(') {')
|
||||
g.is_vlines_enabled = true
|
||||
g.inside_for_c_stmt = false
|
||||
g.stmts(node.stmts)
|
||||
if node.label.len > 0 {
|
||||
g.writeln('${node.label}__continue: {}')
|
||||
|
|
|
@ -321,3 +321,10 @@ fn test_blank_multi_return() {
|
|||
assert d == '3'
|
||||
assert g == '3'
|
||||
}
|
||||
|
||||
fn test_blank_in_for_c_init_stmt() {
|
||||
a := []int{len: 2}
|
||||
for _ := a[1]; a[1] != 0; {
|
||||
}
|
||||
assert true
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue