From d34184f81110b9eaf3424dbef863ad314f13e23a Mon Sep 17 00:00:00 2001 From: de4dot Date: Mon, 17 Oct 2011 07:55:06 +0200 Subject: [PATCH] Return 0 if we emulate x - x --- blocks/cflow/Int32Value.cs | 2 ++ blocks/cflow/Int64Value.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/blocks/cflow/Int32Value.cs b/blocks/cflow/Int32Value.cs index 017b0c19..3b1f495b 100644 --- a/blocks/cflow/Int32Value.cs +++ b/blocks/cflow/Int32Value.cs @@ -196,6 +196,8 @@ namespace de4dot.blocks.cflow { public static Int32Value Sub(Int32Value a, Int32Value b) { if (a.allBitsValid() && b.allBitsValid()) return new Int32Value(a.value - b.value); + if (ReferenceEquals(a, b)) + return new Int32Value(0); return createUnknown(); } diff --git a/blocks/cflow/Int64Value.cs b/blocks/cflow/Int64Value.cs index 0aff87d4..5e841d0e 100644 --- a/blocks/cflow/Int64Value.cs +++ b/blocks/cflow/Int64Value.cs @@ -111,6 +111,8 @@ namespace de4dot.blocks.cflow { public static Int64Value Sub(Int64Value a, Int64Value b) { if (a.allBitsValid() && b.allBitsValid()) return new Int64Value(a.value - b.value); + if (ReferenceEquals(a, b)) + return new Int32Value(0); return createUnknown(); }