Thread overview
[Issue 20893] [REG 2.087] 32-bit arithmetic goes wrong
Jun 02, 2020
Basile-z
Jun 02, 2020
Basile-z
Jun 05, 2020
Dlang Bot
Jun 05, 2020
Dlang Bot
June 02, 2020
https://issues.dlang.org/show_bug.cgi?id=20893

Basile-z <b2.temp@gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |b2.temp@gmx.com
                 OS|Windows                     |All

--- Comment #1 from Basile-z <b2.temp@gmx.com> ---
reduced w/o phobos, test case is a "runnable" TC:

---
#!dmd -O -inline -m32

int f (int n)
{
    foreach (i; 0..n) {}
    return 10;
}

int c (int a, int b)
{
    return (f(a) * 1L * f(b)) % 1000;
}

void main ()
{
    int[] a = [1];
    assert(c(2 - 1, 2) == 100);
}
---

--
June 02, 2020
https://issues.dlang.org/show_bug.cgi?id=20893

--- Comment #2 from Basile-z <b2.temp@gmx.com> ---
according to digger, caused by https://github.com/dlang/dmd/pull/9722

full bisection report:

> digger: Finding shortest path between 717f0aba51531c140d1a41ff8da3020443b6d523 > and 2e4afcd30657009f75394aaead63721c5eac0e38...
> digger: 0 commits (about 0 tests) remaining.
> digger: 2e4afcd30657009f75394aaead63721c5eac0e38 is the first bad commit
> commit 2e4afcd30657009f75394aaead63721c5eac0e38
> Author: Walter Bright <WalterBright@users.noreply.github.com>
> Date:   Sat Apr 27 22:04:40 2019 -0700
> 
>     dmd: Merge pull request #9722 from WalterBright/cod2-const2
> 
>     https://github.com/dlang/dmd/pull/9722
> 
>     cod2.c: improve details a bit pt 2
> 
> diff --git a/dmd b/dmd
> index d8d17ee3e..9203ab647 160000
> --- a/dmd
> +++ b/dmd
> @@ -1 +1 @@
> -Subproject commit d8d17ee3efcdd53b39f29530879fde77980ab18b
> +Subproject commit 9203ab6477f4c8e816c60803112a554d19499f4d
> digger: Bisection completed successfully.

--
June 05, 2020
https://issues.dlang.org/show_bug.cgi?id=20893

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
@WalterBright created dlang/dmd pull request #11230 "fix Issue 20893 - [REG 2.087] 32-bit arithmetic goes wrong" fixing this issue:

- fix Issue 20893 - [REG 2.087] 32-bit arithmetic goes wrong

https://github.com/dlang/dmd/pull/11230

--
June 05, 2020
https://issues.dlang.org/show_bug.cgi?id=20893

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #11230 "fix Issue 20893 - [REG 2.087] 32-bit arithmetic goes wrong" was merged into stable:

- 58731f94cecf586c4ebeba1573b7e1646b031a79 by Walter Bright:
  fix Issue 20893 - [REG 2.087] 32-bit arithmetic goes wrong

https://github.com/dlang/dmd/pull/11230

--