From 07ca8cc17842eac42a2bd477851e987ace68a2a0 Mon Sep 17 00:00:00 2001 From: Austin Sun Date: Thu, 19 May 2016 10:47:56 -0700 Subject: [PATCH] break and continue should work --- ast_stmt.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ast_stmt.cc b/ast_stmt.cc index 6bdc3b6..527d93c 100644 --- a/ast_stmt.cc +++ b/ast_stmt.cc @@ -301,7 +301,7 @@ llvm::Value * ContinueStmt::Emit(){ llvm::LLVMContext * context = irgen.GetContext(); llvm::Function * func = irgen.GetFunction(); llvm::BasicBlock * contBlock = llvm::BasicBlock::Create(*context, "contBlock", func); - val=llvm::Create (breakBlock, irgen.GetBasicBlock()); + val=llvm::Create (contBlock, irgen.GetBasicBlock()); } //Not sure @@ -324,7 +324,6 @@ llvm::Value * SwitchStmt::Emit(){ //find all cases and create a basic block for all of them for (int i = 0; i < cases->NumElements(); i++){ //cases->Nth(i)->Emit(); - //llvm::BasicBlock * headBlock = llvm::BasicBlock::Create(*context, "headBlock", func); } //Emit of expression @@ -333,7 +332,6 @@ llvm::Value * SwitchStmt::Emit(){ //create switch instruction //val=llvm::SwitchInst::Create(Value *Value, BasicBlock *Default, unsigned NumCases, BasicBlock *InsertAtEnd); //for each case 'addCase to switch stmt', EMIT for stmt in case, create terminator instruction - } llvm::Value * SwitchLabel::Emit(){ @@ -341,10 +339,13 @@ llvm::Value * SwitchLabel::Emit(){ } llvm::Value * Case::Emit(){ + return NULL; + //stmt and label emit on stmt //return on label } llvm::Value * Default::Emit(){ return NULL; + //stmt emit return null } -- 1.9.1