Browse Source

#3367: Extend range check to support negative integers.

pull/3371/head
Siegfried Pammer 5 months ago
parent
commit
7218a63a46
  1. 4
      ICSharpCode.Decompiler/IL/Transforms/EarlyExpressionTransforms.cs

4
ICSharpCode.Decompiler/IL/Transforms/EarlyExpressionTransforms.cs

@ -213,9 +213,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms
int lo, mid, hi, isNegative, scale; int lo, mid, hi, isNegative, scale;
if (args[0].MatchLdcI4(out lo) && args[1].MatchLdcI4(out mid) && if (args[0].MatchLdcI4(out lo) && args[1].MatchLdcI4(out mid) &&
args[2].MatchLdcI4(out hi) && args[3].MatchLdcI4(out isNegative) && args[2].MatchLdcI4(out hi) && args[3].MatchLdcI4(out isNegative) &&
args[4].MatchLdcI4(out scale) && scale <= 28) args[4].MatchLdcI4(out scale) && unchecked((byte)scale) <= 28)
{ {
result = new LdcDecimal(new decimal(lo, mid, hi, isNegative != 0, (byte)scale)); result = new LdcDecimal(new decimal(lo, mid, hi, isNegative != 0, unchecked((byte)scale)));
return true; return true;
} }
} }

Loading…
Cancel
Save