March 12, 2023 [Issue 23774] [REG 2.103-beta] cannot inline function `core.bitop.Split64.this` | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=23774 mhh <maxhaton@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maxhaton@gmail.com --- Comment #1 from mhh <maxhaton@gmail.com> --- Part of the wtf is warning on inline failure by default. dmd's IR seems to make some kind of inlining basically impossible in practice. The transformation is mathematically possible but has not been implemented (for such a fundamental concept as inlining) -- |
March 13, 2023 [Issue 23774] [REG 2.103-beta] cannot inline function `core.bitop.Split64.this` | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=23774 --- Comment #2 from Rainer Schuetze <r.sagitario@gmx.de> --- Something changed about the `__ctfe` branch in ``` union Split64 { ulong u64; uint lo; pragma(inline, true) this(ulong u64) { if (__ctfe) lo = cast(uint) u64; else this.u64 = u64; } } int foo(ulong v) { const sv = Split64(v); return (sv.lo == 0); } ``` If you replace `__ctfe` with `false` the wwarning disappears. -- |
Copyright © 1999-2021 by the D Language Foundation