From 3451f5cb38ec750b81d4786b01674729840d8e7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Thu, 30 Aug 2012 07:41:54 +0200 Subject: [PATCH] [Analysis] Handle null reference in control flow graph builder. btw. assumes that if true statement is null the if is incomplete. --- ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs b/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs index b74c2fe1df..b8eb4bf212 100644 --- a/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs +++ b/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs @@ -405,7 +405,9 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis public override ControlFlowNode VisitIfElseStatement(IfElseStatement ifElseStatement, ControlFlowNode data) { - bool? cond = builder.EvaluateCondition(ifElseStatement.Condition); + bool? cond = ifElseStatement.Condition.IsNull ? true : builder.EvaluateCondition(ifElseStatement.Condition); + if (ifElseStatement.TrueStatement.IsNull) + return data; ControlFlowNode trueBegin = builder.CreateStartNode(ifElseStatement.TrueStatement); if (cond != false) Connect(data, trueBegin, ControlFlowEdgeType.ConditionTrue);