From 1233638290a2d103b61fce153dc15ca333ed261e Mon Sep 17 00:00:00 2001 From: Alexandre Bique Date: Wed, 11 Mar 2009 21:59:58 +0000 Subject: [PATCH] it's working again :) --- src/ast/llvm-generator-visitor.cc | 8 +------- src/ast/llvm-generator-visitor.hh | 1 - src/ast/simplify-visitor.cc | 2 +- tests/lang/mugiwara/input/functions/fibonacci.mgw | 13 +++++++++++++ 4 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 tests/lang/mugiwara/input/functions/fibonacci.mgw diff --git a/src/ast/llvm-generator-visitor.cc b/src/ast/llvm-generator-visitor.cc index 33da50e..7d136f5 100644 --- a/src/ast/llvm-generator-visitor.cc +++ b/src/ast/llvm-generator-visitor.cc @@ -165,7 +165,7 @@ namespace ast } \ } \ out_ << Instr" "; \ - node.type->accept(*this); \ + node.left->type->accept(*this); \ node.left->accept(*this); \ out_ << ", "; \ node.right->accept(*this); \ @@ -259,12 +259,6 @@ namespace ast } void - LLVMGeneratorVisitor::visit(const TmpResultExp & node) - { - out_ << "%" << node.name; - } - - void LLVMGeneratorVisitor::visit(const CallExp & node) { out_ << " call "; diff --git a/src/ast/llvm-generator-visitor.hh b/src/ast/llvm-generator-visitor.hh index ec54d5a..d9b74ef 100644 --- a/src/ast/llvm-generator-visitor.hh +++ b/src/ast/llvm-generator-visitor.hh @@ -32,7 +32,6 @@ namespace ast virtual void visit(const VoidExp & node); virtual void visit(const IdExp & node); virtual void visit(const NumberExp & node); - virtual void visit(const TmpResultExp & node); virtual void visit(const CallExp & node); virtual void visit(const AssignExp & node); diff --git a/src/ast/simplify-visitor.cc b/src/ast/simplify-visitor.cc index 3842353..e9d4b8d 100644 --- a/src/ast/simplify-visitor.cc +++ b/src/ast/simplify-visitor.cc @@ -64,7 +64,7 @@ namespace ast assign->type = node.type; simplifications_.push_back(assign); - TmpResultExp * tre = new TmpResultExp(); + IdExp * tre = new IdExp(); tre->name = assign->dest->name; tre->type = node.type; replacement_ = tre; diff --git a/tests/lang/mugiwara/input/functions/fibonacci.mgw b/tests/lang/mugiwara/input/functions/fibonacci.mgw new file mode 100644 index 0000000..accaa53 --- /dev/null +++ b/tests/lang/mugiwara/input/functions/fibonacci.mgw @@ -0,0 +1,13 @@ +int32 fibonacci(int32 n) +{ + if (n <= 0) + return 1; + if (n == 1) + return 2; + return fibonacci(n - 1) + fibonacci(n - 2); +} + +int32 main() +{ + return fibonacci(2); +} -- 2.11.4.GIT