aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm.cpp7
-rwxr-xr-xtest.sh3
2 files changed, 4 insertions, 6 deletions
diff --git a/llvm.cpp b/llvm.cpp
index 65632a4..1d97b96 100644
--- a/llvm.cpp
+++ b/llvm.cpp
@@ -96,11 +96,8 @@ struct LLVMEngine : public Engine {
FunctionType* fT = FunctionType::get(llType(retT), cprot, false);
Function* f = Function::Create(fT, linkage, name, module);
- if (f->getName() != name) {
- cenv.out << "DIFFERENT NAME: " << f->getName() << endl;
- /*f->eraseFromParent();
- throw Error(Cursor(), (format("function `%1%' redefined") % name).str());*/
- }
+ // Note f->getName() may be different from name
+ // however LLVM chooses to mangle is fine, we keep a pointer
// Set argument names in generated code
Function::arg_iterator a = f->arg_begin();
diff --git a/test.sh b/test.sh
index ca19c35..9fd86f8 100755
--- a/test.sh
+++ b/test.sh
@@ -16,4 +16,5 @@ run() {
run './test/ack.tpr' '8189 : Int'
run './test/def.tpr' '3 : Int'
run './test/fac.tpr' '720 : Int'
-#run './test/nest.tpr' '6 : Int'
+run './test/poly.tpr' '#t : Bool'
+run './test/nest.tpr' '6 : Int'