From 4a32c7d5c108b06c6b0c30f76476a89e973d697d Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Wed, 17 Sep 2014 15:21:33 +0400 Subject: [PATCH] no overflow in OPM anymore Former-commit-id: 05b8d63835cbb5ec6c44611ca0a860b8c0b8740d --- src/voc/OPM.cmdln.Mod | 18 +++++++++++++----- voc.REMOVED.git-id | 2 +- vocstatic.linux.gcc.x86_64.REMOVED.git-id | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/voc/OPM.cmdln.Mod b/src/voc/OPM.cmdln.Mod index e3e461a9..fc50f952 100644 --- a/src/voc/OPM.cmdln.Mod +++ b/src/voc/OPM.cmdln.Mod @@ -564,8 +564,15 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *) END END GetProperty; - PROCEDURE power0(i, j : INTEGER) : LONGINT; (* we would like to calculate exact Min Max values in GetProperties, not hardcode em, noch *) - VAR k : INTEGER; + + + PROCEDURE minus(i: LONGINT): LONGINT; + BEGIN + RETURN -i; + END minus; + + PROCEDURE power0(i, j : LONGINT) : LONGINT; (* we would like to calculate exact Min Max values in GetProperties, not hardcode em, noch *) + VAR k : LONGINT; p : LONGINT; BEGIN k := 1; @@ -674,11 +681,12 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *) MinSInt := power0(-2, (SIntSize*8-1)); (* -2^(SIntSize*8-1)*) - MaxSInt := power0(2, (SIntSize*8-1))-1; + (*MaxSInt := -(MinSint + 1);; may be optimized?*) + MaxSInt := minus(MinSInt + 1); MinInt := power0(-2, (IntSize*8-1)); - MaxInt := power0(2, (IntSize*8-1))-1; + MaxInt := minus(MinInt + 1); MinLInt := power0(-2, (LIntSize*8-1)); - MaxLInt := power0(2, (LIntSize*8-1))-1; + MaxLInt := minus(MinLInt +1); (* Console.Int(MinSInt, 0); Console.Ln; diff --git a/voc.REMOVED.git-id b/voc.REMOVED.git-id index 57c295c6..af44ce56 100644 --- a/voc.REMOVED.git-id +++ b/voc.REMOVED.git-id @@ -1 +1 @@ -ddb127a2e317296bc2e9e45f089e5a938c5e7bed \ No newline at end of file +90416871552aca31fdc4f4df787d5ad56448ca5d \ No newline at end of file diff --git a/vocstatic.linux.gcc.x86_64.REMOVED.git-id b/vocstatic.linux.gcc.x86_64.REMOVED.git-id index 0d40b4b7..af44ce56 100644 --- a/vocstatic.linux.gcc.x86_64.REMOVED.git-id +++ b/vocstatic.linux.gcc.x86_64.REMOVED.git-id @@ -1 +1 @@ -3326a0fc447824a7e2a6d9b35c79b178bfe7ea61 \ No newline at end of file +90416871552aca31fdc4f4df787d5ad56448ca5d \ No newline at end of file