[Issue 20890] New: parameter corruption when other parameter is a static array of length 1

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Jun 1 19:51:44 UTC 2020


https://issues.dlang.org/show_bug.cgi?id=20890

          Issue ID: 20890
           Summary: parameter corruption when other parameter is a static
                    array of length 1
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: wrong-code
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: b2.temp at gmx.com

example must run without assertion failure

---
void format(string spec, S[1] s)
{
    assert(spec.length);
}

struct S {}

void main()
{
  S[1] s;
  format("lengthy", s);
}
---

this is a DMD backend regression caused by
https://github.com/dlang/dmd/pull/9357.

full bisection report:

> digger: Clearing temporary cache
> digger: ---------------------- Running test command... -----------------------
> digger: ------------- Test command exited with status -11 (BAD). -------------
> digger: Finding shortest path between 054b8cd7b68d32ac134e52c1e8cfb54210b6484e > and 27c7650e74799e0f796116f9cc734c365ab3ecf0...
> digger: 0 commits (about 0 tests) remaining.
> digger: 27c7650e74799e0f796116f9cc734c365ab3ecf0 is the first bad commit
> commit 27c7650e74799e0f796116f9cc734c365ab3ecf0
> Author: Sebastian Wilzbach <seb at wilzba.ch>
> Date:   Thu Feb 14 00:01:34 2019 +0100
> 
>     dmd: Merge pull request #9357 from WalterBright/fix19672
>     
>     https://github.com/dlang/dmd/pull/9357
>     
>     fix Issue 19672 - Function uses the stack to read a static array para…
> 
> diff --git a/dmd b/dmd
> index 73fcf82ae..c2c6b4b6e 160000
> --- a/dmd
> +++ b/dmd
> @@ -1 +1 @@
> -Subproject commit 73fcf82ae1d6f0582c19e8c2ae0d09f319745521
> +Subproject commit c2c6b4b6eaa4f80db2292f8c2ecf2cd250367e72
> digger: Bisection completed successfully.

--


More information about the Digitalmars-d-bugs mailing list