From 421ad617f87c59487602472009bf0f64cb7c07fd Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sun, 24 Jul 2016 13:53:24 +0200 Subject: [PATCH] Fix MayThrow flag on BinaryNumericInstruction --- .../IL/Instructions/BinaryNumericInstruction.cs | 2 +- .../IL/Instructions/CompoundAssignmentInstruction.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.Decompiler/IL/Instructions/BinaryNumericInstruction.cs b/ICSharpCode.Decompiler/IL/Instructions/BinaryNumericInstruction.cs index 02dc4d478..48a980c6b 100644 --- a/ICSharpCode.Decompiler/IL/Instructions/BinaryNumericInstruction.cs +++ b/ICSharpCode.Decompiler/IL/Instructions/BinaryNumericInstruction.cs @@ -109,7 +109,7 @@ namespace ICSharpCode.Decompiler.IL public override InstructionFlags DirectFlags { get { - if (Operator == BinaryNumericOperator.Div || Operator == BinaryNumericOperator.Rem) + if (CheckForOverflow || (Operator == BinaryNumericOperator.Div || Operator == BinaryNumericOperator.Rem)) return base.DirectFlags | InstructionFlags.MayThrow; return base.DirectFlags; } diff --git a/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs b/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs index ca9a3ac89..541c56892 100644 --- a/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs +++ b/ICSharpCode.Decompiler/IL/Instructions/CompoundAssignmentInstruction.cs @@ -91,7 +91,7 @@ namespace ICSharpCode.Decompiler.IL public override InstructionFlags DirectFlags { get { var flags = InstructionFlags.SideEffect; - if (Operator == BinaryNumericOperator.Div || Operator == BinaryNumericOperator.Rem) + if (CheckForOverflow || (Operator == BinaryNumericOperator.Div || Operator == BinaryNumericOperator.Rem)) flags |= InstructionFlags.MayThrow; return flags; }