CTFE and RTFE results differ (aliasing)

monkyyy crazymonkyyy at gmail.com
Mon May 5 18:23:21 UTC 2025


On Monday, 5 May 2025 at 17:15:57 UTC, kdevel wrote:
> 

even worse:
```d
auto foo(ubyte[4] s){
     ubyte[] u = s;
     ubyte[4] tmp = u;
     u[0] = tmp[3];
     u[3] = tmp[0];
     return u;
}

unittest{
     import std;

     enum ubyte[4] u = [1, 2, 3, 4];
     enum r = foo(u);
     auto s = foo(u);
     r.writeln;
     s.writeln;
     assert(r!=s);
}
```


```
            2.105.3: Success with output:
-----
1 modules passed unittests
[1, 2, 3, 4]
[4, 2, 3, 1]
[216, 88, 171, 59]
-----

            2.106.1: Success with output:
-----
1 modules passed unittests
[1, 2, 3, 4]
[4, 2, 3, 1]
[136, 48, 143, 115]
-----

Since      2.107.0: Success with output:
-----
1 modules passed unittests
[1, 2, 3, 4]
[4, 2, 3, 1]
[56, 227, 42, 198]
-----
```

what fun


More information about the Digitalmars-d-learn mailing list