diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2012-10-24 10:09:30 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2012-10-24 11:40:11 +0200 |
commit | c9c2b0c5411a9b3cfd11013021e4017eea5425c4 (patch) | |
tree | 1b08106f542f371e4b473e5cc46a01c9dd1e416d | |
parent | 39cb093255c23bcc68b765f0abc4ac461fce0c9c (diff) |
Fix LLVM backend compilation.
Change-Id: I326cf2531a600fd09b888e9955052b29624ccdbe
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
-rw-r--r-- | main.cpp | 9 | ||||
-rw-r--r-- | qv4isel_llvm.cpp | 4 |
2 files changed, 9 insertions, 4 deletions
@@ -169,15 +169,18 @@ int evaluateCompiledCode(const QStringList &files) globalObject->setProperty(ctx, vm.identifier(QStringLiteral("print")), QQmlJS::VM::Value::fromObject(new builtins::Print(ctx))); - code(ctx); - - if (ctx->hasUncaughtException) { + void * buf = __qmljs_create_exception_handler(ctx); + if (setjmp(*(jmp_buf *)buf)) { if (VM::ErrorObject *e = ctx->result.asErrorObject()) std::cerr << "Uncaught exception: " << qPrintable(e->value.toString(ctx)->toQString()) << std::endl; else std::cerr << "Uncaught exception: " << qPrintable(ctx->result.toString(ctx)->toQString()) << std::endl; + return -2; } + + code(ctx); } + return 0; } diff --git a/qv4isel_llvm.cpp b/qv4isel_llvm.cpp index 040111f5ac..9e35e6ef56 100644 --- a/qv4isel_llvm.cpp +++ b/qv4isel_llvm.cpp @@ -935,7 +935,9 @@ void LLVMInstructionSelection::genCallName(IR::Call *e, llvm::Value *result) _llvmValue = llvm::UndefValue::get(_valueTy); return; - Q_UNREACHABLE(); + default: + Q_UNREACHABLE(); + } } else { llvm::Value *name = getIdentifier(*base->id); |