From 281bad8788a21da69a6413073e703270251a753e Mon Sep 17 00:00:00 2001 From: Peter Dahlberg Date: Sat, 1 Jun 2013 17:57:54 +0200 Subject: [PATCH] ConstantExpression for true false --- src/AST/CodeGenVisitor.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/AST/CodeGenVisitor.cpp b/src/AST/CodeGenVisitor.cpp index 681a694..463a606 100644 --- a/src/AST/CodeGenVisitor.cpp +++ b/src/AST/CodeGenVisitor.cpp @@ -48,7 +48,13 @@ void CodeGenVisitor::visit(BinOpExpression* e) { } void CodeGenVisitor::visit(ConstantExpression* e) { - value_ = llvm::ConstantInt::get(llvm::getGlobalContext(), llvm::APInt(32, e->getValue(), 10)); + if(e->getValue() == "true") { + value_ = llvm::ConstantInt::get(llvm::getGlobalContext(), llvm::APInt(1, 1, 10)); + } else if(e->getValue() == "false") { + value_ = llvm::ConstantInt::get(llvm::getGlobalContext(), llvm::APInt(1, 0, 10)); + } else { + value_ = llvm::ConstantInt::get(llvm::getGlobalContext(), llvm::APInt(32, e->getValue(), 10)); + } } void CodeGenVisitor::visit(ExpressionStatement* e) {