| ... | ... | @@ -2554,9 +2554,8 @@ fn transForLoop( |
| 2554 | 2554 | |
| 2555 | 2555 | fn getSwitchCaseCount(stmt: *const ZigClangSwitchStmt) usize { |
| 2556 | 2556 | const body = ZigClangSwitchStmt_getBody(stmt); |
| 2557 | | assert(ZigClangStmt_getStmtClass(body) == .StmtExprClass); |
| 2558 | | const stmt_expr = @ptrCast(*const ZigClangStmtExpr, body); |
| 2559 | | const comp = ZigClangStmtExpr_getSubStmt(stmt_expr); |
| 2557 | assert(ZigClangStmt_getStmtClass(body) == .CompoundStmtClass); |
| 2558 | const comp = @ptrCast(*const ZigClangCompoundStmt, body); |
| 2560 | 2559 | // TODO https://github.com/ziglang/zig/issues/1738 |
| 2561 | 2560 | // return ZigClangCompoundStmt_body_end(comp) - ZigClangCompoundStmt_body_begin(comp); |
| 2562 | 2561 | const start_addr = @ptrToInt(ZigClangCompoundStmt_body_begin(comp)); |
| ... | ... | @@ -2614,19 +2613,17 @@ fn transSwitch( |
| 2614 | 2613 | switch_scope.pending_block = try Scope.Block.init(rp.c, scope, null); |
| 2615 | 2614 | try switch_scope.pending_block.statements.append(&switch_node.base); |
| 2616 | 2615 | |
| 2617 | | _ = try transStmt(rp, &block_scope.base, ZigClangSwitchStmt_getBody(stmt), .unused, .r_value); |
| 2616 | const last = try transStmt(rp, &block_scope.base, ZigClangSwitchStmt_getBody(stmt), .unused, .r_value); |
| 2618 | 2617 | _ = try appendToken(rp.c, .Semicolon, ";"); |
| 2619 | 2618 | |
| 2620 | 2619 | // take all pending statements |
| 2621 | | try switch_scope.pending_block.statements.appendSlice(block_scope.statements.items); |
| 2622 | | // TODO delete the following commented out code |
| 2623 | | //const last_block_stmts = last.cast(ast.Node.Block).?.statements(); |
| 2624 | | //switch_scope.pending_block.statements.ensureCapacity( |
| 2625 | | // switch_scope.pending_block.statements.items.len + last_block_stmts.len, |
| 2626 | | //); |
| 2627 | | //for (last_block_stmts) |n| { |
| 2628 | | // switch_scope.pending_block.statements.appendAssumeCapacity(n); |
| 2629 | | //} |
| 2620 | const last_block_stmts = last.cast(ast.Node.Block).?.statements(); |
| 2621 | try switch_scope.pending_block.statements.ensureCapacity( |
| 2622 | switch_scope.pending_block.statements.items.len + last_block_stmts.len, |
| 2623 | ); |
| 2624 | for (last_block_stmts) |n| { |
| 2625 | switch_scope.pending_block.statements.appendAssumeCapacity(n); |
| 2626 | } |
| 2630 | 2627 | |
| 2631 | 2628 | switch_scope.pending_block.label = try appendIdentifier(rp.c, "__switch"); |
| 2632 | 2629 | _ = try appendToken(rp.c, .Colon, ":"); |