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