[Issue 23089] Linkage-related ICE regression in v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23089 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #3 from Dlang Bot --- @ibuclaw created dlang/dmd pull request #14074 "fix Issue 23089 - Linkage-related ICE regression in v2.100.0-rc.1" fixing this issue: - fix Issue 23089 - Linkage-related ICE regression in v2.100.0-rc.1 https://github.com/dlang/dmd/pull/14074 --
[Issue 23090] New: Allocators should not use NullAllocator as a sentinel type
https://issues.dlang.org/show_bug.cgi?id=23090 Issue ID: 23090 Summary: Allocators should not use NullAllocator as a sentinel type Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: snarwin+bugzi...@gmail.com Several allocators in std.experimental.allocator have special-case behavior when instantiated using the specific type `NullAllocator`. A non-exhaustive list: * Region: "If ParentAllocator is different from NullAllocator, Region deallocates the chunk of memory during destruction." [1] * ContiguousFreeList: "The block is assumed to have been allocated with ParentAllocator, and is released in ContiguousFreeList's destructor (unless ParentAllocator is NullAllocator)." [2] * AllocatorList: "If BookkeepingAllocator is NullAllocator, then AllocatorList is "ouroboros-style", i.e. it keeps the bookkeeping data in memory obtained from the allocators themselves." [3] It is clear from these examples that the type `NullAllocator` is being used as a sentinel to indicate the *absence* of an allocator, rather than for its actual documented purpose of being an allocator that is always out of memory. This abuse of NullAllocator has two undesirable consequences: 1. Users who want NullAllocator's out-of-memory behavior must define their own version with a different name, rather than using NullAllocator directly. 2. Readers of the std.experimental.allocator documentation are likely to come away confused about NullAllocator's purpose. [1] https://dlang.org/library/std/experimental/allocator/building_blocks/free_list/contiguous_free_list.html [2] https://dlang.org/library/std/experimental/allocator/building_blocks/free_list/contiguous_free_list.html [3] https://dlang.org/library/std/experimental/allocator/building_blocks/allocator_list/allocator_list.html --
[Issue 23083] .tupleof on static array rvalue evaluates expression multiple times
https://issues.dlang.org/show_bug.cgi?id=23083 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Dlang Bot --- dlang/dmd pull request #14068 "Fix Issue 23083 - .tupleof on static array rvalue evaluates expressio…" was merged into stable: - 76710fd0143f6b97c930be319f777af4bf1c29ca by Paul Backus: Fix Issue 23083 - .tupleof on static array rvalue evaluates expression multiple times https://github.com/dlang/dmd/pull/14068 --
[Issue 23088] spurious case of "`expression` has no effect"
https://issues.dlang.org/show_bug.cgi?id=23088 --- Comment #1 from Basile-z --- -we --
[Issue 23084] [REG 2.080] dmd: src/dmd/backend/cgxmm.d:816: Assertion `0' failed.
https://issues.dlang.org/show_bug.cgi?id=23084 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #9 from Dlang Bot --- @ljmf00 updated dlang/dmd pull request #14058 "fix(backend): define XMM load/store codegen for short type variants" fixing this issue: - fix(backend): define XMM load/store codegen for short type variants The codegen try to generate optimized calls with XMM opcodes but fail to do it. This patch adds logic to generate XMM load/store opcodes for TYshort,TYushort. It also adds tests for previous similar ICEs. Fix issue 23077, 23084. Reference: https://issues.dlang.org/show_bug.cgi?id=23077 Reference: https://issues.dlang.org/show_bug.cgi?id=23084 Reference: https://github.com/AuburnSounds/intel-intrinsics/commit/047e9f01ae4092600f99abab1a34e32db26b3a4f Signed-off-by: Luís Ferreira https://github.com/dlang/dmd/pull/14058 --
[Issue 23089] Linkage-related ICE regression in v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23089 Iain Buclaw changed: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #2 from Iain Buclaw --- Introduced by https://github.com/dlang/dmd/pull/13942 --
[Issue 23089] Linkage-related ICE regression in v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23089 --- Comment #1 from kinke --- Oh, even shorter: `extern(System) int a;` --
[Issue 23089] New: Linkage-related ICE regression in v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23089 Issue ID: 23089 Summary: Linkage-related ICE regression in v2.100.0-rc.1 Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ki...@gmx.net This crashes v2.100.0-rc.1+: ``` extern(System): alias F = void function(int); F f; ``` Output: ``` linkage = 6, vd = variable f @ [current.d(4)] Illegal instruction ``` --
[Issue 23088] spurious case of "`expression` has no effect"
https://issues.dlang.org/show_bug.cgi?id=23088 Basile-z changed: What|Removed |Added Summary|spurious case of|spurious case of |"`expression`" has no |"`expression` has no |effect |effect" --
[Issue 23087] getLinkage trait regression for overloads with v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23087 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Dlang Bot --- dlang/dmd pull request #14072 "fix Issue 23087 - getLinkage trait regression for overloads with v2.100.0-rc.1" was merged into stable: - 8672c13e0aabba38773847e37d0b9a787557450c by Iain Buclaw: fix Issue 23087 - getLinkage trait regression for overloads with v2.100.0-rc.1 https://github.com/dlang/dmd/pull/14072 --
[Issue 23086] spurious case of `expression has no effect` message
https://issues.dlang.org/show_bug.cgi?id=23086 --- Comment #3 from Basile-z --- `a` was supposed to return a global, closed an opened https://issues.dlang.org/show_bug.cgi?id=23088 for less confusion. --
[Issue 23087] getLinkage trait regression for overloads with v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23087 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #2 from Dlang Bot --- @ibuclaw created dlang/dmd pull request #14072 "fix Issue 23087 - getLinkage trait regression for overloads with v2.100.0-rc.1" fixing this issue: - fix Issue 23087 - getLinkage trait regression for overloads with v2.100.0-rc.1 https://github.com/dlang/dmd/pull/14072 --
[Issue 23088] New: spurious case of "`expression`" has no effect
https://issues.dlang.org/show_bug.cgi?id=23088 Issue ID: 23088 Summary: spurious case of "`expression`" has no effect Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: diagnostic, rejects-valid Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com For the following code ``` static int v; extern(C) int rand(); ref int a() { return v = rand(); } int main() { a == 0; return v ? 1 : 0; } ``` we get, with -de, the output > /tmp/temp_7F3C12CCD670.d:12:5: Error: `a() == 0` has no effect but the effect of the call directly influences the return code of the program. The compiler, by digging in the nested expressions could determine that it contains one call to an impure function and consequently allow (or not warn) about the comparison. --
[Issue 23086] spurious case of `expression has no effect` message
https://issues.dlang.org/show_bug.cgi?id=23086 Basile-z changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --
[Issue 23087] getLinkage trait regression for overloads with v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23087 Iain Buclaw changed: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #1 from Iain Buclaw --- Introduced by https://github.com/dlang/dmd/pull/13942 --
[Issue 23086] spurious case of `expression has no effect` message
https://issues.dlang.org/show_bug.cgi?id=23086 --- Comment #2 from Basile-z --- the check should dig in the sub expressions and take in account if they contain impure calls, in which case the message should not be emitted. --
[Issue 23087] getLinkage trait regression for overloads with v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23087 kinke changed: What|Removed |Added Keywords||industry --
[Issue 23087] New: getLinkage trait regression for overloads with v2.100.0-rc.1
https://issues.dlang.org/show_bug.cgi?id=23087 Issue ID: 23087 Summary: getLinkage trait regression for overloads with v2.100.0-rc.1 Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ki...@gmx.net ``` struct S { this(bool) {} this(bool, int) {} } static foreach (ctor; __traits(getOverloads, S, "__ctor")) pragma(msg, "'", __traits(getLinkage, ctor), "'"); ``` Output with v2.100.0-rc.1: '' 'D' With v2.099.1: 'D' 'D' --
[Issue 23086] spurious case of `expression has no effect` message
https://issues.dlang.org/show_bug.cgi?id=23086 --- Comment #1 from Basile-z --- also `ref int a()` is not `pure` --
[Issue 23086] New: spurious case of `expression has no effect` message
https://issues.dlang.org/show_bug.cgi?id=23086 Issue ID: 23086 Summary: spurious case of `expression has no effect` message Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: diagnostic, rejects-valid Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com For the following code ``` static int v; ref int a() { a++; return a; } int main() { a == 0; return v ? 0 : 1; } ``` we get, with -de, the output > /tmp/temp_7F3C12CCD670.d:15:5: Error: `a() == 0` has no effect but the effect of the call directly influences the return code of the program. --
[Issue 23085] [ICE] dmd: src/dmd/backend/cod1.d:1933: Assertion `retregs & BYTEREGS' failed.
https://issues.dlang.org/show_bug.cgi?id=23085 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --
[Issue 23085] [ICE] dmd: src/dmd/backend/cod1.d:1933: Assertion `retregs & BYTEREGS' failed.
https://issues.dlang.org/show_bug.cgi?id=23085 Iain Buclaw changed: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=23084 --
[Issue 23084] [REG 2.080] dmd: src/dmd/backend/cgxmm.d:816: Assertion `0' failed.
https://issues.dlang.org/show_bug.cgi?id=23084 Iain Buclaw changed: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=23085 --
[Issue 23084] [REG 2.080] dmd: src/dmd/backend/cgxmm.d:816: Assertion `0' failed.
https://issues.dlang.org/show_bug.cgi?id=23084 --- Comment #8 from Iain Buclaw --- Similar, but using byte vector. Only triggers in debug builds. --- __vector(int[4]) _mm_packs_epi32 (__vector(int[4]) a) { __vector(byte[16]) r = cast(byte)(a.array[0]); return cast(__vector(int[4]))r; } --
[Issue 23085] [ICE] dmd: src/dmd/backend/cod1.d:1933: Assertion `retregs & BYTEREGS' failed.
https://issues.dlang.org/show_bug.cgi?id=23085 Iain Buclaw changed: What|Removed |Added Keywords||backend CC||ibuc...@gdcproject.org --
[Issue 23077] codegen cannot generage XMM load/store for optimized operation that uses byte/short/...
https://issues.dlang.org/show_bug.cgi?id=23077 Iain Buclaw changed: What|Removed |Added Keywords||backend See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=23085 --
[Issue 23085] [ICE] dmd: src/dmd/backend/cod1.d:1933: Assertion `retregs & BYTEREGS' failed.
https://issues.dlang.org/show_bug.cgi?id=23085 Iain Buclaw changed: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=23077 --
[Issue 23085] New: [ICE] dmd: src/dmd/backend/cod1.d:1933: Assertion `retregs & BYTEREGS' failed.
https://issues.dlang.org/show_bug.cgi?id=23085 Issue ID: 23085 Summary: [ICE] dmd: src/dmd/backend/cod1.d:1933: Assertion `retregs & BYTEREGS' failed. Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: critical Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ibuc...@gdcproject.org float bug(float x) { byte i = *cast(byte*)&x; ++i; return *cast(float*)&i; } --