Bug 16127 – array op cache conflates incompatible functions

Status
NEW
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2016-06-05T15:02:38Z
Last change time
2024-12-13T18:48:20Z
Assigned to
No Owner
Creator
Martin Nowak
Moved to GitHub: dmd#19140 →

Comments

Comment #0 by code — 2016-06-05T15:02:38Z
cat > bug.d << CODE static immutable float[16] window; void bug() { short[16] buffer; float[16] res; res[] = buffer[] * window[]; // float[] = short[] * immutable(float)[] const float[] win = window[]; res[] = buffer[] * win[]; // float[] = short[] * const(float)[] } CODE --- bug.d(9): Error: function bug._arraySliceOfsSliceMulSliceAssign_f (float[] p2, const(immutable(float)[]) p1, const(short[]) p0) is not callable using argument types (float[], const(float)[], short[]) --- This is most likely an issue with the cache for the generated functions, but will also be fixed when switching to templated array ops. Also see: issue 15619 https://github.com/MartinNowak/dmd/tree/arrayOps https://github.com/MartinNowak/druntime/tree/arrayOps
Comment #1 by robert.schadek — 2024-12-13T18:48:20Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/19140 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB