- assert(continue_label == header_block);
- continue_label = old_continue_label;
- break_label = old_break_label;
-
- if (get_cur_block() != NULL) {
- jmp = new_Jmp();
- add_immBlock_pred(header_block, jmp);
- }
-
- /* shortcut for while(true) */
- if (is_constant_expression(statement->condition)
- && fold_constant_to_bool(statement->condition) != 0) {
- set_cur_block(header_block);
- ir_node *header_jmp = new_Jmp();
- add_immBlock_pred(body_block, header_jmp);
-
- keep_alive(body_block);
- keep_all_memory(body_block);
- set_cur_block(body_block);
- } else {
- if (false_block == NULL) {
- false_block = new_immBlock();
- }
-
- /* create the condition */
- set_cur_block(header_block);
-
- create_condition_evaluation(statement->condition, body_block,
- false_block);
- }
-
- mature_immBlock(body_block);