From b3bb5d700ec5367b05cac50b8d5222455441f384 Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Fri, 16 Sep 2011 15:32:47 +0200
Subject: [PATCH] QmlJS checks: Don't crash if try has no catch or finally.

Change-Id: If7001963bc11f2fa01f058c903ee014f6acb0c04
Reviewed-on: http://codereview.qt-project.org/5102
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
---
 src/libs/qmljs/qmljscheck.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index 927f2bf395a..115295c8342 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -371,8 +371,12 @@ protected:
     virtual bool visit(TryStatement *ast)
     {
         State tryBody = check(ast->statement);
-        State catchBody = check(ast->catchExpression->statement);
-        State finallyBody = check(ast->finallyExpression->statement);
+        State catchBody = ReturnOrThrow;
+        if (ast->catchExpression)
+            catchBody = check(ast->catchExpression->statement);
+        State finallyBody = ReachesEnd;
+        if (ast->finallyExpression)
+            finallyBody = check(ast->finallyExpression->statement);
 
         _state = qMax(qMin(tryBody, catchBody), finallyBody);
         return false;
-- 
GitLab